13#ifndef FAC_FACTORIZE_H
14#define FAC_FACTORIZE_H
46#if defined(HAVE_NTL) || defined(HAVE_FLINT)
60 if (
isOn (SW_RATIONAL))
63 if (
isOn (SW_RATIONAL))
72#if defined(HAVE_NTL) || defined(HAVE_FLINT)
94 int * substDegree=
new int [F.
level()];
100 if (substDegree [
i-1] > 1)
107 substDegree[
i-1]= -1;
118 tmp2=
i.getItem().factor();
119 for (
int j= 1;
j <=
G.level();
j++)
121 if (substDegree[
j-1] > 1)
128 j.getItem().exp()*
i.getItem().exp()));
130 delete [] substDegree;
133 delete [] substDegree;
137 if (
isOn (SW_RATIONAL))
144 "time for squarefree factorization over Q: ");
152 "time to factorize sqrfree factor over Q: ");
155 if (
j.getItem().inCoeffDomain())
continue;
159 if (
isOn (SW_RATIONAL))
CanonicalForm normalize(const CanonicalForm &F)
normalize a poly, i.e. in char 0 clear denominators, remove integer content in char p divide by leadi...
CanonicalForm bCommonDen(const CanonicalForm &f)
void psqr ( const CanonicalForm & f, const CanonicalForm & g, CanonicalForm & q, CanonicalForm & r,...
CFFList FACTORY_PUBLIC sqrFree(const CanonicalForm &f, bool sort=false)
squarefree factorization
factory's class for variables
CanonicalForm subst(const CanonicalForm &f, const CFList &a, const CFList &b, const CanonicalForm &Rstar, bool isFunctionField)
bivariate factorization over Q(a)
CFList ratBiSqrfFactorize(const CanonicalForm &G, const Variable &v=Variable(1))
factorize a squarefree bivariate polynomial over .
CFFList ratBiFactorize(const CanonicalForm &G, const Variable &v=Variable(1), bool substCheck=true)
factorize a bivariate polynomial over
const Variable & v
< [in] a sqrfree bivariate poly
CFList multiFactorize(const CanonicalForm &F, const Variable &v)
Factorization over Q (a).
void factorizationWRTDifferentSecondVars(const CanonicalForm &A, CFList *&Aeval, int &minFactorsLength, bool &irred, const Variable &w)
CFList int & minFactorsLength
[in,out] minimal length of bivariate factors
CFList *& Aeval
<[in] poly
CFList int bool & irred
[in,out] Is A irreducible?
CFFList ratFactorize(const CanonicalForm &G, const Variable &v=Variable(1), bool substCheck=true)
factorize a multivariate polynomial over
CFList ratSqrfFactorize(const CanonicalForm &G, const Variable &v=Variable(1))
factorize a squarefree multivariate polynomial over
CanonicalForm reverseSubst(const CanonicalForm &F, const int d, const Variable &x)
reverse a substitution x^d->x
int substituteCheck(const CanonicalForm &F, const Variable &x)
check if a substitution x^n->x is possible
This file provides utility functions for bivariate factorization.
#define TIMING_DEFINE_PRINT(t)
#define TIMING_END_AND_PRINT(t, msg)