Changeset 8396b41 in git
- Timestamp:
- Jul 7, 2014, 12:30:23 PM (10 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'c5facdfddea2addfd91babd8b9019161dea4b695')
- Children:
- 7cdd912b9b6c44ae159128e2ef64cbaede6f8351
- Parents:
- 7ecb7800b8a011e2ad54b5616f6cb5325afd91cc
- git-author:
- Martin Lee <martinlee84@web.de>2014-07-07 12:30:23+02:00
- git-committer:
- Martin Lee <martinlee84@web.de>2014-07-09 16:09:16+02:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/cfModGcd.cc
r7ecb780 r8396b41 2203 2203 CFArray gcds= CFArray (biggestSize); 2204 2204 CFList * pEvalPoints= new CFList [biggestSize]; 2205 Variable V_buf= alpha ;2205 Variable V_buf= alpha, V_buf4= alpha; 2206 2206 CFList source, dest; 2207 2207 CanonicalForm prim_elem, im_prim_elem; 2208 CanonicalForm prim_elem_alpha, im_prim_elem_alpha; 2208 2209 for (int i= 0; i < biggestSize; i++) 2209 2210 { … … 2223 2224 do 2224 2225 { 2225 Variable V_buf2= chooseExtension (V_buf); 2226 Variable V_buf3= V_buf; 2227 V_buf= chooseExtension (V_buf); 2226 2228 source= CFList(); 2227 2229 dest= CFList(); 2228 2230 2229 2231 bool prim_fail= false; 2230 Variable V_buf3; 2231 prim_elem= primitiveElement (V_buf, V_buf3, prim_fail); 2232 Variable V_buf2; 2233 prim_elem= primitiveElement (V_buf4, V_buf2, prim_fail); 2234 if (V_buf4 == alpha && alpha.level() != 1) 2235 prim_elem_alpha= prim_elem; 2232 2236 2233 2237 ASSERT (!prim_fail, "failure in integer factorizer"); … … 2235 2239 ; //ERROR 2236 2240 else 2237 im_prim_elem= mapPrimElem (prim_elem, V_buf , V_buf2);2241 im_prim_elem= mapPrimElem (prim_elem, V_buf4, V_buf); 2238 2242 2239 2243 DEBOUTLN (cerr, "getMipo (alpha)= " << getMipo (V_buf)); 2240 2244 DEBOUTLN (cerr, "getMipo (alpha)= " << getMipo (V_buf2)); 2241 2245 2246 if (V_buf4 == alpha && alpha.level() != 1) 2247 im_prim_elem_alpha= im_prim_elem; 2248 else if (alpha.level() != 1) 2249 im_prim_elem_alpha= mapUp (im_prim_elem_alpha, V_buf4, V_buf, 2250 prim_elem, im_prim_elem, source, dest); 2251 2242 2252 for (CFListIterator j= list; j.hasItem(); j++) 2243 j.getItem()= mapUp (j.getItem(), V_buf , V_buf2, prim_elem,2253 j.getItem()= mapUp (j.getItem(), V_buf4, V_buf, prim_elem, 2244 2254 im_prim_elem, source, dest); 2245 2255 for (int k= 0; k < i; k++) 2246 2256 { 2247 2257 for (CFListIterator j= pEvalPoints[k]; j.hasItem(); j++) 2248 j.getItem()= mapUp (j.getItem(), V_buf , V_buf2, prim_elem,2258 j.getItem()= mapUp (j.getItem(), V_buf4, V_buf, prim_elem, 2249 2259 im_prim_elem, source, dest); 2250 gcds[k]= mapUp (gcds[k], V_buf , V_buf2, prim_elem, im_prim_elem,2260 gcds[k]= mapUp (gcds[k], V_buf4, V_buf, prim_elem, im_prim_elem, 2251 2261 source, dest); 2252 2262 } … … 2254 2264 if (alpha.level() != 1) 2255 2265 { 2256 A= mapUp (A, V_buf , V_buf2, prim_elem, im_prim_elem, source,dest);2257 B= mapUp (B, V_buf , V_buf2, prim_elem, im_prim_elem, source,dest);2266 A= mapUp (A, V_buf4, V_buf, prim_elem, im_prim_elem, source,dest); 2267 B= mapUp (B, V_buf4, V_buf, prim_elem, im_prim_elem, source,dest); 2258 2268 } 2269 V_buf4= V_buf; 2259 2270 evalFail= false; 2260 2271 evalPoints= evaluationPoints (A, B, Aeval, Beval, LCA, GF, V_buf, … … 2274 2285 deg++; 2275 2286 } while (evalFail); 2287 V_buf4= V_buf; 2276 2288 } 2277 2289 } … … 2370 2382 { 2371 2383 CFList u, v; 2372 result= mapDown (result, prim_elem , im_prim_elem, alpha, u, v);2384 result= mapDown (result, prim_elem_alpha, im_prim_elem_alpha, alpha, u, v); 2373 2385 } 2374 2386 … … 2475 2487 CFArray gcds= CFArray (biggestSize); 2476 2488 CFList * pEvalPoints= new CFList [biggestSize]; 2477 Variable V_buf= alpha ;2489 Variable V_buf= alpha, V_buf4= alpha; 2478 2490 CFList source, dest; 2479 2491 CanonicalForm prim_elem, im_prim_elem; 2492 CanonicalForm prim_elem_alpha, im_prim_elem_alpha; 2480 2493 for (int i= 0; i < biggestSize; i++) 2481 2494 { … … 2494 2507 do 2495 2508 { 2496 Variable V_buf2= chooseExtension (V_buf); 2509 Variable V_buf3= V_buf; 2510 V_buf= chooseExtension (V_buf); 2497 2511 source= CFList(); 2498 2512 dest= CFList(); 2499 2513 2500 2514 bool prim_fail= false; 2501 Variable V_buf3; 2502 prim_elem= primitiveElement (V_buf, V_buf3, prim_fail); 2515 Variable V_buf2; 2516 prim_elem= primitiveElement (V_buf4, V_buf2, prim_fail); 2517 if (V_buf4 == alpha && alpha.level() != 1) 2518 prim_elem_alpha= prim_elem; 2503 2519 2504 2520 ASSERT (!prim_fail, "failure in integer factorizer"); … … 2506 2522 ; //ERROR 2507 2523 else 2508 im_prim_elem= mapPrimElem (prim_elem, V_buf, V_buf2); 2509 2510 DEBOUTLN (cerr, "getMipo (alpha)= " << getMipo (V_buf)); 2511 DEBOUTLN (cerr, "getMipo (alpha)= " << getMipo (V_buf2)); 2524 im_prim_elem= mapPrimElem (prim_elem, V_buf4, V_buf); 2525 2526 DEBOUTLN (cerr, "getMipo (V_buf)= " << getMipo (V_buf)); 2527 DEBOUTLN (cerr, "getMipo (V_buf2)= " << getMipo (V_buf2)); 2528 2529 if (V_buf4 == alpha && alpha.level() != 1) 2530 im_prim_elem_alpha= im_prim_elem; 2531 else if (alpha.level() != 1) 2532 im_prim_elem_alpha= mapUp (im_prim_elem_alpha, V_buf4, V_buf, 2533 prim_elem, im_prim_elem, source, dest); 2512 2534 2513 2535 for (CFListIterator i= list; i.hasItem(); i++) 2514 i.getItem()= mapUp (i.getItem(), V_buf , V_buf2, prim_elem,2536 i.getItem()= mapUp (i.getItem(), V_buf4, V_buf, prim_elem, 2515 2537 im_prim_elem, source, dest); 2538 if (alpha.level() != 1) 2539 { 2540 A= mapUp (A, V_buf4, V_buf, prim_elem, im_prim_elem, source,dest); 2541 B= mapUp (B, V_buf4, V_buf, prim_elem, im_prim_elem, source,dest); 2542 } 2516 2543 evalFail= false; 2544 V_buf4= V_buf; 2517 2545 evalPoints= evaluationPoints (A, B, Aeval, Beval, LCA, GF, V_buf, 2518 2546 evalFail, list); … … 2531 2559 deg++; 2532 2560 } while (evalFail); 2561 V_buf4= V_buf; 2533 2562 } 2534 2563 } … … 2831 2860 for (int i= 0; i < skelSize; i++) 2832 2861 { 2862 if (coeffMonoms[i].size() + 1 >= pMat[i].rows() || coeffMonoms[i].size() + 1 >= pMat[i].columns()) 2863 { 2864 delete[] pEvalPoints; 2865 delete[] pMat; 2866 delete[] pL; 2867 delete[] coeffMonoms; 2868 delete[] pM; 2869 if (bufpEvalPoints != NULL) 2870 delete [] bufpEvalPoints; 2871 fail= true; 2872 return 0; 2873 } 2833 2874 bufMat= pMat[i] (coeffMonoms[i].size() + 1, pMat[i].rows(), 2834 2875 coeffMonoms[i].size() + 1, pMat[i].columns()); … … 2880 2921 { 2881 2922 CFList u, v; 2882 result= mapDown (result, prim_elem, im_prim_elem, alpha, u, v);2923 result= mapDown (result,prim_elem_alpha, im_prim_elem_alpha, alpha, u, v); 2883 2924 } 2884 2925 result= N(result); … … 3054 3095 topLevel= false; 3055 3096 bool inextension= false; 3056 Variable V_buf= alpha ;3097 Variable V_buf= alpha, V_buf4= alpha; 3057 3098 CanonicalForm prim_elem, im_prim_elem; 3099 CanonicalForm prim_elem_alpha, im_prim_elem_alpha; 3058 3100 CFList source, dest; 3059 3101 do // first do … … 3075 3117 bool prim_fail= false; 3076 3118 Variable V_buf2; 3077 prim_elem= primitiveElement (alpha, V_buf2, prim_fail); 3078 3079 if (V_buf3 != alpha) 3080 { 3081 m= mapDown (m, prim_elem, im_prim_elem, alpha, source, dest); 3082 G_m= mapDown (m, prim_elem, im_prim_elem, alpha, source, dest); 3083 newtonPoly= mapDown (newtonPoly, prim_elem, im_prim_elem, alpha, 3119 prim_elem= primitiveElement (V_buf4, V_buf2, prim_fail); 3120 if (V_buf4 == alpha) 3121 prim_elem_alpha= prim_elem; 3122 3123 if (V_buf3 != V_buf4) 3124 { 3125 m= mapDown (m, prim_elem, im_prim_elem, V_buf4, source, dest); 3126 G_m= mapDown (m, prim_elem, im_prim_elem, V_buf4, source, dest); 3127 newtonPoly= mapDown (newtonPoly, prim_elem, im_prim_elem, V_buf4, 3084 3128 source, dest); 3085 ppA= mapDown (ppA, prim_elem, im_prim_elem, alpha, source, dest);3086 ppB= mapDown (ppB, prim_elem, im_prim_elem, alpha, source, dest);3087 gcdlcAlcB= mapDown (gcdlcAlcB, prim_elem, im_prim_elem, alpha, source,3129 ppA= mapDown (ppA, prim_elem, im_prim_elem, V_buf4, source, dest); 3130 ppB= mapDown (ppB, prim_elem, im_prim_elem, V_buf4, source, dest); 3131 gcdlcAlcB= mapDown (gcdlcAlcB, prim_elem, im_prim_elem, V_buf4, source, 3088 3132 dest); 3089 3133 for (CFListIterator i= l; i.hasItem(); i++) 3090 i.getItem()= mapDown (i.getItem(), prim_elem, im_prim_elem, alpha,3134 i.getItem()= mapDown (i.getItem(), prim_elem, im_prim_elem, V_buf4, 3091 3135 source, dest); 3092 3136 } … … 3096 3140 ; //ERROR 3097 3141 else 3098 im_prim_elem= mapPrimElem (prim_elem, alpha, V_buf); 3099 3100 DEBOUTLN (cerr, "getMipo (alpha)= " << getMipo (alpha)); 3142 im_prim_elem= mapPrimElem (prim_elem, V_buf4, V_buf); 3143 3144 if (V_buf4 == alpha) 3145 im_prim_elem_alpha= im_prim_elem; 3146 else 3147 im_prim_elem_alpha= mapUp (im_prim_elem_alpha, V_buf4, V_buf, prim_elem, 3148 im_prim_elem, source, dest); 3149 3150 DEBOUTLN (cerr, "getMipo (V_buf4)= " << getMipo (V_buf4)); 3101 3151 DEBOUTLN (cerr, "getMipo (V_buf2)= " << getMipo (V_buf2)); 3102 3152 inextension= true; 3103 3153 for (CFListIterator i= l; i.hasItem(); i++) 3104 i.getItem()= mapUp (i.getItem(), alpha, V_buf, prim_elem,3154 i.getItem()= mapUp (i.getItem(), V_buf4, V_buf, prim_elem, 3105 3155 im_prim_elem, source, dest); 3106 m= mapUp (m, alpha, V_buf, prim_elem, im_prim_elem, source, dest);3107 G_m= mapUp (G_m, alpha, V_buf, prim_elem, im_prim_elem, source, dest);3108 newtonPoly= mapUp (newtonPoly, alpha, V_buf, prim_elem, im_prim_elem,3156 m= mapUp (m, V_buf4, V_buf, prim_elem, im_prim_elem, source, dest); 3157 G_m= mapUp (G_m, V_buf4, V_buf, prim_elem, im_prim_elem, source, dest); 3158 newtonPoly= mapUp (newtonPoly, V_buf4, V_buf, prim_elem, im_prim_elem, 3109 3159 source, dest); 3110 ppA= mapUp (ppA, alpha, V_buf, prim_elem, im_prim_elem, source, dest);3111 ppB= mapUp (ppB, alpha, V_buf, prim_elem, im_prim_elem, source, dest);3112 gcdlcAlcB= mapUp (gcdlcAlcB, alpha, V_buf, prim_elem, im_prim_elem,3160 ppA= mapUp (ppA, V_buf4, V_buf, prim_elem, im_prim_elem, source, dest); 3161 ppB= mapUp (ppB, V_buf4, V_buf, prim_elem, im_prim_elem, source, dest); 3162 gcdlcAlcB= mapUp (gcdlcAlcB, V_buf4, V_buf, prim_elem, im_prim_elem, 3113 3163 source, dest); 3114 3164 … … 3124 3174 "time for recursive call: "); 3125 3175 DEBOUTLN (cerr, "G_random_element= " << G_random_element); 3176 V_buf4= V_buf; 3126 3177 } 3127 3178 else … … 3184 3235 { 3185 3236 DEBOUTLN (cerr, "ppH before mapDown= " << ppH); 3186 ppH= mapDown (ppH, prim_elem , im_prim_elem, alpha, u, v);3237 ppH= mapDown (ppH, prim_elem_alpha, im_prim_elem_alpha, alpha, u, v); 3187 3238 ppH /= Lc(ppH); 3188 3239 DEBOUTLN (cerr, "ppH after mapDown= " << ppH); … … 3221 3272 bool prim_fail= false; 3222 3273 Variable V_buf2; 3223 prim_elem= primitiveElement (alpha, V_buf2, prim_fail); 3224 3225 if (V_buf3 != alpha) 3274 prim_elem= primitiveElement (V_buf4, V_buf2, prim_fail); 3275 if (V_buf4 == alpha) 3276 prim_elem_alpha= prim_elem; 3277 3278 if (V_buf3 != V_buf4) 3226 3279 { 3227 m= mapDown (m, prim_elem, im_prim_elem, alpha, source, dest);3228 G_m= mapDown (m, prim_elem, im_prim_elem, alpha, source, dest);3229 newtonPoly= mapDown (newtonPoly, prim_elem, im_prim_elem, alpha,3280 m= mapDown (m, prim_elem, im_prim_elem, V_buf4, source, dest); 3281 G_m= mapDown (m, prim_elem, im_prim_elem, V_buf4, source, dest); 3282 newtonPoly= mapDown (newtonPoly, prim_elem, im_prim_elem, V_buf4, 3230 3283 source, dest); 3231 ppA= mapDown (ppA, prim_elem, im_prim_elem, alpha, source, dest);3232 ppB= mapDown (ppB, prim_elem, im_prim_elem, alpha, source, dest);3233 gcdlcAlcB= mapDown (gcdlcAlcB, prim_elem, im_prim_elem, alpha,3284 ppA= mapDown (ppA, prim_elem, im_prim_elem, V_buf4, source, dest); 3285 ppB= mapDown (ppB, prim_elem, im_prim_elem, V_buf4, source, dest); 3286 gcdlcAlcB= mapDown (gcdlcAlcB, prim_elem, im_prim_elem, V_buf4, 3234 3287 source, dest); 3235 3288 for (CFListIterator i= l; i.hasItem(); i++) 3236 i.getItem()= mapDown (i.getItem(), prim_elem, im_prim_elem, alpha,3289 i.getItem()= mapDown (i.getItem(), prim_elem, im_prim_elem, V_buf4, 3237 3290 source, dest); 3238 3291 } … … 3242 3295 ; //ERROR 3243 3296 else 3244 im_prim_elem= mapPrimElem (prim_elem, alpha, V_buf); 3245 3246 DEBOUTLN (cerr, "getMipo (alpha)= " << getMipo (alpha)); 3297 im_prim_elem= mapPrimElem (prim_elem, V_buf4, V_buf); 3298 3299 if (V_buf4 == alpha) 3300 im_prim_elem_alpha= im_prim_elem; 3301 else 3302 im_prim_elem_alpha= mapUp (im_prim_elem_alpha, V_buf4, V_buf, 3303 prim_elem, im_prim_elem, source, dest); 3304 3305 DEBOUTLN (cerr, "getMipo (V_buf4)= " << getMipo (V_buf4)); 3247 3306 DEBOUTLN (cerr, "getMipo (V_buf2)= " << getMipo (V_buf2)); 3248 3307 inextension= true; 3249 3308 for (CFListIterator i= l; i.hasItem(); i++) 3250 i.getItem()= mapUp (i.getItem(), alpha, V_buf, prim_elem,3309 i.getItem()= mapUp (i.getItem(), V_buf4, V_buf, prim_elem, 3251 3310 im_prim_elem, source, dest); 3252 m= mapUp (m, alpha, V_buf, prim_elem, im_prim_elem, source, dest);3253 G_m= mapUp (G_m, alpha, V_buf, prim_elem, im_prim_elem, source, dest);3254 newtonPoly= mapUp (newtonPoly, alpha, V_buf, prim_elem, im_prim_elem,3311 m= mapUp (m, V_buf4, V_buf, prim_elem, im_prim_elem, source, dest); 3312 G_m= mapUp (G_m, V_buf4, V_buf, prim_elem, im_prim_elem, source, dest); 3313 newtonPoly= mapUp (newtonPoly, V_buf4, V_buf, prim_elem, im_prim_elem, 3255 3314 source, dest); 3256 ppA= mapUp (ppA, alpha, V_buf, prim_elem, im_prim_elem, source, dest);3257 ppB= mapUp (ppB, alpha, V_buf, prim_elem, im_prim_elem, source, dest);3258 3259 gcdlcAlcB= mapUp (gcdlcAlcB, alpha, V_buf, prim_elem, im_prim_elem,3315 ppA= mapUp (ppA, V_buf4, V_buf, prim_elem, im_prim_elem, source, dest); 3316 ppB= mapUp (ppB, V_buf4, V_buf, prim_elem, im_prim_elem, source, dest); 3317 3318 gcdlcAlcB= mapUp (gcdlcAlcB, V_buf4, V_buf, prim_elem, im_prim_elem, 3260 3319 source, dest); 3261 3320 … … 3265 3324 CFList list; 3266 3325 TIMING_START (gcd_recursion); 3326 3327 V_buf4= V_buf; 3267 3328 3268 3329 //sparseInterpolation … … 3357 3418 { 3358 3419 DEBOUTLN (cerr, "ppH before mapDown= " << ppH); 3359 ppH= mapDown (ppH, prim_elem , im_prim_elem, alpha, u, v);3420 ppH= mapDown (ppH, prim_elem_alpha, im_prim_elem_alpha, alpha, u, v); 3360 3421 ppH /= Lc(ppH); 3361 3422 DEBOUTLN (cerr, "ppH after mapDown= " << ppH); … … 3579 3640 "time for recursive call: "); 3580 3641 DEBOUTLN (cerr, "G_random_element= " << G_random_element); 3642 alpha= V_buf; 3581 3643 } 3582 3644 … … 3660 3722 G_random_element= 3661 3723 monicSparseInterpol(ppA(random_element, x), ppB (random_element, x), 3662 skeleton, Variable(1), sparseFail, coeffMonoms,3724 skeleton, x, sparseFail, coeffMonoms, 3663 3725 Monoms); 3664 3726 else 3665 3727 G_random_element= 3666 3728 nonMonicSparseInterpol(ppA(random_element,x), ppB(random_element,x), 3667 skeleton, Variable (1), sparseFail,3729 skeleton, x, sparseFail, 3668 3730 coeffMonoms, Monoms); 3669 3731 TIMING_END_AND_PRINT (gcd_recursion, … … 3787 3849 "time for recursive call: "); 3788 3850 DEBOUTLN (cerr, "G_random_element= " << G_random_element); 3851 alpha= V_buf; 3789 3852 } 3790 3853
Note: See TracChangeset
for help on using the changeset viewer.