13#ifndef FAC_FACTORIZE_H
14#define FAC_FACTORIZE_H
46#if defined(HAVE_NTL) || defined(HAVE_FLINT)
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;
144 "time for squarefree factorization over Q: ");
152 "time to factorize sqrfree factor over Q: ");
155 if (
j.getItem().inCoeffDomain())
continue;
CanonicalForm bCommonDen(const CanonicalForm &f)
CanonicalForm bCommonDen ( const CanonicalForm & f )
CFFList FACTORY_PUBLIC sqrFree(const CanonicalForm &f, bool sort=false)
squarefree factorization
static const int SW_RATIONAL
set to 1 for computations over Q
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
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 multiFactorize(const CanonicalForm &F, const Variable &v)
Factorization over Q (a)
CFList int bool const Variable & w
<[in] alg. variable
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.
static poly normalize(poly next_p, ideal add_generators, syStrategy syzstr, int *g_l, int *p_l, int crit_comp)
#define TIMING_DEFINE_PRINT(t)
#define TIMING_END_AND_PRINT(t, msg)