23 swapLevel1,
const int swapLevel2,
const Variable&
x)
47 void swap (
CFList& factors,
const int swapLevel1,
const int swapLevel2,
const
70 const CFMap&
N,
const int swapLevel,
const
77 i.getItem()=
N(
i.getItem());
81 if (!
i.getItem().inCoeffDomain())
82 factors1.
append (N (
i.getItem()));
88 const CFMap&
N,
const int swapLevel1,
107 i.getItem()=
N (
i.getItem());
112 if (!
i.getItem().inCoeffDomain())
113 factors1.
append (N (
i.getItem()));
121 int* liftBounds=
new int [
j];
122 liftBounds[0]= bivarLiftBound;
123 for (
int i= 1;
i <
j;
i++)
134 int k= evaluation.
length() + l - 1;
140 for (k= A.
level(); k > 2; k--)
150 int k= evaluation.
length() + l - 1;
153 for (
int i= k; j.
hasItem() && (
i > l - 1);
i--, j++)
212 for (
int i= 1;
i <
k;
i++)
214 buf=
buf (eval[
i], i + 2);
225 int k= evaluation.
length() + l - 1;
245 tmp=
i.getItem()/
content (
i.getItem(), 1);
286 if (
i.getItem().isZero())
CanonicalForm shift2Zero(const CanonicalForm &F, CFList &Feval, const CFList &evaluation, int l)
shift evaluation point to zero
CFList recoverFactors(const CanonicalForm &F, const CFList &factors)
divides factors by their content wrt. Variable(1) and checks if these polys divide F ...
CFList evaluateAtEval(const CanonicalForm &F, const CFArray &eval)
evaluate F at evaluation
int compareByNumberOfVars(const CFFactor &F, const CFFactor &G)
CanonicalForm reverseShift(const CanonicalForm &F, const CFList &evaluation, int l)
reverse shifting the evaluation point to zero
void appendSwapDecompress(CFList &factors1, const CFList &factors2, const CFMap &N, const int swapLevel, const Variable &x)
swap elements of factors2, append them to factors1 and decompress
factory's class for variables
bool isOnlyLeadingCoeff(const CanonicalForm &F)
check if F consists of more than just the leading coeff wrt. Variable (1)
const CanonicalForm int const CFList & evaluation
CFFList sortCFFListByNumOfVars(CFFList &F)
sort CFFList by the number variables in a factor
CFList evaluateAtZero(const CanonicalForm &F)
evaluate F successively n-2 at 0
static void appendSwap(CFList &factors1, const CFList &factors2, const int swapLevel1, const int swapLevel2, const Variable &x)
const CanonicalForm CFMap CFMap & N
int status int void * buf
declarations of higher level algorithms.
static int index(p_Length length, p_Ord ord)
bool fdivides(const CanonicalForm &f, const CanonicalForm &g)
bool fdivides ( const CanonicalForm & f, const CanonicalForm & g )
CanonicalForm myGetVars(const CanonicalForm &F)
like getVars but including multiplicities
void swap(CFList &factors, const int swapLevel1, const int swapLevel2, const Variable &x)
swap elements in factors
int * liftingBounds(const CanonicalForm &A, const int &bivarLiftBound)
compute lifting bounds
void sort(int(*)(const T &, const T &))