119{
122 {
125 }
126
128
132
136
137 for(
int j0=1,
j=2,
k=0;
j<=n+1;j0=
j,
j++)
138 {
142 {
146 }
147 else
148 {
151
152 j0--;
153 for(
int i=1;
i<=n0;
i++)
154 for(
int j=1;
j<=n0;
j++)
156 for(
int i=1;
i<=n0;
i++)
158
162 {
165 }
166
168 {
170 {
173 }
174 else
177 {
182 else
188 }
189 else
190 {
196 }
197 }
198
199 delete(m0);
201 }
202 }
203
206
207 for(int i0=0;i0<n-1;i0++)
208 {
209 for(int i1=i0+1;i1<n;i1++)
210 {
212 {
213 (*m)[i0]+=(*m)[i1];
214 (*m)[i1]=0;
215 }
216 else
217 {
225 {
226 poly e1=e->m[i0];
227 e->m[i0]=e->m[i1];
228 e->m[i1]=e1;
229 int m1=(*m)[i0];
230 (*m)[i0]=(*m)[i1];
231 (*m)[i1]=m1;
232 }
233 }
234 }
235 }
236
237 int n0=0;
240 n0++;
241
244
245 for(
int i=0,i0=0;
i<n;
i++)
247 {
251 i0++;
252 }
253
256
262
264}
ideal singclap_factorize(poly f, intvec **v, int with_exps, const ring r)
BOOLEAN evHessenberg(leftv res, leftv h)
#define idDelete(H)
delete an ideal
matrix mpNew(int r, int c)
create a r x c zero-matrix
poly mp_DetBareiss(matrix a, const ring r)
returns the determinant of the matrix m; uses Bareiss algorithm
#define MATELEM(mat, i, j)
1-based access to matrix
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
#define pGetExp(p, i)
Exponent.
#define pEqualPolys(p1, p2)
#define pCopy(p)
return a copy of the poly
ideal idInit(int idsize, int rank)
initialise an ideal / module