Changeset 7164b40 in git
- Timestamp:
- Jan 19, 2002, 1:26:02 PM (22 years ago)
- Branches:
- (u'spielwiese', 'd1b01e9d51ade4b46b745d3bada5c5f3696be3a8')
- Children:
- cb7578a9034f20d08a92cd05938a6eb9b7ce86ed
- Parents:
- a9256747eae039136ca8aa9de4dabf605eb86355
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/fast_maps.cc
ra92567 r7164b40 7 7 * Author: obachman (Olaf Bachmann) 8 8 * Created: 02/01 9 * Version: $Id: fast_maps.cc,v 1. 5 2002-01-19 10:58:42 obachman Exp $9 * Version: $Id: fast_maps.cc,v 1.6 2002-01-19 12:26:02 bricken Exp $ 10 10 *******************************************************************/ 11 11 #include "mod2.h" … … 290 290 // return NULL if deg(ggt(m1, m2)) < 2 291 291 // else return m = ggT(m1, m2) and q1, q2 such that m1 = q1*m m2 = q2*m 292 292 293 static poly maEggT(const poly m1, const poly m2, poly &q1, poly &q2,const ring r) 293 294 { 295 294 296 int i; 295 297 int dg = 0; 296 298 poly ggt = NULL; 297 for (i=1; i<=r->N; i++) 298 { 299 q1 = p_Init(r); 300 q2 = p_Init(r); 301 ggt=p_Init(r); 302 303 for (i=1;i<=r->N;i++) { 299 304 Exponent_t e1 = p_GetExp(m1, i, r); 300 305 Exponent_t e2 = p_GetExp(m2, i, r); 301 if (e1 > 0 && e2 > 0) 302 { 306 if (e1 > 0 && e2 > 0){ 303 307 Exponent_t em = (e1 > e2 ? e2 : e1); 304 if (dg < 2)305 {306 ggt = p_Init(r);307 q1 = p_Init(r);308 q2 = p_Init(r);309 }310 308 dg += em; 311 309 p_SetExp(ggt, i, em, r); … … 313 311 p_SetExp(q2, i, e2 - em, r); 314 312 } 315 } 316 if (ggt != NULL) 313 else { 314 p_SetExp(q1, i, e1, r); 315 p_SetExp(q2, i, e2, r); 316 } 317 } 318 if (dg>1) 317 319 { 318 320 p_Setm(ggt, r); 319 321 p_Setm(q1, r); 320 322 p_Setm(q2, r); 323 324 325 } 326 else { 327 p_LmFree(ggt, r); 328 p_LmFree(q1, r); 329 p_LmFree(q2, r); 330 ggt = NULL; 321 331 } 322 332 return ggt; 323 333 } 334 335 324 336 325 337 /*******************************************************************************
Note: See TracChangeset
for help on using the changeset viewer.