Changeset 618da5 in git
- Timestamp:
- Feb 15, 2011, 1:32:51 PM (13 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- d1eacd6184ca6694692912918a2b547a086e4ce1
- Parents:
- c880c179f5777247d29dc13017c11fc651c7c366
- Location:
- factory
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/cf_gcd_smallp.cc
rc880c17 r618da5 1550 1550 L[i]= (*N) (i + 1, M.columns() + 1); 1551 1551 M= (*N) (1, M.rows(), 1, M.columns()); 1552 delete N; 1552 1553 return rk; 1553 1554 } … … 1580 1581 for (int i= 0; i < M.rows(); i++) 1581 1582 L[i]= (*N) (i + 1, M.columns() + 1); 1583 1584 delete N; 1582 1585 return rk; 1583 1586 } … … 1602 1605 long rk= gauss (*NTLN); 1603 1606 if (rk != M.columns()) 1607 { 1608 delete N; 1604 1609 return CFArray(); 1605 1610 } 1606 1611 N= convertNTLmat_zz_p2FacCFMatrix (*NTLN); 1607 1612 1608 1613 CFArray A= readOffSolution (*N, rk); 1609 1614 1615 delete N; 1610 1616 return A; 1611 1617 } … … 1631 1637 long rk= gauss (*NTLN); 1632 1638 if (rk != M.columns()) 1639 { 1640 delete N; 1633 1641 return CFArray(); 1634 1642 } 1635 1643 N= convertNTLmat_zz_pE2FacCFMatrix (*NTLN, alpha); 1636 1644 1637 1645 CFArray A= readOffSolution (*N, rk); 1638 1646 1647 delete N; 1639 1648 return A; 1640 1649 } … … 2451 2460 pMat= new CFMatrix [skelSize]; 2452 2461 pL[minimalColumnsIndex]= bufArray; 2453 CFList* bufpEvalPoints ;2462 CFList* bufpEvalPoints= NULL; 2454 2463 CFArray bufGcds; 2455 2464 if (biggestSize != biggestSize2) … … 2477 2486 delete[] coeffMonoms; 2478 2487 delete[] pM; 2488 if (bufpEvalPoints != NULL) 2489 delete [] bufpEvalPoints; 2479 2490 fail= true; 2480 2491 return 0; … … 2490 2501 delete[] coeffMonoms; 2491 2502 delete[] pM; 2503 if (bufpEvalPoints != NULL) 2504 delete [] bufpEvalPoints; 2492 2505 fail= true; 2493 2506 return 0; … … 2577 2590 delete[] coeffMonoms; 2578 2591 delete[] pM; 2592 if (bufpEvalPoints != NULL) 2593 delete [] bufpEvalPoints; 2579 2594 fail= true; 2580 2595 return 0; … … 2621 2636 delete[] coeffMonoms; 2622 2637 delete[] pM; 2638 if (bufpEvalPoints != NULL) 2639 delete [] bufpEvalPoints; 2623 2640 fail= true; 2624 2641 return 0; … … 2641 2658 result= N(result); 2642 2659 if (fdivides (result, F) && fdivides (result, G)) 2660 { 2661 delete[] pEvalPoints; 2662 delete[] pMat; 2663 delete[] pL; 2664 delete[] pM; 2665 if (bufpEvalPoints != NULL) 2666 delete [] bufpEvalPoints; 2643 2667 return result; 2668 } 2644 2669 else 2645 2670 { 2671 delete[] pEvalPoints; 2672 delete[] pMat; 2673 delete[] pL; 2674 delete[] coeffMonoms; 2675 delete[] pM; 2676 if (bufpEvalPoints != NULL) 2677 delete [] bufpEvalPoints; 2646 2678 fail= true; 2647 2679 return 0; … … 3659 3691 } 3660 3692 3661 if (both_non_zero == 0) return 0; 3693 if (both_non_zero == 0) 3694 { 3695 delete [] degsf; 3696 delete [] degsg; 3697 return 0; 3698 } 3662 3699 3663 3700 // map Variables which do not occur in both polynomials to higher levels -
factory/cf_map_ext.cc
rc880c17 r618da5 115 115 if (pos == 0) 116 116 { 117 alpha_power= power (alpha, counter);117 alpha_power= buf*power (alpha, counter); 118 118 dest.append (alpha_power); 119 119 } 120 120 else 121 121 alpha_power= getItem (dest, pos); 122 result = alpha_power *buf;122 result = alpha_power; 123 123 return result; 124 124 } … … 286 286 if (pos == 0) 287 287 { 288 H_power= power (H, counter);288 H_power= buf*power (H, counter); 289 289 dest.append (H_power); 290 290 } 291 291 else 292 292 H_power= getItem (dest, pos); 293 result = H_power *buf;293 result = H_power; 294 294 return result; 295 295 } … … 366 366 367 367 CanonicalForm 368 mapPrimElem (const CanonicalForm& prim _elem, const Variable& alpha,368 mapPrimElem (const CanonicalForm& primElem, const Variable& alpha, 369 369 const Variable& beta) 370 370 { 371 if (prim _elem == alpha)371 if (primElem == alpha) 372 372 return mapUp (alpha, beta); 373 373 else 374 374 { 375 CanonicalForm im_alpha= mapUp (alpha, beta); 376 CanonicalForm result= 0; 377 for (CFIterator i= prim_elem; i.hasTerms(); i++) 378 result += power (im_alpha, i.exp())*i.coeff(); 379 return result; 380 } 375 CanonicalForm primElemMipo= findMinPoly (primElem, alpha); 376 int p= getCharacteristic (); 377 zz_p::init (p); 378 zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo (beta)); 379 zz_pE::init (NTLMipo); 380 zz_pEX NTLPrimElemMipo= convertFacCF2NTLzz_pEX (primElemMipo, NTLMipo); 381 zz_pE root= FindRoot (NTLPrimElemMipo); 382 return convertNTLzzpE2CF (root, beta); 383 } 384 } 385 386 CanonicalForm 387 findMinPoly (const CanonicalForm& F, const Variable& alpha) 388 { 389 ASSERT (F.isUnivariate() && F.mvar()==alpha,"expected element of F_p(alpha)"); 390 391 zz_p::init (getCharacteristic()); 392 zz_pX NTLF= convertFacCF2NTLzzpX (F); 393 int d= degree (getMipo (alpha)); 394 395 zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo(alpha)); 396 zz_pE::init (NTLMipo); 397 vec_zz_p pows; 398 pows.SetLength (2*d); 399 400 zz_pE powNTLF; 401 set (powNTLF); 402 zz_pE NTLFE= to_zz_pE (NTLF); 403 zz_pX buf; 404 for (int i= 0; i < 2*d; i++) 405 { 406 buf= rep (powNTLF); 407 buf.rep.SetLength (d); 408 pows [i]= buf.rep[0]; 409 powNTLF *= NTLFE; 410 } 411 412 zz_pX NTLMinPoly; 413 MinPolySeq (NTLMinPoly, pows, d); 414 415 return convertNTLzzpX2CF (NTLMinPoly, Variable (1)); 381 416 } 382 417 -
factory/cf_map_ext.h
rc880c17 r618da5 45 45 46 46 CanonicalForm Falpha2GFRep (const CanonicalForm& F); 47 48 #ifdef HAVE_NTL 49 /// compute minimal polynomial of \f$ F\in\F_p(\alpha)\backslash\F_p \f$ via NTL 50 /// 51 /// @return @a findMinPoly computes the minimal polynomial of F 52 CanonicalForm 53 findMinPoly (const CanonicalForm& F, ///< [in] an element of 54 ///< \f$ \F_p(\alpha)\backslash\F_p \f$ 55 const Variable& alpha ///< [in] algebraic variable 56 ); 47 57 #endif 58 #endif -
factory/facFqBivar.cc
rc880c17 r618da5 1241 1241 ; //ERROR 1242 1242 else 1243 imPrimElem= mapPrimElem (primElem, vBuf, v);1243 imPrimElem= mapPrimElem (primElem, alpha, v); 1244 1244 1245 1245 CFList source, dest; … … 1259 1259 ; //ERROR 1260 1260 else 1261 imPrimElem= mapPrimElem (delta, beta, v); //oder mapPrimElem (primElem, vBuf, v);1261 imPrimElem= mapPrimElem (delta, beta, v); 1262 1262 1263 1263 CFList source, dest; … … 1324 1324 ; //ERROR 1325 1325 else 1326 imPrimElem= mapPrimElem (primElem, v Buf, v2);1326 imPrimElem= mapPrimElem (primElem, v1, v2); 1327 1327 1328 1328 CFList source, dest; -
factory/facFqBivarUtil.cc
rc880c17 r618da5 172 172 return F; 173 173 else if (!k && beta != Variable (1)) 174 return mapDown (F, primElem, imPrimElem, beta, source, dest);174 return mapDown (F, imPrimElem, primElem, beta, source, dest); 175 175 } 176 176 … … 211 211 if (!isInExtension (g, delta, k)) 212 212 { 213 g= mapDown (g, gamma, delta, alpha, source, dest);213 g= mapDown (g, delta, gamma, alpha, source, dest); 214 214 factors.append (g); 215 215 } … … 234 234 factors.append (g); 235 235 else if (!k && beta != Variable (1)) 236 factors.append (mapDown (g, gamma, delta, alpha, source, dest));236 factors.append (mapDown (g, delta, gamma, alpha, source, dest)); 237 237 return; 238 238 } -
factory/facFqFactorize.cc
rc880c17 r618da5 1909 1909 ; //ERROR 1910 1910 else 1911 imPrimElem= mapPrimElem (primElem, vBuf, v);1911 imPrimElem= mapPrimElem (primElem, alpha, v); 1912 1912 1913 1913 CFList source, dest; … … 1927 1927 ; //ERROR 1928 1928 else 1929 imPrimElem= mapPrimElem (delta, beta, v); //oder mapPrimElem (primElem, vBuf, v);1929 imPrimElem= mapPrimElem (delta, beta, v); 1930 1930 1931 1931 CFList source, dest; … … 1989 1989 primElem= primitiveElement (v1, vBuf, primFail); 1990 1990 if (primFail) 1991 {1992 1991 ; //ERROR 1993 }1994 1992 else 1995 { 1996 imPrimElem= mapPrimElem (primElem, vBuf, v2); 1997 } 1993 imPrimElem= mapPrimElem (primElem, v1, v2); 1998 1994 CFList source, dest; 1999 CanonicalForm bufA= mapUp (A, alpha, beta, primElem, imPrimElem,1995 CanonicalForm bufA= mapUp (A, v1, v2, primElem, imPrimElem, 2000 1996 source, dest); 2001 1997 ExtensionInfo info= ExtensionInfo (v2, v1, imPrimElem, primElem);
Note: See TracChangeset
for help on using the changeset viewer.