15 #if __FLINT_RELEASE >= 20500 25 int convFlintISingI (fmpz_t
f)
32 void convSingIFlintI(fmpz_t
f,
int p)
39 void convFlintNSingN (mpz_t z, fmpz_t
f)
45 void convSingNFlintN(fmpz_t
f, mpz_t z)
58 fmpz_mat_init(M, r, c);
61 fmpz_mat_init(Transf, T->
rows(), T->
rows());
71 convSingNFlintN(dummy,n);
73 fmpz_set(fmpz_mat_entry(M, i-1, j-1), dummy);
79 for(i=T->
rows();i>0;i--)
81 for(j=T->
rows();j>0;j--)
84 convSingNFlintN(dummy,n);
86 fmpz_set(fmpz_mat_entry(Transf, i-1, j-1), dummy);
92 fmpz_lll_context_init_default(fl);
94 fmpz_lll(M, Transf, fl);
96 fmpz_lll(M,
NULL, fl);
101 convFlintNSingN(n, fmpz_mat_entry(M, i-1, j-1));
109 for(i=T->
rows();i>0;i--)
111 for(j=T->
cols();j>0;j--)
113 convFlintNSingN(n, fmpz_mat_entry(Transf, i-1, j-1));
129 fmpz_mat_init(M, r, c);
131 fmpz_mat_init(Transf, r, r);
138 convSingIFlintI(dummy,
IMATELEM(*m,i,j));
139 fmpz_set(fmpz_mat_entry(M, i-1, j-1), dummy);
145 for(i=T->
rows();i>0;i--)
147 for(j=T->
rows();j>0;j--)
149 convSingIFlintI(dummy,
IMATELEM(*T,i,j));
150 fmpz_set(fmpz_mat_entry(Transf, i-1, j-1), dummy);
156 fmpz_lll_context_init_default(fl);
158 fmpz_lll(M, Transf, fl);
160 fmpz_lll(M,
NULL, fl);
165 IMATELEM(*res,i,j)=convFlintISingI(fmpz_mat_entry(M, i-1, j-1));
170 for(i=Transf->r;i>0;i--)
172 for(j=Transf->r;j>0;j--)
174 IMATELEM(*T,i,j)=convFlintISingI(fmpz_mat_entry(Transf, i-1, j-1));
This file is work in progress and currently not part of the official Singular.
Coefficient rings, fields and other domains suitable for Singular polynomials.
static FORCE_INLINE number n_InitMPZ(mpz_t n, const coeffs r)
conversion of a GMP integer to number
#define BIMATELEM(M, I, J)
coeffs basecoeffs() const
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
#define IMATELEM(M, I, J)
static FORCE_INLINE void n_MPZ(mpz_t result, number &n, const coeffs r)
conversion of n to a GMP integer; 0 if not possible