13 #include "factory/factory.h"
28 number nAEMult (number a, number
b,
const coeffs r);
29 number nAESub (number a, number
b,
const coeffs r);
30 number nAEAdd (number a, number
b,
const coeffs r);
31 number nAEDiv (number a, number
b,
const coeffs r);
32 number nAEIntMod (number a, number
b,
const coeffs r);
33 number nAEExactDiv (number a, number
b,
const coeffs r);
34 number nAEInit (
long i,
const coeffs r);
35 number nAEInitMPZ (mpz_t
m,
const coeffs r);
36 int nAESize (number a,
const coeffs r);
37 long nAEInt (number &a,
const coeffs r);
38 number nAEMPZ (number a,
const coeffs r);
39 number nAENeg (number c,
const coeffs r);
40 number nAECopy (number a, number
b,
const coeffs r);
41 number nAERePart (number a, number
b,
const coeffs r);
42 number nAEImPart (number a, number
b,
const coeffs r);
44 void nAEWriteLong (number a,
const coeffs r);
45 void nAEWriteShort (number a,
const coeffs r);
48 const char * nAERead (
const char *
s, number *a,
const coeffs r);
49 number nAENormalize (number a, number
b,
const coeffs r);
56 void nAEPower (number a,
int i, number *
result,
const coeffs r);
57 number nAEGetDenom (number &a,
const coeffs r);
58 number nAEGetNumerator (number &a,
const coeffs r);
59 number nAEGcd (number a, number
b,
const coeffs r);
60 number nAELcm (number a, number
b,
const coeffs r);
62 void nAEDelete (number *a,
const coeffs r);
63 number nAESetMap (number a,
const coeffs r);
64 void nAEInpMult (number &a ,number
b,
const coeffs r);
75 number nAEAdd(number a, number
b,
const coeffs)
77 int_poly*
f=reinterpret_cast<int_poly*> (a);
78 int_poly*
g=reinterpret_cast<int_poly*> (
b);
79 int_poly *
res=
new int_poly;
85 number nAEMult(number a, number
b,
const coeffs)
87 int_poly*
f=reinterpret_cast<int_poly*> (a);
88 int_poly*
g=reinterpret_cast<int_poly*> (
b);
89 int_poly *
res=
new int_poly;
91 res->poly_mult_n_to(*
g);
95 number nAESub(number a, number
b,
const coeffs)
97 int_poly*
f=reinterpret_cast<int_poly*> (a);
98 int_poly*
g=reinterpret_cast<int_poly*> (
b);
99 int_poly *
res=
new int_poly;
101 res->poly_sub_to(*
g);
106 number nAEDiv(number a, number
b,
const coeffs)
108 int_poly*
f=reinterpret_cast<int_poly*> (a);
109 int_poly*
g=reinterpret_cast<int_poly*> (
b);
110 int_poly *
res=
new int_poly;
117 number nAEIntMod(number a, number,
const coeffs)
122 number nAEExactDiv(number a, number
b,
const coeffs)
124 int_poly*
f=reinterpret_cast<int_poly*> (a);
125 int_poly*
g=reinterpret_cast<int_poly*> (
b);
126 int_poly *
res=
new int_poly;
134 number nAEInit(
long i,
const coeffs)
137 mpz_init_set_ui(
m,
i);
138 int_poly*
res=
new int_poly;
140 number res1=reinterpret_cast<number>(
res);
144 number nAEInitMPZ(mpz_t
m,
const coeffs)
146 int_poly*
res=
new int_poly;
148 number res1=reinterpret_cast<number>(
res);
153 int nAESize (number a,
const coeffs)
155 int_poly*
f=reinterpret_cast<int_poly*> (a);
159 long nAEInt(number &,
const coeffs)
165 number nAEMPZ(number a,
const coeffs)
171 number nAENeg(number c,
const coeffs)
173 int_poly*
f=reinterpret_cast<int_poly*> (c);
174 int_poly *
res=
new int_poly;
180 number nAECopy(number c,
const coeffs)
185 number nAERePart(number c,
const coeffs)
190 number nAEImPart(number c,
const coeffs)
195 void nAEWriteLong (number a,
const coeffs)
197 int_poly*
f=reinterpret_cast <int_poly*>(a);
202 void nAEWriteShort (number a,
const coeffs)
204 int_poly*
f=reinterpret_cast <int_poly*>(a);
210 const char * nAERead (
const char *, number *,
const coeffs)
217 number nAENormalize (number a, number,
const coeffs)
224 int_poly*
f=reinterpret_cast<int_poly*> (a);
225 int_poly*
g=reinterpret_cast<int_poly*> (
b);
226 if (
f->deg >
g->deg) {
return FALSE;}
232 int_poly*
f=reinterpret_cast<int_poly*> (a);
233 int_poly*
g=reinterpret_cast<int_poly*> (
b);
234 if (
f->is_equal(*
g) == 1) {
return FALSE;}
240 int_poly*
f=reinterpret_cast<int_poly*> (a);
241 if (
f->is_zero() == 1) {
return FALSE;}
247 int_poly*
f=reinterpret_cast<int_poly*> (a);
248 if (
f->is_one() == 1) {
return FALSE;}
254 int_poly*
f=reinterpret_cast<int_poly*> (a);