| 4952 | */ |
| 4953 | #ifdef HAVE_SHIFTBBA |
| 4954 | int redFirstShift (LObject* h,kStrategy strat) |
| 4955 | { |
| 4956 | if (h->IsNull()) return 0; |
| 4957 | |
| 4958 | int at, reddeg,d; |
| 4959 | int pass = 0; |
| 4960 | int j = 0; |
| 4961 | |
| 4962 | if (! strat->homog) |
| 4963 | { |
| 4964 | d = h->GetpFDeg() + h->ecart; |
| 4965 | reddeg = strat->LazyDegree+d; |
| 4966 | } |
| 4967 | h->SetShortExpVector(); |
| 4968 | loop |
| 4969 | { |
| 4970 | j = kFindDivisibleByInT(strat, h); |
| 4971 | if (j < 0) |
| 4972 | { |
| 4973 | h->SetDegStuffReturnLDeg(strat->LDegLast); |
| 4974 | return 1; |
| 4975 | } |
| 4976 | |
| 4977 | if (!TEST_OPT_INTSTRATEGY) |
| 4978 | strat->T[j].pNorm(); |
| 4979 | #ifdef KDEBUG |
| 4980 | if (TEST_OPT_DEBUG) |
| 4981 | { |
| 4982 | PrintS("reduce "); |
| 4983 | h->wrp(); |
| 4984 | PrintS(" with "); |
| 4985 | strat->T[j].wrp(); |
| 4986 | } |
| 4987 | #endif |
| 4988 | ksReducePoly(h, &(strat->T[j]), strat->kNoetherTail(), NULL, NULL, strat); |
| 4989 | |
| 4990 | #ifdef KDEBUG |
| 4991 | if (TEST_OPT_DEBUG) |
| 4992 | { |
| 4993 | PrintS("\nto "); |
| 4994 | wrp(h->p); |
| 4995 | PrintLn(); |
| 4996 | } |
| 4997 | #endif |
| 4998 | if (h->IsNull()) |
| 4999 | { |
| 5000 | kDeleteLcm(h); |
| 5001 | h->Clear(); |
| 5002 | return 0; |
| 5003 | } |
| 5004 | h->SetShortExpVector(); |
| 5005 | |
| 5006 | #if 0 |
| 5007 | if ((strat->syzComp!=0) && !strat->honey) |
| 5008 | { |
| 5009 | if ((strat->syzComp>0) && |
| 5010 | (h->Comp() > strat->syzComp)) |
| 5011 | { |
nothing calls this directly
no test coverage detected