| 3279 | } |
| 3280 | |
| 3281 | poly kNFBound(ideal F, ideal Q, poly p,int bound,int syzComp, int lazyReduce) |
| 3282 | { |
| 3283 | if (p==NULL) |
| 3284 | return NULL; |
| 3285 | |
| 3286 | poly pp = p; |
| 3287 | |
| 3288 | #ifdef HAVE_PLURAL |
| 3289 | if(rIsSCA(currRing)) |
| 3290 | { |
| 3291 | const unsigned int m_iFirstAltVar = scaFirstAltVar(currRing); |
| 3292 | const unsigned int m_iLastAltVar = scaLastAltVar(currRing); |
| 3293 | pp = p_KillSquares(pp, m_iFirstAltVar, m_iLastAltVar, currRing); |
| 3294 | |
| 3295 | if(Q == currRing->qideal) |
| 3296 | Q = SCAQuotient(currRing); |
| 3297 | } |
| 3298 | #endif |
| 3299 | |
| 3300 | if ((idIs0(F))&&(Q==NULL)) |
| 3301 | { |
| 3302 | #ifdef HAVE_PLURAL |
| 3303 | if(p != pp) |
| 3304 | return pp; |
| 3305 | #endif |
| 3306 | return pCopy(p); /*F+Q=0*/ |
| 3307 | } |
| 3308 | |
| 3309 | kStrategy strat=new skStrategy; |
| 3310 | strat->syzComp = syzComp; |
| 3311 | strat->ak = si_max(id_RankFreeModule(F,currRing),pMaxComp(p)); |
| 3312 | poly res; |
| 3313 | res=kNF2Bound(F,Q,pp,bound,strat,lazyReduce); |
| 3314 | delete(strat); |
| 3315 | |
| 3316 | #ifdef HAVE_PLURAL |
| 3317 | if(pp != p) |
| 3318 | p_Delete(&pp, currRing); |
| 3319 | #endif |
| 3320 | return res; |
| 3321 | } |
| 3322 | |
| 3323 | ideal kNF(ideal F, ideal Q, ideal p,int syzComp,int lazyReduce) |
| 3324 | { |
no test coverage detected