My Project
Toggle main menu visibility
Loading...
Searching...
No Matches
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
/// 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
canonicalform.h
Header for factory's main class CanonicalForm.
CFAFactor
AFactor< CanonicalForm > CFAFactor
Definition
canonicalform.h:389
CFAFListIterator
ListIterator< CFAFactor > CFAFListIterator
Definition
canonicalform.h:391
Lc
CanonicalForm Lc(const CanonicalForm &f)
Definition
canonicalform.h:307
CFAFList
List< CFAFactor > CFAFList
Definition
canonicalform.h:390
i
int i
Definition
cfEzgcd.cc:132
CanonicalForm
factory's main class
Definition
canonicalform.h:86
full
bool full
Definition
facAbsBiFact.cc:39
absBiFactorizeMain
CFAFList absBiFactorizeMain(const CanonicalForm &F, bool full=false)
main absolute factorization routine, expects bivariate poly which is irreducible over Q
Definition
facAbsBiFact.cc:212
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:37
Generated on
for My Project by
doxygen 1.17.0
for
Singular