121{
124 {
127 }
128
130
134
138
139 for(
int j0=1,
j=2,
k=0;
j<=n+1;j0=
j,
j++)
140 {
144 {
148 }
149 else
150 {
153
154 j0--;
155 for(
int i=1;
i<=n0;
i++)
156 for(
int j=1;
j<=n0;
j++)
158 for(
int i=1;
i<=n0;
i++)
160
164 {
167 }
168
170 {
172 {
175 }
176 else
179 {
184 else
190 }
191 else
192 {
198 }
199 }
200
201 delete(m0);
203 }
204 }
205
208
209 for(int i0=0;i0<n-1;i0++)
210 {
211 for(int i1=i0+1;i1<n;i1++)
212 {
214 {
215 (*m)[i0]+=(*m)[i1];
216 (*m)[i1]=0;
217 }
218 else
219 {
227 {
228 poly e1=e->m[i0];
229 e->m[i0]=e->m[i1];
230 e->m[i1]=e1;
231 int m1=(*m)[i0];
232 (*m)[i0]=(*m)[i1];
233 (*m)[i1]=m1;
234 }
235 }
236 }
237 }
238
239 int n0=0;
242 n0++;
243
246
247 for(
int i=0,i0=0;
i<n;
i++)
249 {
253 i0++;
254 }
255
258
264
266}
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