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
29CFAFList 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
36static inline
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
52CFAFList 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