Changeset 03f640 in git
- Timestamp:
- Jul 9, 2014, 3:58:43 PM (10 years ago)
- Branches:
- (u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
- Children:
- 8b00cafb736eed4e74873c4326a7c6d326b488af
- Parents:
- 4e2cc188f9d61d04296ddb7df63d0eaccd719584
- git-author:
- Martin Lee <martinlee84@web.de>2014-07-09 15:58:43+02:00
- git-committer:
- Martin Lee <martinlee84@web.de>2014-07-17 12:07:11+02:00
- Location:
- factory
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/cfEzgcd.cc
r4e2cc1 r03f640 1135 1135 degF = degree( F, x ); degG = degree( G, x ); 1136 1136 1137 if (hasFirstAlgVar(G,a))1137 if (algExtension) 1138 1138 b = REvaluation( 2, tmax(F.level(), G.level()), AlgExtRandomF( a ) ); 1139 1139 else … … 1166 1166 Variable alpha= rootOf (mipo.mapinto()); 1167 1167 result= GF2FalphaRep (result, alpha); 1168 prune (alpha); 1168 1169 } 1169 1170 if (k > 1) … … 1173 1174 } 1174 1175 if (extOfExt) 1176 { 1175 1177 result= mapDown (result, primElem, imPrimElem, oldA, dest, source); 1178 prune1 (oldA); 1179 } 1176 1180 return N (d*result); 1177 1181 } … … 1188 1192 Variable alpha= rootOf (mipo.mapinto()); 1189 1193 F= GF2FalphaRep (F, alpha); 1194 prune (alpha); 1190 1195 } 1191 1196 if (k > 1) … … 1195 1200 } 1196 1201 if (extOfExt) 1202 { 1197 1203 F= mapDown (F, primElem, imPrimElem, oldA, dest, source); 1204 prune1 (oldA); 1205 } 1198 1206 return N (d*F); 1199 1207 } … … 1211 1219 Variable alpha= rootOf (mipo.mapinto()); 1212 1220 G= GF2FalphaRep (G, alpha); 1221 prune (alpha); 1213 1222 } 1214 1223 if (k > 1) … … 1218 1227 } 1219 1228 if (extOfExt) 1229 { 1220 1230 G= mapDown (G, primElem, imPrimElem, oldA, dest, source); 1231 prune1 (oldA); 1232 } 1221 1233 return N (d*G); 1222 1234 } … … 1248 1260 Variable alpha= rootOf (mipo.mapinto()); 1249 1261 result= GF2FalphaRep (result, alpha); 1262 prune (alpha); 1250 1263 } 1251 1264 if (k > 1) … … 1255 1268 } 1256 1269 if (extOfExt) 1270 { 1257 1271 result= mapDown (result, primElem, imPrimElem, oldA, dest, source); 1272 prune1 (oldA); 1273 } 1258 1274 return N (d*result); 1259 1275 } … … 1291 1307 Variable alpha= rootOf (mipo.mapinto()); 1292 1308 F= GF2FalphaRep (F, alpha); 1309 prune (alpha); 1293 1310 } 1294 1311 if (k > 1) … … 1298 1315 } 1299 1316 if (extOfExt) 1317 { 1300 1318 F= mapDown (F, primElem, imPrimElem, oldA, dest, source); 1319 prune1 (oldA); 1320 } 1301 1321 return N (d*F); 1302 1322 } … … 1314 1334 Variable alpha= rootOf (mipo.mapinto()); 1315 1335 G= GF2FalphaRep (G, alpha); 1336 prune (alpha); 1316 1337 } 1317 1338 if (k > 1) … … 1321 1342 } 1322 1343 if (extOfExt) 1344 { 1323 1345 G= mapDown (G, primElem, imPrimElem, oldA, dest, source); 1346 prune1 (oldA); 1347 } 1324 1348 return N (d*G); 1325 1349 } … … 1377 1401 Variable alpha= rootOf (mipo.mapinto()); 1378 1402 result= GF2FalphaRep (result, alpha); 1403 prune (alpha); 1379 1404 } 1380 1405 if (k > 1) … … 1384 1409 } 1385 1410 if (extOfExt) 1411 { 1386 1412 result= mapDown (result, primElem, imPrimElem, oldA, dest, source); 1413 prune1 (oldA); 1414 } 1387 1415 return N (d*result); 1388 1416 } … … 1396 1424 result= modGCDFq (F, G, a); 1397 1425 if (extOfExt) 1426 { 1398 1427 result= mapDown (result, primElem, imPrimElem, oldA, dest, source); 1428 prune1 (oldA); 1429 } 1399 1430 return N (d*result); 1400 1431 } … … 1408 1439 Variable alpha= rootOf (mipo.mapinto()); 1409 1440 result= GF2FalphaRep (result, alpha); 1441 prune (alpha); 1410 1442 } 1411 1443 if (k > 1) … … 1430 1462 result= modGCDFq (F, G, a); 1431 1463 if (extOfExt) 1464 { 1432 1465 result= mapDown (result, primElem, imPrimElem, oldA, dest, source); 1466 prune1 (oldA); 1467 } 1433 1468 return N (d*result); 1434 1469 } … … 1442 1477 Variable alpha= rootOf (mipo.mapinto()); 1443 1478 result= GF2FalphaRep (result, alpha); 1479 prune (alpha); 1444 1480 } 1445 1481 if (k > 1) … … 1477 1513 Variable alpha= rootOf (mipo.mapinto()); 1478 1514 cand= GF2FalphaRep (cand, alpha); 1515 prune (alpha); 1479 1516 } 1480 1517 if (k > 1 && gcdfound) … … 1484 1521 } 1485 1522 if (extOfExt && gcdfound) 1523 { 1486 1524 cand= mapDown (cand, primElem, imPrimElem, oldA, dest, source); 1525 prune1 (oldA); 1526 } 1487 1527 } 1488 1528 } -
factory/cfGcdUtil.cc
r4e2cc1 r03f640 52 52 bool passToGF= false; 53 53 int k= 1; 54 bool extOfExt= false; 55 Variable v3; 54 56 if (p > 0 && p < TEST_ONE_MAX && CFFactory::gettype() != GaloisFieldDomain && !algExtension) 55 57 { … … 78 80 else if (p > 0 && p < TEST_ONE_MAX && algExtension) 79 81 { 80 bool extOfExt= false;81 82 #ifdef HAVE_NTL 82 83 int d= degree (getMipo (v)); … … 132 133 if (extOfExt) 133 134 { 135 v3= v; 134 136 F= mapUp (F, v, v2, primElem, imPrimElem, source, dest); 135 137 G= mapUp (G, v, v2, primElem, imPrimElem, source, dest); … … 181 183 if (k > 1) 182 184 setCharacteristic (p, k, gf_name); 185 if (extOfExt) 186 prune1 (v3); 183 187 return false; 184 188 } … … 208 212 if (k > 1) 209 213 setCharacteristic (p, k, gf_name); 214 if (extOfExt) 215 prune1 (v3); 210 216 return result; 211 217 } -
factory/cfModGcd.cc
r4e2cc1 r03f640 695 695 ppA= mapDown (ppA, prim_elem_alpha, im_prim_elem_alpha, alpha, u, v); 696 696 ppB= mapDown (ppB, prim_elem_alpha, im_prim_elem_alpha, alpha, u, v); 697 prune1 (alpha); 697 698 } 698 699 coF= N (ppA*(cA/gcdcAcB)); … … 770 771 TIMING_END_AND_PRINT (termination_test, 771 772 "time for successful termination test Fq: "); 773 prune1 (alpha); 772 774 return N(gcdcAcB*ppH); 773 775 } … … 1319 1321 coG= 0; 1320 1322 G_m= 0; 1321 Variable alpha, V_buf ;1323 Variable alpha, V_buf, cleanUp; 1322 1324 bool fail= false; 1323 1325 bool inextension= false; … … 1364 1366 CanonicalForm mipo; 1365 1367 int deg= 2; 1366 do { 1368 bool initialized= false; 1369 do 1370 { 1367 1371 mipo= randomIrredpoly (deg, x); 1368 alpha= rootOf (mipo); 1372 if (initialized) 1373 setMipo (alpha, mipo); 1374 else 1375 alpha= rootOf (mipo); 1369 1376 inextension= true; 1377 initialized= true; 1370 1378 fail= false; 1371 1379 random_element= randomElement (m*lcA*lcB, alpha, l, fail); … … 1374 1382 list= CFList(); 1375 1383 V_buf= alpha; 1384 cleanUp= alpha; 1376 1385 TIMING_START (gcd_recursion); 1377 1386 G_random_element= … … 1461 1470 if (d0 == 0) 1462 1471 { 1472 if (inextension) 1473 prune (cleanUp); 1463 1474 coF= N (ppA*(cA/gcdcAcB)); 1464 1475 coG= N (ppB*(cB/gcdcAcB)); … … 1525 1536 (fdivides (ppH, ppA, ppCoF) && fdivides (ppH, ppB, ppCoG))) 1526 1537 { 1538 if (inextension) 1539 prune (cleanUp); 1527 1540 coF= N ((cA/gcdcAcB)*ppCoF); 1528 1541 coG= N ((cB/gcdcAcB)*ppCoG); … … 2277 2290 CanonicalForm mipo; 2278 2291 int deg= 2; 2279 do { 2292 bool initialized= false; 2293 do 2294 { 2280 2295 mipo= randomIrredpoly (deg, x); 2281 V_buf= rootOf (mipo); 2296 if (initialized) 2297 setMipo (V_buf, mipo); 2298 else 2299 V_buf= rootOf (mipo); 2282 2300 evalFail= false; 2301 initialized= true; 2283 2302 evalPoints= evaluationPoints (A, B, Aeval, Beval, LCA, GF, V_buf, 2284 2303 evalFail, list); … … 2296 2315 delete[] pEvalPoints; 2297 2316 fail= true; 2317 if (alpha.level() != 1 && V_buf != alpha) 2318 prune1 (alpha); 2298 2319 return 0; 2299 2320 } … … 2305 2326 delete[] pEvalPoints; 2306 2327 fail= true; 2328 if (alpha.level() != 1 && V_buf != alpha) 2329 prune1 (alpha); 2307 2330 return 0; 2308 2331 } … … 2367 2390 delete[] coeffMonoms; 2368 2391 fail= true; 2392 if (alpha.level() != 1 && V_buf != alpha) 2393 prune1 (alpha); 2369 2394 return 0; 2370 2395 } … … 2383 2408 CFList u, v; 2384 2409 result= mapDown (result, prim_elem_alpha, im_prim_elem_alpha, alpha, u, v); 2410 prune1 (alpha); 2385 2411 } 2386 2412 … … 2551 2577 CanonicalForm mipo; 2552 2578 int deg= 2; 2553 do { 2579 bool initialized= false; 2580 do 2581 { 2554 2582 mipo= randomIrredpoly (deg, x); 2555 V_buf= rootOf (mipo); 2583 if (initialized) 2584 setMipo (V_buf, mipo); 2585 else 2586 V_buf= rootOf (mipo); 2556 2587 evalFail= false; 2588 initialized= true; 2557 2589 evalPoints= evaluationPoints (A, B, Aeval, Beval, LCA, GF, V_buf, 2558 2590 evalFail, list); … … 2576 2608 delete[] pEvalPoints; 2577 2609 fail= true; 2610 if (alpha.level() != 1 && V_buf != alpha) 2611 prune1 (alpha); 2578 2612 return 0; 2579 2613 } … … 2585 2619 delete[] pEvalPoints; 2586 2620 fail= true; 2621 if (alpha.level() != 1 && V_buf != alpha) 2622 prune1 (alpha); 2587 2623 return 0; 2588 2624 } … … 2745 2781 delete [] bufpEvalPoints; 2746 2782 fail= true; 2783 if (alpha.level() != 1 && V_buf != alpha) 2784 prune1 (alpha); 2747 2785 return 0; 2748 2786 } … … 2760 2798 delete [] bufpEvalPoints; 2761 2799 fail= true; 2800 if (alpha.level() != 1 && V_buf != alpha) 2801 prune1 (alpha); 2762 2802 return 0; 2763 2803 } … … 2848 2888 delete [] bufpEvalPoints; 2849 2889 fail= true; 2890 if (alpha.level() != 1 && V_buf != alpha) 2891 prune1 (alpha); 2850 2892 return 0; 2851 2893 } … … 2870 2912 delete [] bufpEvalPoints; 2871 2913 fail= true; 2914 if (alpha.level() != 1 && V_buf != alpha) 2915 prune1 (alpha); 2872 2916 return 0; 2873 2917 } … … 2906 2950 delete [] bufpEvalPoints; 2907 2951 fail= true; 2952 if (alpha.level() != 1 && V_buf != alpha) 2953 prune1 (alpha); 2908 2954 return 0; 2909 2955 } … … 2922 2968 CFList u, v; 2923 2969 result= mapDown (result,prim_elem_alpha, im_prim_elem_alpha, alpha, u, v); 2970 prune1 (alpha); 2924 2971 } 2925 2972 result= N(result); … … 2987 3034 delete[] pM; 2988 3035 fail= true; 3036 if (alpha.level() != 1 && V_buf != alpha) 3037 prune1 (alpha); 2989 3038 return 0; 2990 3039 } … … 3007 3056 CFList u, v; 3008 3057 result= mapDown (result, prim_elem, im_prim_elem, alpha, u, v); 3058 prune1 (alpha); 3009 3059 } 3010 3060 result= N(result); … … 3195 3245 3196 3246 if (d0 == 0) 3247 { 3248 if (inextension) 3249 prune1 (alpha); 3197 3250 return N(gcdcAcB); 3251 } 3198 3252 if (d0 > d) 3199 3253 { … … 3238 3292 ppH /= Lc(ppH); 3239 3293 DEBOUTLN (cerr, "ppH after mapDown= " << ppH); 3294 prune1 (alpha); 3240 3295 return N(gcdcAcB*ppH); 3241 3296 } … … 3374 3429 3375 3430 if (d0 == 0) 3431 { 3432 if (inextension) 3433 prune1 (alpha); 3376 3434 return N(gcdcAcB); 3435 } 3377 3436 if (d0 > d) 3378 3437 { … … 3421 3480 ppH /= Lc(ppH); 3422 3481 DEBOUTLN (cerr, "ppH after mapDown= " << ppH); 3482 prune1 (alpha); 3423 3483 return N(gcdcAcB*ppH); 3424 3484 } … … 3518 3578 topLevel= false; 3519 3579 bool inextension= false; 3520 Variable V_buf, alpha ;3580 Variable V_buf, alpha, cleanUp; 3521 3581 CanonicalForm prim_elem, im_prim_elem; 3522 3582 CFList source, dest; … … 3563 3623 CanonicalForm mipo; 3564 3624 int deg= 2; 3625 bool initialized= false; 3565 3626 do 3566 3627 { 3567 3628 mipo= randomIrredpoly (deg, x); 3568 alpha= rootOf (mipo); 3629 if (initialized) 3630 setMipo (alpha, mipo); 3631 else 3632 alpha= rootOf (mipo); 3569 3633 inextension= true; 3570 3634 fail= false; 3635 initialized= true; 3571 3636 random_element= randomElement (m, alpha, l, fail); 3572 3637 deg++; 3573 3638 } while (fail); 3639 cleanUp= alpha; 3574 3640 V_buf= alpha; 3575 3641 list= CFList(); … … 3650 3716 3651 3717 if (d0 == 0) 3718 { 3719 if (inextension) 3720 prune (cleanUp); 3652 3721 return N(gcdcAcB); 3722 } 3653 3723 if (d0 > d) 3654 3724 { … … 3688 3758 3689 3759 if (fdivides (ppH, ppA) && fdivides (ppH, ppB)) 3760 { 3761 if (inextension) 3762 prune (cleanUp); 3690 3763 return N(gcdcAcB*ppH); 3764 } 3691 3765 } 3692 3766 G_m= H; … … 3758 3832 CanonicalForm mipo; 3759 3833 int deg= 2; 3834 bool initialized= false; 3760 3835 do 3761 3836 { 3762 3837 mipo= randomIrredpoly (deg, x); 3763 alpha= rootOf (mipo); 3838 if (initialized) 3839 setMipo (alpha, mipo); 3840 else 3841 alpha= rootOf (mipo); 3764 3842 inextension= true; 3765 3843 fail= false; 3844 initialized= true; 3766 3845 random_element= randomElement (m, alpha, l, fail); 3767 3846 deg++; 3768 3847 } while (fail); 3848 cleanUp= alpha; 3769 3849 V_buf= alpha; 3770 3850 list= CFList(); … … 3862 3942 3863 3943 if (d0 == 0) 3944 { 3945 if (inextension) 3946 prune (cleanUp); 3864 3947 return N(gcdcAcB); 3948 } 3865 3949 if (d0 > d) 3866 3950 { … … 3901 3985 DEBOUTLN (cerr, "ppH= " << ppH); 3902 3986 if (fdivides (ppH, ppA) && fdivides (ppH, ppB)) 3987 { 3988 if (inextension) 3989 prune (cleanUp); 3903 3990 return N(gcdcAcB*ppH); 3991 } 3904 3992 } 3905 3993 … … 3913 4001 } 3914 4002 else 4003 { 4004 if (inextension) 4005 prune (cleanUp); 3915 4006 return N(gcdcAcB*modGCDFp (ppA, ppB)); 4007 } 3916 4008 } while (1); //end of first do 3917 4009 } -
factory/cf_map_ext.cc
r4e2cc1 r03f640 165 165 { 166 166 Variable beta= rootOf (gf_mipo); 167 return GF2FalphaHelper (F, beta) (alpha, beta); 167 CanonicalForm result= GF2FalphaHelper (F, beta) (alpha, beta); 168 prune (beta); 169 return result; 168 170 } 169 171 … … 339 341 primitive= false; 340 342 fail= false; 343 bool initialized= false; 341 344 do 342 345 { 343 346 BuildIrred (NTL_mipo, d); 344 347 mipo2= convertNTLzzpX2CF (NTL_mipo, Variable (1)); 345 beta= rootOf (mipo2); 348 if (!initialized) 349 beta= rootOf (mipo2); 350 else 351 setMipo (beta, mipo2); 346 352 primitive= isPrimitive (beta, fail); 347 353 if (primitive) -
factory/facAlgFunc.cc
r4e2cc1 r03f640 367 367 j.getItem()= j.getItem() (rb, i.getItem().mvar()); 368 368 } 369 prune (alpha); 369 370 } 370 371 else … … 463 464 if (!isRat && getCharacteristic() == 0) 464 465 Off (SW_RATIONAL); 466 prune (alpha); 465 467 return L; 466 468 } … … 1000 1002 } 1001 1003 Factorlist= Trager(f, Astar, vminpoly, as, isFunctionField); 1004 if (extdeg > 1) 1005 prune (vminpoly); 1002 1006 return Factorlist; 1003 1007 } … … 1015 1019 } 1016 1020 Factorlist= Trager (f, Astar, vminpoly, as, isFunctionField); 1021 if (extdeg > 1) 1022 prune (vminpoly); 1017 1023 return Factorlist; 1018 1024 } -
factory/facBivar.cc
r4e2cc1 r03f640 578 578 for (CFListIterator iter= uniFactors; iter.hasItem(); iter++) 579 579 iter.getItem()= replacevar (iter.getItem(), vv, v); 580 prune (vv); 580 581 } 581 582 -
factory/facFqBivar.cc
r4e2cc1 r03f640 233 233 i.getItem()= CFFactor (buf, i.getItem().exp()); 234 234 } 235 prune (beta); 235 236 } 236 237 else if (alpha.level() != 1) … … 8850 8851 for (CFListIterator j= factors; j.hasItem(); j++) 8851 8852 j.getItem()= GF2FalphaRep (j.getItem(), vBuf); 8853 prune (vBuf); 8852 8854 } 8853 8855 else // not able to pass to GF, pass to F_p(\alpha) … … 8857 8859 ExtensionInfo info2= ExtensionInfo (v); 8858 8860 factors= biFactorize (A, info2); 8861 prune (v); 8859 8862 } 8860 8863 return factors; … … 8870 8873 ExtensionInfo info2= ExtensionInfo (v); 8871 8874 factors= biFactorize (A, info2); 8875 prune (v); 8872 8876 } 8873 8877 else … … 8891 8895 ExtensionInfo info2= ExtensionInfo (v, alpha, imPrimElem, primElem); 8892 8896 factors= biFactorize (bufA, info2); 8897 prune (v); 8893 8898 } 8894 8899 else … … 8911 8916 ExtensionInfo info2= ExtensionInfo (v, beta, imPrimElem, delta); 8912 8917 factors= biFactorize (bufA, info2); 8918 prune (v); 8913 8919 } 8914 8920 } … … 8933 8939 ExtensionInfo info2= ExtensionInfo (extension); 8934 8940 factors= biFactorize (A.mapinto(), info2); 8941 prune (vBuf); 8935 8942 } 8936 8943 else // not able to pass to another GF, pass to F_p(\alpha) … … 8943 8950 ExtensionInfo info2= ExtensionInfo (v, extension); 8944 8951 factors= biFactorize (A, info2); 8952 prune (vBuf); 8945 8953 } 8946 8954 } … … 8980 8988 for (CFListIterator i= factors; i.hasItem(); i++) 8981 8989 i.getItem()= Falpha2GFRep (i.getItem()); 8990 prune (v1); 8982 8991 } 8983 8992 } -
factory/facFqFactorize.cc
r4e2cc1 r03f640 2044 2044 tmp= iter.getItem() (evalPoint, x); 2045 2045 tmp /= Lc (tmp); 2046 if ( pos= findItem (factors2, tmp))2046 if ((pos= findItem (factors2, tmp))) 2047 2047 { 2048 2048 result2.append (getItem (factors3, pos)); … … 3647 3647 for (CFListIterator j= factors; j.hasItem(); j++) 3648 3648 j.getItem()= GF2FalphaRep (j.getItem(), vBuf); 3649 prune (vBuf); 3649 3650 } 3650 3651 else if (p >= 7 && p*p < (1<<16)) // pass to GF if possible … … 3660 3661 for (CFListIterator j= factors; j.hasItem(); j++) 3661 3662 j.getItem()= GF2FalphaRep (j.getItem(), vBuf); 3663 prune (vBuf); 3662 3664 } 3663 3665 else // not able to pass to GF, pass to F_p(\alpha) … … 3667 3669 ExtensionInfo info= ExtensionInfo (v); 3668 3670 factors= multiFactorize (A, info); 3671 prune (v); 3669 3672 } 3670 3673 return factors; … … 3680 3683 ExtensionInfo info= ExtensionInfo (v); 3681 3684 factors= multiFactorize (A, info); 3685 prune (v); 3682 3686 } 3683 3687 else … … 3701 3705 ExtensionInfo info= ExtensionInfo (v, alpha, imPrimElem, primElem); 3702 3706 factors= multiFactorize (bufA, info); 3707 prune (v); 3703 3708 } 3704 3709 else … … 3721 3726 ExtensionInfo info= ExtensionInfo (v, beta, imPrimElem, delta); 3722 3727 factors= multiFactorize (bufA, info); 3728 prune (v); 3723 3729 } 3724 3730 } … … 3743 3749 ExtensionInfo info= ExtensionInfo (extension); 3744 3750 factors= multiFactorize (A.mapinto(), info); 3751 prune (vBuf); 3745 3752 } 3746 3753 else // not able to pass to another GF, pass to F_p(\alpha) … … 3753 3760 ExtensionInfo info= ExtensionInfo (v, extension); 3754 3761 factors= multiFactorize (A, info); 3762 prune (vBuf); 3755 3763 } 3756 3764 } … … 3788 3796 for (CFListIterator i= factors; i.hasItem(); i++) 3789 3797 i.getItem()= Falpha2GFRep (i.getItem()); 3798 prune (v1); 3790 3799 } 3791 3800 } -
factory/variable.cc
r4e2cc1 r03f640 220 220 { 221 221 ASSERT( alpha.level() < 0 && alpha.level() != LEVELBASE, "illegal extension" ); 222 algextensions[-alpha.level()]= ext_entry( 0, false ); 222 223 algextensions[-alpha.level()]= ext_entry((InternalPoly*)(conv2mipo( mipo, alpha ).getval()), true ); 223 224 } … … 256 257 return 0; 257 258 return strlen( var_names_ext )-1; 259 } 260 261 void prune (Variable& alpha) 262 { 263 int i, n = strlen( var_names_ext ); 264 ASSERT (n+1 >= -alpha.level(), "wrong variable"); 265 if (-alpha.level() == 1) 266 { 267 delete [] var_names_ext; 268 delete [] algextensions; 269 var_names_ext= 0; 270 algextensions= 0; 271 alpha= Variable(); 272 return; 273 } 274 char * newvarnames = new char [-alpha.level() + 1]; 275 for ( i = 0; i < -alpha.level(); i++ ) 276 newvarnames[i] = var_names_ext[i]; 277 newvarnames[-alpha.level()] = 0; 278 delete [] var_names_ext; 279 var_names_ext = newvarnames; 280 ext_entry * newalgext = new ext_entry [-alpha.level()]; 281 for ( i = 0; i < -alpha.level(); i++ ) 282 newalgext[i] = algextensions[i]; 283 delete [] algextensions; 284 algextensions = newalgext; 285 alpha= Variable(); 286 } 287 288 void prune1 (const Variable& alpha) 289 { 290 int i, n = strlen( var_names_ext ); 291 ASSERT (n+1 >= -alpha.level(), "wrong variable"); 292 293 char * newvarnames = new char [-alpha.level() + 2]; 294 for ( i = 0; i <= -alpha.level(); i++ ) 295 newvarnames[i] = var_names_ext[i]; 296 newvarnames[-alpha.level()+1] = 0; 297 delete [] var_names_ext; 298 var_names_ext = newvarnames; 299 ext_entry * newalgext = new ext_entry [-alpha.level()+1]; 300 for ( i = 0; i <= -alpha.level(); i++ ) 301 newalgext[i] = algextensions[i]; 302 delete [] algextensions; 303 algextensions = newalgext; 258 304 } 259 305 -
factory/variable.h
r4e2cc1 r03f640 103 103 char getDefaultExtName(); 104 104 105 void prune (Variable& alpha); 106 void prune1 (const Variable& alpha); 105 107 int ExtensionLevel(); 106 108
Note: See TracChangeset
for help on using the changeset viewer.