GaloisGroupFactorizer UP¶
galfact.spad line 383 [edit on github]
GaloisGroupFactorizer provides functions to factor resolvents.
- btwFact: (UP, Boolean, Set NonNegativeInteger, NonNegativeInteger) -> Record(contp: Integer, factors: List Record(irr: UP, pow: NonNegativeInteger))
btwFact(p, sqf, pd, r)
returns the factorization ofp
, the result is a Record such thatcontp=
contentp
,factors=
List of irreducible factors ofp
with exponent. Ifsqf=true
the polynomial is assumed to be square free (i.e. without repeated factors).pd
is the Set of possible degrees.r
is a lower bound for the number of factors ofp
. Please do not use this function in your code because its design may change.
- degreePartition: List Record(factor: UP, degree: Integer) -> Multiset NonNegativeInteger
degreePartition(ddfactorization)
returns the degree partition of the polynomialf
modulop
whereddfactorization
is the distinct degree factorization off
computed byddfact
from modular factorization package for some primep
.
- eisensteinIrreducible?: UP -> Boolean
eisensteinIrreducible?(p)
returnstrue
ifp
can be shown to be irreducible by Eisenstein's
criterion,false
is inconclusive.
- factor: (UP, List NonNegativeInteger) -> Factored UP
factor(p, listOfDegrees)
factorizes the polynomialp
using the single factor bound algorithm and knowing thatp
has for possible splitting of its degree listOfDegrees.
- factor: (UP, List NonNegativeInteger, NonNegativeInteger) -> Factored UP
factor(p, listOfDegrees, r)
factorizes the polynomialp
using the single factor bound algorithm, knowing thatp
has for possible splitting of its degreelistOfDegrees
and thatp
has at leastr
factors.
- factor: (UP, NonNegativeInteger) -> Factored UP
factor(p, r)
factorizes the polynomialp
using the single factor bound algorithm and knowing thatp
has at leastr
factors.
- factor: (UP, NonNegativeInteger, NonNegativeInteger) -> Factored UP
factor(p, d, r)
factorizes the polynomialp
using the single factor bound algorithm, knowing thatd
divides the degree of all factors ofp
and thatp
has at leastr
factors.
- factor: UP -> Factored UP
factor(p)
returns the factorization ofp
over the integers.
- factorOfDegree: (PositiveInteger, UP) -> Union(UP, failed)
factorOfDegree(d, p)
returns a factor ofp
of degreed
.
- factorOfDegree: (PositiveInteger, UP, List NonNegativeInteger) -> Union(UP, failed)
factorOfDegree(d, p, listOfDegrees)
returns a factor ofp
of degreed
knowing thatp
has for possible splitting of its degree listOfDegrees.
- factorOfDegree: (PositiveInteger, UP, List NonNegativeInteger, NonNegativeInteger) -> Union(UP, failed)
factorOfDegree(d, p, listOfDegrees, r)
returns a factor ofp
of degreed
knowing thatp
has for possible splitting of its degreelistOfDegrees
, and thatp
has at leastr
factors.
- factorOfDegree: (PositiveInteger, UP, List NonNegativeInteger, NonNegativeInteger, Boolean) -> Union(UP, failed)
factorOfDegree(d, p, listOfDegrees, r, sqf)
returns a factor ofp
of degreed
knowing thatp
has for possible splitting of its degreelistOfDegrees
, and thatp
has at leastr
factors. Ifsqf=true
the polynomial is assumed to be square free (i.e. without repeated factors).
- factorOfDegree: (PositiveInteger, UP, NonNegativeInteger) -> Union(UP, failed)
factorOfDegree(d, p, r)
returns a factor ofp
of degreed
knowing thatp
has at leastr
factors.
- factorSquareFree: (UP, List NonNegativeInteger) -> Factored UP
factorSquareFree(p, listOfDegrees)
factorizes the polynomialp
using the single factor bound algorithm and knowing thatp
has for possible splitting of its degree listOfDegrees.p
is supposed not having any repeated factor (this is not checked).
- factorSquareFree: (UP, List NonNegativeInteger, NonNegativeInteger) -> Factored UP
factorSquareFree(p, listOfDegrees, r)
factorizes the polynomialp
using the single factor bound algorithm, knowing thatp
has for possible splitting of its degreelistOfDegrees
and thatp
has at leastr
factors.p
is supposed not having any repeated factor (this is not checked).
- factorSquareFree: (UP, NonNegativeInteger) -> Factored UP
factorSquareFree(p, r)
factorizes the polynomialp
using the single factor bound algorithm and knowing thatp
has at leastr
factors.p
is supposed not having any repeated factor (this is not checked).
- factorSquareFree: (UP, NonNegativeInteger, NonNegativeInteger) -> Factored UP
factorSquareFree(p, d, r)
factorizes the polynomialp
using the single factor bound algorithm, knowing thatd
divides the degree of all factors ofp
and thatp
has at leastr
factors.p
is supposed not having any repeated factor (this is not checked).
- factorSquareFree: UP -> Factored UP
factorSquareFree(p)
returns the factorization ofp
which is supposed not having any repeated factor (this is not checked).
- henselFact: (UP, Boolean) -> Record(contp: Integer, factors: List Record(irr: UP, pow: NonNegativeInteger))
henselFact(p, sqf)
returns the factorization ofp
, the result is a Record such thatcontp=
contentp
,factors=
List of irreducible factors ofp
with exponent. Ifsqf=true
the polynomial is assumed to be square free (i.e. without repeated factors).
- makeFR: Record(contp: Integer, factors: List Record(irr: UP, pow: NonNegativeInteger)) -> Factored UP
makeFR(flist)
turns the final factorization of henselFact into a Factored object.
- modularFactor: (UP, Set NonNegativeInteger) -> Record(prime: Integer, factors: List UP)
modularFactor(f, d)
chooses a “good” prime and returns the factorization off
modulo this prime in a form that may be used by completeHensel. If prime is zero it means thatf
has been proved to be irreducible over the integers or thatf
is a unit (i.e. 1 or-1
).f
shall be primitive (i.e. content(p
)=1
) and square free (i.e. without repeated factors).d
is set of possible degrees of factors.
- musserTrials: () -> PositiveInteger
musserTrials()
returns the number of primes that are tried in modularFactor.
- musserTrials: PositiveInteger -> PositiveInteger
musserTrials(n)
sets ton
the number of primes to be tried in modularFactor and returns the previous value.
- numberOfFactors: List Record(factor: UP, degree: Integer) -> NonNegativeInteger
numberOfFactors(ddfactorization)
returns the number of factors of the polynomialf
modulop
whereddfactorization
is the distinct degree factorization off
computed by modular factorization package for some primep
.
- stopMusserTrials: () -> PositiveInteger
stopMusserTrials()
returns the bound on the number of factors for which modularFactor stops to look for an other prime. You will have to remember that the step of recombining the extraneous factors may take up to2^stopMusserTrials()
trials.
- stopMusserTrials: PositiveInteger -> PositiveInteger
stopMusserTrials(n)
sets ton
the bound on the number of factors for which modularFactor stops to look for an other prime. You will have to remember that the step of recombining the extraneous factors may take up to2^n
trials. Returns the previous value.
- tryFunctionalDecomposition?: () -> Boolean
tryFunctionalDecomposition?()
returnstrue
if factorizers try functional decomposition of polynomials before factoring them.
- tryFunctionalDecomposition: Boolean -> Boolean
tryFunctionalDecomposition(b)
chooses whether factorizers have to look for functional decomposition of polynomials (true
) or not (false
). Returns the previous value.
- useEisensteinCriterion?: () -> Boolean
useEisensteinCriterion?()
returnstrue
if factorizers check Eisenstein's
criterion before factoring.
- useEisensteinCriterion: Boolean -> Boolean
useEisensteinCriterion(b)
chooses whether factorizers check Eisenstein's
criterion before factoring:true
for using it,false
else. Returns the previous value.
- useSingleFactorBound?: () -> Boolean
useSingleFactorBound?()
returnstrue
if algorithm with single factor bound is used for factorization,false
for algorithm with overall bound.