00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00031 #if !defined(_TIFA_X_TREE_H_)
00032
00036 #define _TIFA_X_TREE_H_
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00042 #include <gmp.h>
00043 #include "array.h"
00044
00061 typedef mpz_array_t mpz_tree_t;
00062
00094 mpz_tree_t* prod_tree(const mpz_array_t* const array);
00095
00112 mpz_tree_t* prod_tree_mod(const mpz_array_t* const array, const mpz_t n);
00113
00145 mpz_tree_t* prod_tree_ui(const uint32_array_t* const array);
00146
00172 mpz_tree_t* rem_tree(const mpz_t z, const mpz_tree_t* const ptree);
00173
00188 void free_mpz_tree(mpz_tree_t* tree);
00189
00199 void print_mpz_tree(const mpz_tree_t* const tree);
00200
00201 #ifdef __cplusplus
00202 }
00203 #endif
00204
00205 #endif