Package edu.jas.gb
Class GroebnerBaseAbstract<C extends RingElem<C>>
- java.lang.Object
-
- edu.jas.gb.GroebnerBaseAbstract<C>
-
- Type Parameters:
C
- coefficient type
- All Implemented Interfaces:
GroebnerBase<C>
,java.io.Serializable
- Direct Known Subclasses:
DGroebnerBaseSeq
,GBOptimized
,GBProxy
,GroebnerBaseDistributedEC
,GroebnerBaseDistributedHybridEC
,GroebnerBaseFGLM
,GroebnerBaseParallel
,GroebnerBaseParIter
,GroebnerBasePartial
,GroebnerBasePseudoParallel
,GroebnerBasePseudoRecParallel
,GroebnerBasePseudoRecSeq
,GroebnerBasePseudoSeq
,GroebnerBaseQuotient
,GroebnerBaseRational
,GroebnerBaseSeq
,GroebnerBaseSeqIter
,GroebnerBaseSeqPairDistributed
,GroebnerBaseSeqPairParallel
,GroebnerBaseSeqPairSeq
,GroebnerBaseSigSeqIter
,GroebnerBaseWalk
,RGroebnerBaseSeq
public abstract class GroebnerBaseAbstract<C extends RingElem<C>> extends java.lang.Object implements GroebnerBase<C>
Groebner Bases abstract class. Implements common Groebner bases and GB test methods.- Author:
- Heinz Kredel
- See Also:
GBAlgorithmBuilder
,GBFactory
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description BasicLinAlg<GenPolynomial<C>>
blas
linear algebra engine.Reduction<C>
red
Reduction engine.PairList<C>
strategy
Strategy for pair selection.
-
Constructor Summary
Constructors Constructor Description GroebnerBaseAbstract()
Constructor.GroebnerBaseAbstract(PairList<C> pl)
Constructor.GroebnerBaseAbstract(Reduction<C> red)
Constructor.GroebnerBaseAbstract(Reduction<C> red, PairList<C> pl)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
cancel()
Cancel ThreadPool.int
commonZeroTest(java.util.List<GenPolynomial<C>> F)
Common zero test.GenPolynomial<C>
constructUnivariate(int i, java.util.List<GenPolynomial<C>> G)
Construct univariate polynomial of minimal degree in variable i of a zero dimensional ideal(G).ExtendedGB<C>
extGB(int modv, java.util.List<GenPolynomial<C>> F)
Extended Groebner base using critical pair class.ExtendedGB<C>
extGB(java.util.List<GenPolynomial<C>> F)
Extended Groebner base using critical pair class.ModuleList<C>
GB(ModuleList<C> M)
GB.ModuleList<C>
GB(ModuleList<C> M, boolean top)
GB.java.util.List<GenPolynomial<C>>
GB(java.util.List<GenPolynomial<C>> F)
Groebner base using pairlist class.boolean
isGB(int modv, java.util.List<GenPolynomial<C>> F)
Groebner base test.boolean
isGB(int modv, java.util.List<GenPolynomial<C>> F, boolean b)
Groebner base test.boolean
isGB(ModuleList<C> M)
isGB.boolean
isGB(ModuleList<C> M, boolean top)
isGB.boolean
isGB(java.util.List<GenPolynomial<C>> F)
Groebner base test.boolean
isGB(java.util.List<GenPolynomial<C>> F, boolean b)
Groebner base test.boolean
isGBidem(int modv, java.util.List<GenPolynomial<C>> F)
Groebner base idempotence test.boolean
isGBsimple(int modv, java.util.List<GenPolynomial<C>> F)
Groebner base simple test.boolean
isMinimalGB(java.util.List<GenPolynomial<C>> Gp)
Test for minimal ordered Groebner basis.boolean
isMinReductionMatrix(ExtendedGB<C> exgb)
Test if minimal reduction matrix.boolean
isMinReductionMatrix(java.util.List<GenPolynomial<C>> F, java.util.List<GenPolynomial<C>> G, java.util.List<java.util.List<GenPolynomial<C>>> Mf, java.util.List<java.util.List<GenPolynomial<C>>> Mg)
Test if minimal reduction matrix.boolean
isReductionMatrix(ExtendedGB<C> exgb)
Test if reduction matrix.boolean
isReductionMatrix(java.util.List<GenPolynomial<C>> F, java.util.List<GenPolynomial<C>> G, java.util.List<java.util.List<GenPolynomial<C>>> Mf, java.util.List<java.util.List<GenPolynomial<C>>> Mg)
Test if reduction matrix.ExtendedGB<C>
minimalExtendedGB(int flen, java.util.List<GenPolynomial<C>> Gp, java.util.List<java.util.List<GenPolynomial<C>>> M)
Minimal extended groebner basis.java.util.List<GenPolynomial<C>>
minimalGB(java.util.List<GenPolynomial<C>> Gp)
Minimal ordered Groebner basis.java.util.List<java.util.List<GenPolynomial<C>>>
normalizeMatrix(int flen, java.util.List<java.util.List<GenPolynomial<C>>> M)
Normalize M.java.util.List<GenPolynomial<C>>
normalizeZerosOnes(java.util.List<GenPolynomial<C>> A)
Normalize polynomial list.void
terminate()
Cleanup and terminate ThreadPool.java.lang.String
toString()
Get the String representation with GB engines.java.util.List<java.lang.Long>
univariateDegrees(java.util.List<GenPolynomial<C>> A)
Univariate head term degrees.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface edu.jas.gb.GroebnerBase
GB
-
-
-
-
Constructor Detail
-
GroebnerBaseAbstract
public GroebnerBaseAbstract()
Constructor.
-
GroebnerBaseAbstract
public GroebnerBaseAbstract(Reduction<C> red)
Constructor.- Parameters:
red
- Reduction engine
-
GroebnerBaseAbstract
public GroebnerBaseAbstract(PairList<C> pl)
Constructor.- Parameters:
pl
- pair selection strategy
-
GroebnerBaseAbstract
public GroebnerBaseAbstract(Reduction<C> red, PairList<C> pl)
Constructor.- Parameters:
red
- Reduction enginepl
- pair selection strategy
-
-
Method Detail
-
toString
public java.lang.String toString()
Get the String representation with GB engines.- Overrides:
toString
in classjava.lang.Object
- See Also:
Object.toString()
-
normalizeZerosOnes
public java.util.List<GenPolynomial<C>> normalizeZerosOnes(java.util.List<GenPolynomial<C>> A)
Normalize polynomial list.- Parameters:
A
- list of polynomials.- Returns:
- list of polynomials with zeros removed and ones/units reduced.
-
isGB
public boolean isGB(java.util.List<GenPolynomial<C>> F)
Groebner base test.- Specified by:
isGB
in interfaceGroebnerBase<C extends RingElem<C>>
- Parameters:
F
- polynomial list.- Returns:
- true, if F is a Groebner base, else false.
-
isGB
public boolean isGB(int modv, java.util.List<GenPolynomial<C>> F)
Groebner base test.- Specified by:
isGB
in interfaceGroebnerBase<C extends RingElem<C>>
- Parameters:
modv
- module variable number.F
- polynomial list.- Returns:
- true, if F is a Groebner base, else false.
-
isGB
public boolean isGB(java.util.List<GenPolynomial<C>> F, boolean b)
Groebner base test.- Parameters:
F
- polynomial list.b
- true for simple test, false for GB test.- Returns:
- true, if F is a Groebner base, else false.
-
isGB
public boolean isGB(int modv, java.util.List<GenPolynomial<C>> F, boolean b)
Groebner base test.- Parameters:
modv
- module variable number.F
- polynomial list.b
- true for simple test, false for GB test.- Returns:
- true, if F is a Groebner base, else false.
-
isGBsimple
public boolean isGBsimple(int modv, java.util.List<GenPolynomial<C>> F)
Groebner base simple test.- Parameters:
modv
- module variable number.F
- polynomial list.- Returns:
- true, if F is a Groebner base, else false.
-
isGBidem
public boolean isGBidem(int modv, java.util.List<GenPolynomial<C>> F)
Groebner base idempotence test.- Parameters:
modv
- module variable number.F
- polynomial list.- Returns:
- true, if F is equal to GB(F), else false.
-
commonZeroTest
public int commonZeroTest(java.util.List<GenPolynomial<C>> F)
Common zero test.- Parameters:
F
- polynomial list.- Returns:
- -1, 0 or 1 if dimension(ideal(F)) &eq; -1, 0 or ≥ 1.
-
GB
public java.util.List<GenPolynomial<C>> GB(java.util.List<GenPolynomial<C>> F)
Groebner base using pairlist class.- Specified by:
GB
in interfaceGroebnerBase<C extends RingElem<C>>
- Parameters:
F
- polynomial list.- Returns:
- GB(F) a Groebner base of F.
-
isGB
public boolean isGB(ModuleList<C> M)
isGB.- Specified by:
isGB
in interfaceGroebnerBase<C extends RingElem<C>>
- Parameters:
M
- a module basis.- Returns:
- true, if M is a Groebner base, else false.
-
isGB
public boolean isGB(ModuleList<C> M, boolean top)
isGB.- Parameters:
M
- a module basis.top
- true for TOP term order, false for POT term order.- Returns:
- true, if M is a Groebner base, else false.
-
GB
public ModuleList<C> GB(ModuleList<C> M)
GB.- Specified by:
GB
in interfaceGroebnerBase<C extends RingElem<C>>
- Parameters:
M
- a module basis.- Returns:
- GB(M), a Groebner base of M.
-
GB
public ModuleList<C> GB(ModuleList<C> M, boolean top)
GB.- Parameters:
M
- a module basis.top
- true for TOP term order, false for POT term order.- Returns:
- GB(M), a Groebner base of M wrt. TOP or POT.
-
extGB
public ExtendedGB<C> extGB(java.util.List<GenPolynomial<C>> F)
Extended Groebner base using critical pair class.- Specified by:
extGB
in interfaceGroebnerBase<C extends RingElem<C>>
- Parameters:
F
- polynomial list.- Returns:
- a container for a Groebner base G of F together with back-and-forth transformations.
-
extGB
public ExtendedGB<C> extGB(int modv, java.util.List<GenPolynomial<C>> F)
Extended Groebner base using critical pair class.- Specified by:
extGB
in interfaceGroebnerBase<C extends RingElem<C>>
- Parameters:
modv
- module variable number.F
- polynomial list.- Returns:
- a container for a Groebner base G of F together with back-and-forth transformations.
-
minimalGB
public java.util.List<GenPolynomial<C>> minimalGB(java.util.List<GenPolynomial<C>> Gp)
Minimal ordered Groebner basis.- Specified by:
minimalGB
in interfaceGroebnerBase<C extends RingElem<C>>
- Parameters:
Gp
- a Groebner base.- Returns:
- a reduced Groebner base of Gp.
-
isMinimalGB
public boolean isMinimalGB(java.util.List<GenPolynomial<C>> Gp)
Test for minimal ordered Groebner basis.- Parameters:
Gp
- an ideal base.- Returns:
- true, if Gp is a reduced minimal Groebner base.
-
isReductionMatrix
public boolean isReductionMatrix(ExtendedGB<C> exgb)
Test if reduction matrix.- Specified by:
isReductionMatrix
in interfaceGroebnerBase<C extends RingElem<C>>
- Parameters:
exgb
- an ExtendedGB container.- Returns:
- true, if exgb contains a reduction matrix, else false.
-
isMinReductionMatrix
public boolean isMinReductionMatrix(ExtendedGB<C> exgb)
Test if minimal reduction matrix.- Parameters:
exgb
- an ExtendedGB container.- Returns:
- true, if exgb contains a minimal reduction matrix, else false.
-
isReductionMatrix
public boolean isReductionMatrix(java.util.List<GenPolynomial<C>> F, java.util.List<GenPolynomial<C>> G, java.util.List<java.util.List<GenPolynomial<C>>> Mf, java.util.List<java.util.List<GenPolynomial<C>>> Mg)
Test if reduction matrix.- Specified by:
isReductionMatrix
in interfaceGroebnerBase<C extends RingElem<C>>
- Parameters:
F
- a polynomial list.G
- a Groebner base, G starting with +/- elements of F.Mf
- a possible reduction matrix.Mg
- a possible reduction matrix.- Returns:
- true, if Mg and Mf are reduction matrices, else false.
-
isMinReductionMatrix
public boolean isMinReductionMatrix(java.util.List<GenPolynomial<C>> F, java.util.List<GenPolynomial<C>> G, java.util.List<java.util.List<GenPolynomial<C>>> Mf, java.util.List<java.util.List<GenPolynomial<C>>> Mg)
Test if minimal reduction matrix.- Parameters:
F
- a polynomial list.G
- a minimal Groebner base of F.Mf
- a possible reduction matrix.Mg
- a possible reduction matrix.- Returns:
- true, if Mg and Mf are reduction matrices, else false.
-
normalizeMatrix
public java.util.List<java.util.List<GenPolynomial<C>>> normalizeMatrix(int flen, java.util.List<java.util.List<GenPolynomial<C>>> M)
Normalize M. Scale and shift right triangular matrix (new G elements) to left and make all right column elements zero. Then truncate all rows to the size of F.- Parameters:
flen
- length of rows.M
- a reduction matrix.- Returns:
- normalized M.
-
minimalExtendedGB
public ExtendedGB<C> minimalExtendedGB(int flen, java.util.List<GenPolynomial<C>> Gp, java.util.List<java.util.List<GenPolynomial<C>>> M)
Minimal extended groebner basis.- Parameters:
flen
- length of rows.Gp
- a Groebner base.M
- a reduction matrix, is modified.- Returns:
- a (partially) reduced Groebner base of Gp in a (fake) container.
-
univariateDegrees
public java.util.List<java.lang.Long> univariateDegrees(java.util.List<GenPolynomial<C>> A)
Univariate head term degrees.- Parameters:
A
- list of polynomials.- Returns:
- a list of the degrees of univariate head terms.
-
constructUnivariate
public GenPolynomial<C> constructUnivariate(int i, java.util.List<GenPolynomial<C>> G)
Construct univariate polynomial of minimal degree in variable i of a zero dimensional ideal(G).- Parameters:
i
- variable index.G
- list of polynomials, a monic reduced Gröbner base of a zero dimensional ideal.- Returns:
- univariate polynomial of minimal degree in variable i in ideal(G)
-
terminate
public void terminate()
Cleanup and terminate ThreadPool.
-
cancel
public int cancel()
Cancel ThreadPool.
-
-