Class SolvableGroebnerBaseAbstract<C extends RingElem<C>>
java.lang.Object
edu.jas.gb.SolvableGroebnerBaseAbstract<C>
- Type Parameters:
C- coefficient type
- All Implemented Interfaces:
SolvableGroebnerBase<C>, Serializable
- Direct Known Subclasses:
SGBProxy, SolvableGroebnerBaseParallel, SolvableGroebnerBasePseudoRecSeq, SolvableGroebnerBasePseudoSeq, SolvableGroebnerBaseSeq, SolvableGroebnerBaseSeqPairParallel
public abstract class SolvableGroebnerBaseAbstract<C extends RingElem<C>>
extends Object
implements SolvableGroebnerBase<C>
Solvable Groebner Bases abstract class. Implements common left, right and
twosided Groebner bases and left, right and twosided GB tests.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final BasicLinAlg<GenPolynomial<C>> Linear algebra engine.final GroebnerBaseAbstract<C> Commutative Groebner bases engine.private static final booleanprivate static final org.apache.logging.log4j.LoggerReduction engine.Solvable reduction engine.Strategy for pair selection. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.Constructor.Constructor.SolvableGroebnerBaseAbstract(SolvableReduction<C> sred, PairList<C> pl) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionintcancel()Cancel ThreadPool.intIdeal common zero test.constructUnivariate(int i, List<GenSolvablePolynomial<C>> G) Construct univariate solvable polynomial of minimal degree in variable i of a zero dimensional ideal(G).Construct univariate solvable polynomials of minimal degree in all variables in zero dimensional left ideal(G).extLeftGB(int modv, List<GenSolvablePolynomial<C>> F) Solvable Extended Groebner base using critical pair class.Solvable Extended Groebner base using critical pair class.extRightGB(int modv, List<GenSolvablePolynomial<C>> F) Solvable Extended Groebner base using critical pair class.Solvable Extended Groebner base using critical pair class.booleanisLeftGB(int modv, List<GenSolvablePolynomial<C>> F) Left Groebner base test.booleanisLeftGB(int modv, 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.booleanLeft Groebner base test.booleanisLeftGB(List<GenSolvablePolynomial<C>> F, boolean b) Left Groebner base test.booleanisLeftGBidem(int modv, List<GenSolvablePolynomial<C>> F) Left Groebner base idempotence test.booleanisLeftGBsimple(int modv, List<GenSolvablePolynomial<C>> F) Left Groebner base test.booleanTest if left reduction matrix.booleanisLeftReductionMatrix(List<GenSolvablePolynomial<C>> F, List<GenSolvablePolynomial<C>> G, List<List<GenSolvablePolynomial<C>>> Mf, List<List<GenSolvablePolynomial<C>>> Mg) Test if left reduction matrix.booleanisRightGB(int modv, 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.booleanRight Groebner base test.booleanisRightGBidem(int modv, List<GenSolvablePolynomial<C>> F) Right Groebner base idempotence test.booleanRight Groebner base idempotence test.booleanisTwosidedGB(int modv, 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.booleanTwosided Groebner base test.booleanisTwosidedGBidem(int modv, List<GenSolvablePolynomial<C>> F) Twosided Groebner base idempotence test.booleanTwosided Groebner base idempotence test.leftGB(ModuleList<C> M) Left Groebner base using pairlist class.leftGB(ModuleList<C> M, boolean top) Left Groebner base using pairlist class.leftGB(List<GenSolvablePolynomial<C>> F) Left Groebner base using pairlist class.Left minimal ordered groebner basis.Normalize polynomial list.rightGB(int modv, List<GenSolvablePolynomial<C>> F) Right Groebner base using opposite ring left GB.rightGB(ModuleList<C> M) Right Groebner base using pairlist class.Right Groebner base using opposite ring left GB.Right minimal ordered groebner basis.voidCleanup and terminate ThreadPool.twosidedGB(ModuleList<C> M) Twosided Groebner base using pairlist class.twosidedGB(ModuleList<C> M, boolean top) Twosided Groebner base using pairlist class.twosidedGB(List<GenSolvablePolynomial<C>> Fp) Twosided Groebner base using pairlist class.Univariate head term degrees.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface SolvableGroebnerBase
leftGB, twosidedGB
-
Field Details
-
logger
private static final org.apache.logging.log4j.Logger logger -
debug
private static final boolean debug -
sred
Solvable reduction engine. -
red
-
strategy
-
blas
Linear algebra engine. -
cbb
Commutative Groebner bases engine.
-
-
Constructor Details
-
SolvableGroebnerBaseAbstract
public SolvableGroebnerBaseAbstract()Constructor. -
SolvableGroebnerBaseAbstract
Constructor.- Parameters:
sred- Solvable reduction engine
-
SolvableGroebnerBaseAbstract
-
SolvableGroebnerBaseAbstract
Constructor.- Parameters:
sred- Solvable reduction enginepl- pair selection strategy
-
-
Method Details
-
normalizeZerosOnes
Normalize polynomial list.- Parameters:
A- list of polynomials.- Returns:
- list of polynomials with zeros removed and ones/units reduced.
-
isLeftGB
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
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
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
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
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
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
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
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
Twosided Groebner base idempotence test.- Parameters:
F- solvable polynomial list.- Returns:
- true, if F is equal to GB(F), else false.
-
isTwosidedGBidem
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
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
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
Right Groebner base idempotence test.- Parameters:
F- solvable polynomial list.- Returns:
- true, if F is equal to GB(F), else false.
-
isRightGBidem
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
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
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
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
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
Right minimal ordered groebner basis.- Parameters:
Gp- a right Groebner base.- Returns:
- rightGBmi(F) a minimal right Groebner base of Gp.
-
twosidedGB
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
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
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.
-
extRightGB
Solvable Extended Groebner base using critical pair class.- Parameters:
F- solvable polynomial list.- Returns:
- a container for an extended right Groebner base of F.
-
extRightGB
Solvable Extended Groebner base using critical pair class.- Parameters:
modv- module variable number.F- polynomial list.- Returns:
- a container for an extended right Groebner base G of F together with back-and-forth transformations.
-
isLeftGB
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
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
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
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
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
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
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
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
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
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
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
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(List<GenSolvablePolynomial<C>> F, List<GenSolvablePolynomial<C>> G, List<List<GenSolvablePolynomial<C>>> Mf, List<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
Ideal common zero test.- Returns:
- -1, 0 or 1 if dimension(this) &eq; -1, 0 or ≥ 1.
-
univariateDegrees
Univariate head term degrees.- Parameters:
A- list of solvable polynomials.- Returns:
- a list of the degrees of univariate head terms.
-
constructUnivariate
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
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.
-