My Project
facAbsBiFact.h
Go to the documentation of this file.
1 /*****************************************************************************\
2  * Computer Algebra System SINGULAR
3 \*****************************************************************************/
4 /** @file facAbsBiFact.h
5  *
6  * bivariate absolute factorization over Q described in "Modular Las Vegas
7  * Algorithms for Polynomial Absolute Factorization" by Bertone, Chèze, Galligo
8  *
9  * @author Martin Lee
10  *
11  **/
12 /*****************************************************************************/
13 
14 #ifndef FAC_ABS_BI_FACT_H
15 #define FAC_ABS_BI_FACT_H
16 
17 #include "canonicalform.h"
18 
19 /// main absolute factorization routine, expects bivariate poly which is
20 /// irreducible over Q
21 ///
22 /// @return absBiFactorizeMain returns a list whose entries contain three
23 /// entities:
24 /// an absolute irreducible factor, an irreducible univariate polynomial
25 /// that defines the minimal field extension over which the irreducible
26 /// factor is defined (note: in case the factor is already defined over
27 /// Q[t]/(t), 1 is returned as defining poly), and the
28 /// multiplicity of the absolute irreducible factor
29 CFAFList absBiFactorizeMain (const CanonicalForm& F, ///<[in] s.a.
30  bool full= false ///<[in] true if all
31  ///< factors should be
32  ///< returned
33  );
34 
35 /// normalize factors, i.e. make factors monic
36 static inline
37 void normalize (CFAFList & L)
38 {
39  for (CFAFListIterator i= L; i.hasItem(); i++)
40  i.getItem()= CFAFactor (i.getItem().factor()/Lc (i.getItem().factor()),
41  i.getItem().minpoly(), i.getItem().exp());
42 }
43 
44 /// univariate absolute factorization over Q
45 ///
46 /// @return uniAbsFactorize returns a list whose entries contain three entities:
47 /// an absolute irreducible factor, an irreducible univariate polynomial
48 /// that defines the minimal field extension over which the irreducible
49 /// factor is defined (note: in case the factor is already defined over
50 /// Q[t]/(t), 1 is returned as defining poly), and the multiplicity of
51 /// the absolute irreducible factor
52 CFAFList uniAbsFactorize (const CanonicalForm& F, ///<[in] univariate poly
53  ///< irreducible over Q
54  bool full= false ///<[in] true if all factors
55  ///< should be returned
56  );
57 
58 #endif
Header for factory's main class CanonicalForm.
AFactor< CanonicalForm > CFAFactor
CanonicalForm Lc(const CanonicalForm &f)
int i
Definition: cfEzgcd.cc:132
factory's main class
Definition: canonicalform.h:86
bool full
Definition: facAbsBiFact.cc:38
CFAFList absBiFactorizeMain(const CanonicalForm &F, bool full=false)
main absolute factorization routine, expects bivariate poly which is irreducible over Q
CFAFList uniAbsFactorize(const CanonicalForm &F, bool full=false)
univariate absolute factorization over Q
static void normalize(CFAFList &L)
normalize factors, i.e. make factors monic
Definition: facAbsBiFact.h:37