Package edu.jas.gb
Class SolvableGroebnerBaseAbstract<C extends RingElem<C>>
- java.lang.Object
-
- edu.jas.gb.SolvableGroebnerBaseAbstract<C>
-
- Type Parameters:
C- coefficient type
- All Implemented Interfaces:
SolvableGroebnerBase<C>,java.io.Serializable
- Direct Known Subclasses:
SGBProxy,SolvableGroebnerBaseParallel,SolvableGroebnerBasePseudoRecSeq,SolvableGroebnerBasePseudoSeq,SolvableGroebnerBaseSeq,SolvableGroebnerBaseSeqPairParallel
public abstract class SolvableGroebnerBaseAbstract<C extends RingElem<C>> extends java.lang.Object implements SolvableGroebnerBase<C>
Solvable Groebner Bases abstract class. Implements common left, right and twosided Groebner bases and left, right and twosided GB tests.- Author:
- Heinz Kredel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected BasicLinAlg<GenPolynomial<C>>blasLinear algebra engine.GroebnerBaseAbstract<C>cbbCommutative Groebner bases engine.Reduction<C>redReduction engine.SolvableReduction<C>sredSolvable reduction engine.PairList<C>strategyStrategy for pair selection.
-
Constructor Summary
Constructors Constructor Description SolvableGroebnerBaseAbstract()Constructor.SolvableGroebnerBaseAbstract(PairList<C> pl)Constructor.SolvableGroebnerBaseAbstract(SolvableReduction<C> sred)Constructor.SolvableGroebnerBaseAbstract(SolvableReduction<C> sred, PairList<C> pl)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcancel()Cancel ThreadPool.intcommonZeroTest(java.util.List<GenSolvablePolynomial<C>> A)Ideal common zero test.GenSolvablePolynomial<C>constructUnivariate(int i, java.util.List<GenSolvablePolynomial<C>> G)Construct univariate solvable polynomial of minimal degree in variable i of a zero dimensional ideal(G).java.util.List<GenSolvablePolynomial<C>>constructUnivariate(java.util.List<GenSolvablePolynomial<C>> G)Construct univariate solvable polynomials of minimal degree in all variables in zero dimensional left ideal(G).SolvableExtendedGB<C>extLeftGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)Solvable Extended Groebner base using critical pair class.SolvableExtendedGB<C>extLeftGB(java.util.List<GenSolvablePolynomial<C>> F)Solvable Extended Groebner base using critical pair class.booleanisLeftGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)Left Groebner base test.booleanisLeftGB(int modv, java.util.List<GenSolvablePolynomial<C>> F, boolean b)Left Groebner base test.booleanisLeftGB(ModuleList<C> M)Module left Groebner base test.booleanisLeftGB(ModuleList<C> M, boolean top)Module left Groebner base test.booleanisLeftGB(java.util.List<GenSolvablePolynomial<C>> F)Left Groebner base test.booleanisLeftGB(java.util.List<GenSolvablePolynomial<C>> F, boolean b)Left Groebner base test.booleanisLeftGBidem(int modv, java.util.List<GenSolvablePolynomial<C>> F)Left Groebner base idempotence test.booleanisLeftGBsimple(int modv, java.util.List<GenSolvablePolynomial<C>> F)Left Groebner base test.booleanisLeftReductionMatrix(SolvableExtendedGB<C> exgb)Test if left reduction matrix.booleanisLeftReductionMatrix(java.util.List<GenSolvablePolynomial<C>> F, java.util.List<GenSolvablePolynomial<C>> G, java.util.List<java.util.List<GenSolvablePolynomial<C>>> Mf, java.util.List<java.util.List<GenSolvablePolynomial<C>>> Mg)Test if left reduction matrix.booleanisRightGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)Right Groebner base test.booleanisRightGB(ModuleList<C> M)Module right Groebner base test.booleanisRightGB(ModuleList<C> M, boolean top)Module right Groebner base test.booleanisRightGB(java.util.List<GenSolvablePolynomial<C>> F)Right Groebner base test.booleanisRightGBidem(int modv, java.util.List<GenSolvablePolynomial<C>> F)Right Groebner base idempotence test.booleanisRightGBidem(java.util.List<GenSolvablePolynomial<C>> F)Right Groebner base idempotence test.booleanisTwosidedGB(int modv, java.util.List<GenSolvablePolynomial<C>> Fp)Twosided Groebner base test.booleanisTwosidedGB(ModuleList<C> M)Module twosided Groebner base test.booleanisTwosidedGB(ModuleList<C> M, boolean top)Module twosided Groebner base test.booleanisTwosidedGB(java.util.List<GenSolvablePolynomial<C>> Fp)Twosided Groebner base test.booleanisTwosidedGBidem(int modv, java.util.List<GenSolvablePolynomial<C>> F)Twosided Groebner base idempotence test.booleanisTwosidedGBidem(java.util.List<GenSolvablePolynomial<C>> F)Twosided Groebner base idempotence test.ModuleList<C>leftGB(ModuleList<C> M)Left Groebner base using pairlist class.ModuleList<C>leftGB(ModuleList<C> M, boolean top)Left Groebner base using pairlist class.java.util.List<GenSolvablePolynomial<C>>leftGB(java.util.List<GenSolvablePolynomial<C>> F)Left Groebner base using pairlist class.java.util.List<GenSolvablePolynomial<C>>leftMinimalGB(java.util.List<GenSolvablePolynomial<C>> Gp)Left minimal ordered groebner basis.java.util.List<GenSolvablePolynomial<C>>normalizeZerosOnes(java.util.List<GenSolvablePolynomial<C>> A)Normalize polynomial list.java.util.List<GenSolvablePolynomial<C>>rightGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)Right Groebner base using opposite ring left GB.ModuleList<C>rightGB(ModuleList<C> M)Right Groebner base using pairlist class.java.util.List<GenSolvablePolynomial<C>>rightGB(java.util.List<GenSolvablePolynomial<C>> F)Right Groebner base using opposite ring left GB.java.util.List<GenSolvablePolynomial<C>>rightMinimalGB(java.util.List<GenSolvablePolynomial<C>> Gp)Right minimal ordered groebner basis.voidterminate()Cleanup and terminate ThreadPool.ModuleList<C>twosidedGB(ModuleList<C> M)Twosided Groebner base using pairlist class.ModuleList<C>twosidedGB(ModuleList<C> M, boolean top)Twosided Groebner base using pairlist class.java.util.List<GenSolvablePolynomial<C>>twosidedGB(java.util.List<GenSolvablePolynomial<C>> Fp)Twosided Groebner base using pairlist class.java.util.List<java.lang.Long>univariateDegrees(java.util.List<GenSolvablePolynomial<C>> A)Univariate head term degrees.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface edu.jas.gb.SolvableGroebnerBase
leftGB, twosidedGB
-
-
-
-
Field Detail
-
sred
public SolvableReduction<C extends RingElem<C>> sred
Solvable reduction engine.
-
blas
protected final BasicLinAlg<GenPolynomial<C extends RingElem<C>>> blas
Linear algebra engine.
-
cbb
public final GroebnerBaseAbstract<C extends RingElem<C>> cbb
Commutative Groebner bases engine.
-
-
Constructor Detail
-
SolvableGroebnerBaseAbstract
public SolvableGroebnerBaseAbstract()
Constructor.
-
SolvableGroebnerBaseAbstract
public SolvableGroebnerBaseAbstract(SolvableReduction<C> sred)
Constructor.- Parameters:
sred- Solvable reduction engine
-
SolvableGroebnerBaseAbstract
public SolvableGroebnerBaseAbstract(PairList<C> pl)
Constructor.- Parameters:
pl- pair selection strategy
-
SolvableGroebnerBaseAbstract
public SolvableGroebnerBaseAbstract(SolvableReduction<C> sred, PairList<C> pl)
Constructor.- Parameters:
sred- Solvable reduction enginepl- pair selection strategy
-
-
Method Detail
-
normalizeZerosOnes
public java.util.List<GenSolvablePolynomial<C>> normalizeZerosOnes(java.util.List<GenSolvablePolynomial<C>> A)
Normalize polynomial list.- Parameters:
A- list of polynomials.- Returns:
- list of polynomials with zeros removed and ones/units reduced.
-
isLeftGB
public boolean isLeftGB(java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base test.- Specified by:
isLeftGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
F- solvable polynomial list.- Returns:
- true, if F is a left Groebner base, else false.
-
isLeftGB
public boolean isLeftGB(java.util.List<GenSolvablePolynomial<C>> F, boolean b)
Left Groebner base test.- Parameters:
F- solvable polynomial list.b- true for simple test, false for GB test.- Returns:
- true, if F is a Groebner base, else false.
-
isLeftGB
public boolean isLeftGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base test.- Specified by:
isLeftGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
modv- module variable number.F- solvable polynomial list.- Returns:
- true, if F is a Groebner base, else false.
-
isLeftGB
public boolean isLeftGB(int modv, java.util.List<GenSolvablePolynomial<C>> F, boolean b)
Left Groebner base test.- Parameters:
modv- module variable number.F- solvable polynomial list.b- true for simple test, false for GB test.- Returns:
- true, if F is a Groebner base, else false.
-
isLeftGBsimple
public boolean isLeftGBsimple(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base test.- Parameters:
modv- number of module variables.F- solvable polynomial list.- Returns:
- true, if F is a left Groebner base, else false.
-
isLeftGBidem
public boolean isLeftGBidem(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base idempotence test.- Parameters:
modv- module variable number.F- solvable polynomial list.- Returns:
- true, if F is equal to GB(F), else false.
-
isTwosidedGB
public boolean isTwosidedGB(java.util.List<GenSolvablePolynomial<C>> Fp)
Twosided Groebner base test.- Specified by:
isTwosidedGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
Fp- solvable polynomial list.- Returns:
- true, if Fp is a two-sided Groebner base, else false.
-
isTwosidedGB
public boolean isTwosidedGB(int modv, java.util.List<GenSolvablePolynomial<C>> Fp)
Twosided Groebner base test.- Specified by:
isTwosidedGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
modv- number of module variables.Fp- solvable polynomial list.- Returns:
- true, if Fp is a two-sided Groebner base, else false.
-
isTwosidedGBidem
public boolean isTwosidedGBidem(java.util.List<GenSolvablePolynomial<C>> F)
Twosided Groebner base idempotence test.- Parameters:
F- solvable polynomial list.- Returns:
- true, if F is equal to GB(F), else false.
-
isTwosidedGBidem
public boolean isTwosidedGBidem(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Twosided Groebner base idempotence test.- Parameters:
modv- module variable number.F- solvable polynomial list.- Returns:
- true, if F is equal to GB(F), else false.
-
isRightGB
public boolean isRightGB(java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base test.- Specified by:
isRightGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
F- solvable polynomial list.- Returns:
- true, if F is a right Groebner base, else false.
-
isRightGB
public boolean isRightGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base test.- Specified by:
isRightGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
modv- number of module variables.F- solvable polynomial list.- Returns:
- true, if F is a right Groebner base, else false.
-
isRightGBidem
public boolean isRightGBidem(java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base idempotence test.- Parameters:
F- solvable polynomial list.- Returns:
- true, if F is equal to GB(F), else false.
-
isRightGBidem
public boolean isRightGBidem(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base idempotence test.- Parameters:
modv- module variable number.F- solvable polynomial list.- Returns:
- true, if F is equal to GB(F), else false.
-
leftGB
public java.util.List<GenSolvablePolynomial<C>> leftGB(java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base using pairlist class.- Specified by:
leftGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
F- solvable polynomial list.- Returns:
- leftGB(F) a left Groebner base of F.
-
extLeftGB
public SolvableExtendedGB<C> extLeftGB(java.util.List<GenSolvablePolynomial<C>> F)
Solvable Extended Groebner base using critical pair class.- Specified by:
extLeftGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
F- solvable polynomial list.- Returns:
- a container for an extended left Groebner base of F.
-
extLeftGB
public SolvableExtendedGB<C> extLeftGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Solvable Extended Groebner base using critical pair class.- Specified by:
extLeftGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
modv- module variable number.F- polynomial list.- Returns:
- a container for an extended left Groebner base G of F together with back-and-forth transformations.
-
leftMinimalGB
public java.util.List<GenSolvablePolynomial<C>> leftMinimalGB(java.util.List<GenSolvablePolynomial<C>> Gp)
Left minimal ordered groebner basis.- Specified by:
leftMinimalGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
Gp- a left Groebner base.- Returns:
- leftGBmi(F) a minimal left Groebner base of Gp.
-
rightMinimalGB
public java.util.List<GenSolvablePolynomial<C>> rightMinimalGB(java.util.List<GenSolvablePolynomial<C>> Gp)
Right minimal ordered groebner basis.- Parameters:
Gp- a right Groebner base.- Returns:
- rightGBmi(F) a minimal right Groebner base of Gp.
-
twosidedGB
public java.util.List<GenSolvablePolynomial<C>> twosidedGB(java.util.List<GenSolvablePolynomial<C>> Fp)
Twosided Groebner base using pairlist class.- Specified by:
twosidedGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
Fp- solvable polynomial list.- Returns:
- tsGB(Fp) a twosided Groebner base of Fp.
-
rightGB
public java.util.List<GenSolvablePolynomial<C>> rightGB(java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base using opposite ring left GB.- Specified by:
rightGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
F- solvable polynomial list.- Returns:
- rightGB(F) a right Groebner base of F.
-
rightGB
public java.util.List<GenSolvablePolynomial<C>> rightGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base using opposite ring left GB.- Specified by:
rightGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
modv- number of module variables.F- solvable polynomial list.- Returns:
- rightGB(F) a right Groebner base of F.
-
isLeftGB
public boolean isLeftGB(ModuleList<C> M)
Module left Groebner base test.- Specified by:
isLeftGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
M- a module basis.- Returns:
- true, if M is a left Groebner base, else false.
-
isLeftGB
public boolean isLeftGB(ModuleList<C> M, boolean top)
Module left Groebner base test.- Parameters:
M- a module basis.top- true for TOP term order, false for POT term order.- Returns:
- true, if M is a left Groebner base, else false.
-
leftGB
public ModuleList<C> leftGB(ModuleList<C> M)
Left Groebner base using pairlist class.- Specified by:
leftGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
M- a module basis.- Returns:
- leftGB(M) a left Groebner base for M.
-
leftGB
public ModuleList<C> leftGB(ModuleList<C> M, boolean top)
Left Groebner base using pairlist class.- Parameters:
M- a module basis.top- true for TOP term order, false for POT term order.- Returns:
- leftGB(M) a left Groebner base for M.
-
isTwosidedGB
public boolean isTwosidedGB(ModuleList<C> M)
Module twosided Groebner base test.- Specified by:
isTwosidedGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
M- a module basis.- Returns:
- true, if M is a twosided Groebner base, else false.
-
isTwosidedGB
public boolean isTwosidedGB(ModuleList<C> M, boolean top)
Module twosided Groebner base test.- Parameters:
M- a module basis.top- true for TOP term order, false for POT term order.- Returns:
- true, if M is a twosided Groebner base, else false.
-
twosidedGB
public ModuleList<C> twosidedGB(ModuleList<C> M)
Twosided Groebner base using pairlist class.- Specified by:
twosidedGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
M- a module basis.- Returns:
- twosidedGB(M) a twosided Groebner base for M.
-
twosidedGB
public ModuleList<C> twosidedGB(ModuleList<C> M, boolean top)
Twosided Groebner base using pairlist class.- Parameters:
M- a module basis.top- true for TOP term order, false for POT term order.- Returns:
- tsGB(M) a twosided Groebner base for M.
-
isRightGB
public boolean isRightGB(ModuleList<C> M)
Module right Groebner base test.- Specified by:
isRightGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
M- a module basis.- Returns:
- true, if M is a right Groebner base, else false.
-
isRightGB
public boolean isRightGB(ModuleList<C> M, boolean top)
Module right Groebner base test.- Parameters:
M- a module basis.top- true for TOP term order, false for POT term order.- Returns:
- true, if M is a right Groebner base, else false.
-
rightGB
public ModuleList<C> rightGB(ModuleList<C> M)
Right Groebner base using pairlist class.- Specified by:
rightGBin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
M- a module basis.- Returns:
- rightGB(M) a right Groebner base for M.
-
isLeftReductionMatrix
public boolean isLeftReductionMatrix(SolvableExtendedGB<C> exgb)
Test if left reduction matrix.- Specified by:
isLeftReductionMatrixin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
exgb- an SolvableExtendedGB container.- Returns:
- true, if exgb contains a left reduction matrix, else false.
-
isLeftReductionMatrix
public boolean isLeftReductionMatrix(java.util.List<GenSolvablePolynomial<C>> F, java.util.List<GenSolvablePolynomial<C>> G, java.util.List<java.util.List<GenSolvablePolynomial<C>>> Mf, java.util.List<java.util.List<GenSolvablePolynomial<C>>> Mg)
Test if left reduction matrix.- Specified by:
isLeftReductionMatrixin interfaceSolvableGroebnerBase<C extends RingElem<C>>- Parameters:
F- a solvable polynomial list.G- a left Groebner base.Mf- a possible left reduction matrix.Mg- a possible left reduction matrix.- Returns:
- true, if Mg and Mf are left reduction matrices, else false.
-
commonZeroTest
public int commonZeroTest(java.util.List<GenSolvablePolynomial<C>> A)
Ideal common zero test.- Returns:
- -1, 0 or 1 if dimension(this) &eq; -1, 0 or ≥ 1.
-
univariateDegrees
public java.util.List<java.lang.Long> univariateDegrees(java.util.List<GenSolvablePolynomial<C>> A)
Univariate head term degrees.- Parameters:
A- list of solvable polynomials.- Returns:
- a list of the degrees of univariate head terms.
-
constructUnivariate
public GenSolvablePolynomial<C> constructUnivariate(int i, java.util.List<GenSolvablePolynomial<C>> G)
Construct univariate solvable polynomial of minimal degree in variable i of a zero dimensional ideal(G).- Parameters:
i- variable index.G- list of solvable polynomials, a monic reduced left Gröbner base of a zero dimensional ideal.- Returns:
- univariate solvable polynomial of minimal degree in variable i in ideal_left(G)
-
constructUnivariate
public java.util.List<GenSolvablePolynomial<C>> constructUnivariate(java.util.List<GenSolvablePolynomial<C>> G)
Construct univariate solvable polynomials of minimal degree in all variables in zero dimensional left ideal(G).- Returns:
- list of univariate polynomial of minimal degree in each variable in ideal_left(G)
-
terminate
public void terminate()
Cleanup and terminate ThreadPool.
-
cancel
public int cancel()
Cancel ThreadPool.
-
-