1 #if !defined HAVE_NUMTHEORY_H__ 2 #define HAVE_NUMTHEORY_H__ 3 // This file is part of the FXT library. 4 // Copyright (C) 2010, 2012 Joerg Arndt 5 // License: GNU General Public License version 3 or later, 6 // see the file COPYING.txt in the main directory. 7 8 9 #include "fxttypes.h" 10 #include "mod/mtypes.h" 11 //#include "mod/factor.h" 12 class factorization; 13 14 15 // mod/kronecker.cc: 16 int kronecker(umod_t a, umod_t b); 17 //int reciprocity(umod_t a, umod_t b); 18 19 // mod/euler-phi.cc: 20 umod_t euler_phi(umod_t n); 21 umod_t euler_phi(umod_t pr, ulong ex); 22 umod_t euler_phi(const factorization &ff); 23 24 // mod/chinese.cc: 25 umod_t chinese(const umod_t *x, const factorization &f); 26 27 28 // mod/cyclic.cc: 29 bool is_cyclic(const factorization &f); 30 31 32 // mod/order.cc: 33 umod_t order_mod(umod_t x, umod_t m, const factorization &phifact); 34 35 // mod/maxorder.cc: 36 umod_t maxorder_mod(const factorization &mf); 37 umod_t maxorder_element_mod(const factorization &mf, const factorization &pf); 38 39 // mod/quadresidue.cc: 40 bool is_quadratic_residue_2ex(umod_t a, ulong x); 41 bool is_quadratic_residue(umod_t a, const factorization &mf); 42 43 44 // mod/sqrtmod.cc: 45 umod_t sqrt_modp(umod_t a, umod_t p); 46 umod_t sqrt_modpp(umod_t a, umod_t p, long ex); 47 umod_t sqrt_modf(umod_t a, const factorization &mf); 48 49 50 #endif // !defined HAVE_NUMTHEORY_H__ 51