My Project
debian-1:4.1.1-p2+ds-4build2
factory
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
#ifdef HAVE_NTL
20
/// main absolute factorization routine, expects bivariate poly which is
21
/// irreducible over Q
22
///
23
/// @return absBiFactorizeMain returns a list whose entries contain three
24
/// entities:
25
/// an absolute irreducible factor, an irreducible univariate polynomial
26
/// that defines the minimal field extension over which the irreducible
27
/// factor is defined (note: in case the factor is already defined over
28
/// Q[t]/(t), 1 is returned as defining poly), and the
29
/// multiplicity of the absolute irreducible factor
30
CFAFList
absBiFactorizeMain
(
const
CanonicalForm
& F,
///<[in] s.a.
31
bool
full
=
false
///<[in] true if all
32
///< factors should be
33
///< returned
34
);
35
#endif
36
37
/// normalize factors, i.e. make factors monic
38
static
inline
39
void
normalize
(
CFAFList
& L)
40
{
41
for
(
CFAFListIterator
i
= L;
i
.hasItem();
i
++)
42
i
.getItem()=
CFAFactor
(
i
.getItem().factor()/
Lc
(
i
.getItem().factor()),
43
i
.getItem().minpoly(),
i
.getItem().exp());
44
}
45
46
/// univariate absolute factorization over Q
47
///
48
/// @return uniAbsFactorize returns a list whose entries contain three entities:
49
/// an absolute irreducible factor, an irreducible univariate polynomial
50
/// that defines the minimal field extension over which the irreducible
51
/// factor is defined (note: in case the factor is already defined over
52
/// Q[t]/(t), 1 is returned as defining poly), and the multiplicity of
53
/// the absolute irreducible factor
54
CFAFList
uniAbsFactorize
(
const
CanonicalForm
& F,
///<[in] univariate poly
55
///< irreducible over Q
56
bool
full
=
false
///<[in] true if all factors
57
///< should be returned
58
);
59
60
#endif
canonicalform.h
uniAbsFactorize
CFAFList uniAbsFactorize(const CanonicalForm &F, bool full=false)
univariate absolute factorization over Q
normalize
static void normalize(CFAFList &L)
normalize factors, i.e. make factors monic
Definition:
facAbsBiFact.h:39
CanonicalForm
factory's main class
Definition:
canonicalform.h:77
i
int i
Definition:
cfEzgcd.cc:125
Lc
CanonicalForm Lc(const CanonicalForm &f)
Definition:
canonicalform.h:300
full
bool full
Definition:
facAbsBiFact.cc:39
CFAFactor
AFactor< CanonicalForm > CFAFactor
Definition:
canonicalform.h:382
absBiFactorizeMain
CFAFList absBiFactorizeMain(const CanonicalForm &F, bool full=false)
main absolute factorization routine, expects bivariate poly which is irreducible over Q
Definition:
facAbsBiFact.cc:187
List
Definition:
ftmpl_list.h:20
ListIterator
Definition:
ftmpl_list.h:17
Generated on Tue Mar 24 2020 14:10:46 for My Project by
doxygen 1.8.17
for
Singular debian-1:4.1.1-p2+ds-4build2