Package edu.jas.gbufd
Class GroebnerBaseFGLM<C extends GcdRingElem<C>>
- java.lang.Object
-
- edu.jas.gb.GroebnerBaseAbstract<C>
-
- edu.jas.gbufd.GroebnerBaseFGLM<C>
-
- Type Parameters:
C
- coefficient type
- All Implemented Interfaces:
GroebnerBase<C>
,java.io.Serializable
public class GroebnerBaseFGLM<C extends GcdRingElem<C>> extends GroebnerBaseAbstract<C>
Groebner Base sequential FGLM algorithm. Implements Groebner base computation via FGLM algorithm.- See Also:
GBAlgorithmBuilder
,GBFactory
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private static org.apache.logging.log4j.Logger
logger
private GroebnerBaseAbstract<C>
sgb
The backing GB algorithm implementation.-
Fields inherited from class edu.jas.gb.GroebnerBaseAbstract
blas, red, strategy
-
-
Constructor Summary
Constructors Constructor Description GroebnerBaseFGLM()
Constructor.GroebnerBaseFGLM(GroebnerBaseAbstract<C> gb)
Constructor.GroebnerBaseFGLM(Reduction<C> red)
Constructor.GroebnerBaseFGLM(Reduction<C> red, PairList<C> pl)
Constructor.GroebnerBaseFGLM(Reduction<C> red, PairList<C> pl, GroebnerBaseAbstract<C> gb)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) GenPolynomialRing<C>
addIndeterminate(GenPolynomialRing<C> ring)
Internal method to add new indeterminates.int
cancel()
Cancel ThreadPool.java.util.List<GenPolynomial<C>>
convGroebnerToLex(java.util.List<GenPolynomial<C>> groebnerBasis)
Algorithm CONVGROEBNER: Converts Groebner bases w.r.t.(package private) GenPolynomialRing<C>
createRingOfIndeterminates(GenPolynomialRing<C> ring, int i)
Internal method to create a polynomial ring in i indeterminates.java.util.List<GenPolynomial<C>>
GB(int modv, java.util.List<GenPolynomial<C>> F)
Groebner base using FGLM algorithm.GenPolynomial<C>
lMinterm(java.util.List<GenPolynomial<C>> G, GenPolynomial<C> t)
Algorithm lMinterm: MINTERM algorithm for inverse lexicographical term order.(package private) long
maxArray(long[] t)
Maximum of an array.java.util.List<GenPolynomial<C>>
redTerms(java.util.List<GenPolynomial<C>> groebnerBasis)
Compute the residues to given polynomial list.void
terminate()
Cleanup and terminate ThreadPool.java.lang.String
toString()
Get the String representation with GB engine.-
Methods inherited from class edu.jas.gb.GroebnerBaseAbstract
commonZeroTest, constructUnivariate, extGB, extGB, GB, GB, GB, isGB, isGB, isGB, isGB, isGB, isGB, isGBidem, isGBsimple, isMinimalGB, isMinReductionMatrix, isMinReductionMatrix, isReductionMatrix, isReductionMatrix, minimalExtendedGB, minimalGB, normalizeMatrix, normalizeZerosOnes, univariateDegrees
-
-
-
-
Field Detail
-
logger
private static final org.apache.logging.log4j.Logger logger
-
sgb
private GroebnerBaseAbstract<C extends GcdRingElem<C>> sgb
The backing GB algorithm implementation.
-
-
Constructor Detail
-
GroebnerBaseFGLM
public GroebnerBaseFGLM()
Constructor.
-
GroebnerBaseFGLM
public GroebnerBaseFGLM(Reduction<C> red)
Constructor.- Parameters:
red
- Reduction engine
-
GroebnerBaseFGLM
public GroebnerBaseFGLM(Reduction<C> red, PairList<C> pl)
Constructor.- Parameters:
red
- Reduction enginepl
- pair selection strategy
-
GroebnerBaseFGLM
public GroebnerBaseFGLM(Reduction<C> red, PairList<C> pl, GroebnerBaseAbstract<C> gb)
Constructor.- Parameters:
red
- Reduction enginepl
- pair selection strategygb
- backing GB algorithm.
-
GroebnerBaseFGLM
public GroebnerBaseFGLM(GroebnerBaseAbstract<C> gb)
Constructor.- Parameters:
gb
- backing GB algorithm.
-
-
Method Detail
-
toString
public java.lang.String toString()
Get the String representation with GB engine.- Overrides:
toString
in classGroebnerBaseAbstract<C extends GcdRingElem<C>>
- See Also:
Object.toString()
-
GB
public java.util.List<GenPolynomial<C>> GB(int modv, java.util.List<GenPolynomial<C>> F)
Groebner base using FGLM algorithm.- Parameters:
modv
- module variable number.F
- polynomial list.- Returns:
- GB(F) a inv lex term order Groebner base of F.
-
convGroebnerToLex
public java.util.List<GenPolynomial<C>> convGroebnerToLex(java.util.List<GenPolynomial<C>> groebnerBasis)
Algorithm CONVGROEBNER: Converts Groebner bases w.r.t. total degree termorder into Groebner base w.r.t to inverse lexicographical term order- Returns:
- Groebner base w.r.t to inverse lexicographical term order
-
lMinterm
public GenPolynomial<C> lMinterm(java.util.List<GenPolynomial<C>> G, GenPolynomial<C> t)
Algorithm lMinterm: MINTERM algorithm for inverse lexicographical term order.- Parameters:
t
- TermG
- Groebner basis- Returns:
- Term that specifies condition (D) or null (Condition (D) in "A computational approach to commutative algebra", Becker, Weispfenning, Kredel 1993, p. 427)
-
redTerms
public java.util.List<GenPolynomial<C>> redTerms(java.util.List<GenPolynomial<C>> groebnerBasis)
Compute the residues to given polynomial list.- Returns:
- List of reduced terms
-
createRingOfIndeterminates
GenPolynomialRing<C> createRingOfIndeterminates(GenPolynomialRing<C> ring, int i)
Internal method to create a polynomial ring in i indeterminates. Create new ring over coefficients of ring with i variables Y1,...,Yi (indeterminate)- Returns:
- polynomial ring with variables Y1...Yi and coefficient of ring.
-
addIndeterminate
GenPolynomialRing<C> addIndeterminate(GenPolynomialRing<C> ring)
Internal method to add new indeterminates. Add another variable (indeterminate) Y_{i+1} to existing ring- Returns:
- polynomial ring with variables Y1,..,Yi,Yi+1 and coefficients of ring.
-
maxArray
long maxArray(long[] t)
Maximum of an array.- Returns:
- maximum of an array
-
terminate
public void terminate()
Cleanup and terminate ThreadPool.- Overrides:
terminate
in classGroebnerBaseAbstract<C extends GcdRingElem<C>>
-
cancel
public int cancel()
Cancel ThreadPool.- Overrides:
cancel
in classGroebnerBaseAbstract<C extends GcdRingElem<C>>
-
-