cfCharSetsUtil.h
Go to the documentation of this file.
1 /*****************************************************************************\
2  * Computer Algebra System SINGULAR
3 \*****************************************************************************/
4 /** @file cfCharSetsUtil.h
5  *
6  * This file provides utility functions to compute characteristic sets
7  *
8  * @note some of the code is code from libfac or derived from code from libfac.
9  * Libfac is written by M. Messollen. See also COPYING for license information
10  * and README for general information on characteristic sets.
11  *
12  * ABSTRACT: Descriptions can be found in Wang "On the Parallelization of
13  * characteristic-set based algorithms" or Greuel/Pfister "A Singular
14  * Introduction to Commutative Algebra".
15  *
16  * @author Martin Lee
17  *
18  **/
19 /*****************************************************************************/
20 
21 #ifndef CF_CHARSETS_UTIL
22 #define CF_CHARSETS_UTIL
23 
24 /*BEGINPUBLIC*/
25 /**
26  * class to store factors that get removed during char set computation
27 **/
29 {
30  public:
31  CFList FS1; ///< factors that were removed
32  CFList FS2; ///< candidate factors that might get removed
33  inline StoreFactors& operator= (const StoreFactors& value)
34  {
35  if ( this != &value )
36  {
37  FS1 = value.FS1;
38  FS2 = value.FS2;
39  }
40  return *this;
41  }
42 };
43 /*ENDPUBLIC*/
44 
46 get_max_var (const CFList & PS);
47 
48 CFList
49 only_in_one (const CFList & PS, const Variable & x);
50 
51 Varlist
52 reorderb (const Varlist & difference, const CFList & PS,
53  const int highest_level);
54 
55 CFList
56 swapvar (const CFList & PS, const Variable & x, const Variable & y);
57 
58 CFFList
59 swapvar (const CFFList & PS, const Variable & x, const Variable & y);
60 
62 lowestRank (const CFList & L);
63 
64 CFList initials (const CFList& L);
65 
66 void
68 
69 void
71 
72 /*BEGINPUBLIC*/
73 
75 Prem (const CanonicalForm& F, const CanonicalForm& G);
76 
77 /*ENDPUBLIC*/
78 
80 Premb (const CanonicalForm &f, const CFList &L);
81 
83 Prem (const CanonicalForm &f, const CFList &L);
84 
85 CFList uniGcd (const CFList& L);
86 
87 CFList
88 factorsOfInitials(const CFList & L);
89 
90 void
92 
93 CFList
94 factorPSet (const CFList& PS);
95 
96 void
97 removeFactors (CanonicalForm& r, StoreFactors& StoredFactors,
98  CFList& removedFactors);
99 
100 CFList
101 removeContent (const CFList & PS, StoreFactors & StoredFactors);
102 
104 contract (const ListCFList& cs);
105 
106 bool
107 isSubset (const CFList &PS, const CFList& Cset);
108 
110 adjoin (const CFList& is, const CFList& qs, const ListCFList& qh);
111 
113 adjoinb (const CFList & is, const CFList & qs, const ListCFList & qh,
114  const CFList & cs);
115 
116 void
117 inplaceUnion (const ListCFList& a, ListCFList& b);
118 
119 void
120 select (const ListCFList& ppi, int length, ListCFList& ppi1, ListCFList& ppi2);
121 
123 
124 #endif
CanonicalForm Premb(const CanonicalForm &f, const CFList &L)
pseudo remainder of f by L with faster test for remainder being zero
const CanonicalForm int const CFList const Variable & y
Definition: facAbsFact.cc:57
void select(const ListCFList &ppi, int length, ListCFList &ppi1, ListCFList &ppi2)
CFList FS1
factors that were removed
CanonicalForm Prem(const CanonicalForm &F, const CanonicalForm &G)
pseudo remainder of F by G with certain factors of LC (g) cancelled
bool isSubset(const CFList &PS, const CFList &Cset)
is PS a subset of Cset ?
factory&#39;s class for variables
Definition: factory.h:117
class to store factors that get removed during char set computation
Variable get_max_var(const CFList &PS)
void removeContent(CanonicalForm &F, CanonicalForm &cF)
Varlist reorderb(const Varlist &difference, const CFList &PS, const int highest_level)
CFList swapvar(const CFList &PS, const Variable &x, const Variable &y)
swapvar a whole list of CanonicalForms
factory&#39;s main class
Definition: canonicalform.h:77
void inplaceUnion(const ListCFList &a, ListCFList &b)
Union of a and b stored in b.
static TreeM * G
Definition: janet.cc:32
CanonicalForm b
Definition: cfModGcd.cc:4044
ListCFList adjoin(const CFList &is, const CFList &qs, const ListCFList &qh)
CFList initials(const CFList &L)
CFList only_in_one(const CFList &PS, const Variable &x)
CFList FS2
candidate factors that might get removed
CFList factorsOfInitials(const CFList &L)
StoreFactors & operator=(const StoreFactors &value)
FILE * f
Definition: checklibs.c:9
void removeFactors(CanonicalForm &r, StoreFactors &StoredFactors, CFList &removedFactors)
CFList factorPSet(const CFList &PS)
static BOOLEAN length(leftv result, leftv arg)
Definition: interval.cc:267
CanonicalForm lowestRank(const CFList &L)
Variable x
Definition: cfModGcd.cc:4023
ListCFList adjoinb(const CFList &is, const CFList &qs, const ListCFList &qh, const CFList &cs)
void sortListCFList(ListCFList &list)
sort in descending order of length of elements
void sortCFListByLevel(CFList &list)
sort in descending order of level of elements
CanonicalForm normalize(const CanonicalForm &F)
normalize a poly, i.e. in char 0 clear denominators, remove integer content in char p divide by leadi...
ListCFList contract(const ListCFList &cs)
CFList uniGcd(const CFList &L)