2 #include "../include/cloog/cloog.h"
4 #define ALLOC(type) (type*)malloc(sizeof(type))
5 #define ALLOCN(type,n) (type*)malloc((n)*sizeof(type))
7 #if defined(CLOOG_INT_INT) || \
8 defined(CLOOG_INT_LONG) || \
9 defined(CLOOG_INT_LONG_LONG)
11 cloog_int_t
cloog_gcd(cloog_int_t a
, cloog_int_t b
)
14 cloog_int_t t
= b
% a
;
25 struct cloog_vec
*cloog_vec_alloc(unsigned size
)
28 struct cloog_vec
*vec
;
30 vec
= ALLOC(struct cloog_vec
);
34 vec
->p
= ALLOCN(cloog_int_t
, size
);
39 for (i
= 0; i
< size
; ++i
)
40 cloog_int_init(vec
->p
[i
]);
48 void cloog_vec_free(struct cloog_vec
*vec
)
55 for (i
= 0; i
< vec
->size
; ++i
)
56 cloog_int_clear(vec
->p
[i
]);
61 void cloog_seq_neg(cloog_int_t
*dst
, cloog_int_t
*src
, unsigned len
)
64 for (i
= 0; i
< len
; ++i
)
65 cloog_int_neg(dst
[i
], src
[i
]);
68 void cloog_seq_combine(cloog_int_t
*dst
, cloog_int_t m1
, cloog_int_t
*src1
,
69 cloog_int_t m2
, cloog_int_t
*src2
, unsigned len
)
75 for (i
= 0; i
< len
; ++i
) {
76 cloog_int_mul(tmp
, m1
, src1
[i
]);
77 cloog_int_addmul(tmp
, m2
, src2
[i
]);
78 cloog_int_set(dst
[i
], tmp
);