 |
My Project
debian-1:4.1.2-p1+ds-2
|
Go to the documentation of this file.
38 CFList PS= PolyList, PS1=PolyList;
46 for (
int i= highest_level;
i>=1;
i--)
55 else if (is_one.
length() == 0)
64 difference=
reorderb (difference, PS, highest_level);
68 TIMING_PRINT(neworder_time,
"\ntime used for neworder : ");
103 int i= 1, n= betterorder.
length();
114 for (
i= 1;
i <= n;
i++)
122 int i= 1, n= betterorder.
length();
134 for (
i= 1;
i <= n;
i++)
174 for (
i= QS;
i.hasItem();
i++)
176 if (
degree (
i.getItem(), cb) < degb)
189 CFList QS= PS, RS= PS, CSet, tmp;
193 while (!RS.isEmpty())
198 if (CSet.length() > 0 && CSet.getFirst().level() > 0)
201 for (
i= tmp;
i.hasItem();
i++)
203 r=
Prem (
i.getItem(), CSet);
218 CFList QS= PS, RS= PS, CSet, tmp;
222 while (!RS.isEmpty())
228 if (CSet.length() > 0 && CSet.getFirst().level() > 0)
231 for (
i= tmp;
i.hasItem();
i++)
233 r=
Prem (
i.getItem(), CSet);
237 QS=
Union (CSet, RS);
256 for (iter2= sqrfFactors; iter2.
hasItem(); iter2++)
257 sqrf *= iter2.
getItem().factor();
263 if (
result.isEmpty() ||
result.getFirst().inCoeffDomain())
286 CFList QS, RS= L, CSet, tmp, contents,
initial, removedFactors;
289 bool noRemainder=
true;
301 StoredFactors2.
FS1= StoredFactors.
FS1;
306 if (CSet.length() > 0 && CSet.getFirst().level() > 0)
310 for (
i= tmp;
i.hasItem();
i++)
312 r=
Prem (
i.getItem(), CSet);
325 StoredFactors2.
FS1=
Union (StoredFactors2.
FS1, removedFactors);
334 if (removeContents && !noRemainder)
336 StoredFactors.
FS1=
Union (StoredFactors2.
FS1, contents);
337 StoredFactors.
FS2= StoredFactors2.
FS2;
340 StoredFactors= StoredFactors2;
342 QS=
Union (CSet, RS);
348 StoredFactors= StoredFactors2;
367 for (iter2= sqrfFactors; iter2.
hasItem(); iter2++)
368 sqrf *= iter2.
getItem().factor();
376 if (
result.isEmpty() ||
result.getFirst().inCoeffDomain())
441 select (ppi,
l.length(), ppi1, ppi2);
450 if (
l.length() - 3 < highestLevel)
517 for (
i= AS;
i.hasItem();
i++ )
521 if (qs.
getFirst().factor().inCoeffDomain())
528 reducible=
i.getItem();
540 for (nr= 1; nr< AS.
length(); nr++)
549 if (qs.
getFirst().factor().inCoeffDomain())
553 reducible=
i.getItem();
571 CFList qs, cs, factorset, is, ts, L;
579 if (sqrfFactors.
getFirst().factor().inCoeffDomain())
581 for (iter2= sqrfFactors; iter2.
hasItem(); iter2++)
582 sqrf *= iter2.
getItem().factor();
589 int nr_of_iteration= 0, indexRed, highestlevel= 0;
608 if (nr_of_iteration == 0)
610 nr_of_iteration += 1;
615 nr_of_iteration += 1;
620 if (qs.
length() - 3 < highestlevel)
626 factorset= StoredFactors.
FS1;
630 ts=
irredAS (cs, indexRed, reducible);
641 ts=
irredAS (cs, indexRed, reducible);
646 if (cs.
length() == highestlevel)
650 iss=
adjoin (is, qs, qqi);
668 if (
i.getItem() == reducible)
685 qhi=
Union (iss, qhi);
TIMING_DEFINE_PRINT(neworder_time) Varlist new order(const CFList &PolyList)
CFList FS2
candidate factors that might get removed
ListCFList contract(const ListCFList &cs)
CanonicalForm Prem(const CanonicalForm &F, const CanonicalForm &G)
pseudo remainder of F by G with certain factors of LC (g) cancelled
class to store factors that get removed during char set computation
CFList basicSet(const CFList &PS)
basic set in the sense of Wang a.k.a. minimal ascending set in the sense of Greuel/Pfister
static CFList irredAS(CFList &AS, int &indexRed, CanonicalForm &reducible)
ListCFList charSeries(const CFList &L)
characteristic series
CFList only_in_one(const CFList &PS, const Variable &x)
Varlist neworder(const CFList &PolyList)
CFList modCharSet(const CFList &L, StoreFactors &StoredFactors, bool removeContents)
modified medial set
CFList factorsOfInitials(const CFList &L)
poly initial(const poly p, const ring r, const gfan::ZVector &w)
Returns the initial form of p with respect to w.
CFList charSetViaCharSetN(const CFList &PS)
compute a characteristic set via medial set
CanonicalForm Premb(const CanonicalForm &f, const CFList &L)
pseudo remainder of f by L with faster test for remainder being zero
CFList newordercf(const CFList &PolyList)
bool isSubset(const CFList &PS, const CFList &Cset)
is PS a subset of Cset ?
void sortCFListByLevel(CFList &list)
sort in descending order of level of elements
template List< Variable > Difference(const List< Variable > &, const List< Variable > &)
void select(const ListCFList &ppi, int length, ListCFList &ppi1, ListCFList &ppi2)
CFList reorder(const Varlist &betterorder, const CFList &PS)
TIMING_START(fac_alg_resultant)
CFList FS1
factors that were removed
void removeFactors(CanonicalForm &r, StoreFactors &StoredFactors, CFList &removedFactors)
ListCFList adjoin(const CFList &is, const CFList &qs, const ListCFList &qh)
Variable get_max_var(const CFList &PS)
CFFList factorize(const CanonicalForm &f, bool issqrfree=false)
factorization over or
Varlist reorderb(const Varlist &difference, const CFList &PS, const int highest_level)
#define TIMING_PRINT(t, msg)
CFList charSet(const CFList &PS)
characteristic set
void sortListCFList(ListCFList &list)
sort in descending order of length of elements
CFList uniGcd(const CFList &L)
static poly normalize(poly next_p, ideal add_generators, syStrategy syzstr, int *g_l, int *p_l, int crit_comp)
factory's class for variables
ListCFList adjoinb(const CFList &is, const CFList &qs, const ListCFList &qh, const CFList &cs)
CFList charSetViaModCharSet(const CFList &PS, StoreFactors &StoredFactors, bool removeContents)
characteristic set via modified medial set
CFFList facAlgFunc2(const CanonicalForm &f, const CFList &as)
factorize a polynomial that is irreducible over the ground field modulo an extension given by an irre...
CFList charSetN(const CFList &PS)
medial set
CanonicalForm lowestRank(const CFList &L)
CFFList sqrFree(const CanonicalForm &f, bool sort=false)
squarefree factorization
template bool find(const List< CanonicalForm > &, const CanonicalForm &)
IntList neworderint(const CFList &PolyList)
template List< Variable > Union(const List< Variable > &, const List< Variable > &)
const Variable & v
< [in] a sqrfree bivariate poly
static bool irreducible(const CFList &AS)
int status int void size_t count
CFList factorPSet(const CFList &PS)
ListCFList irrCharSeries(const CFList &PS)
irreducible characteristic series
void removeContent(CanonicalForm &F, CanonicalForm &cF)
void inplaceUnion(const ListCFList &a, ListCFList &b)
Union of a and b stored in b.