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>
,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 boolean
private static final org.apache.logging.log4j.Logger
Reduction 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 TypeMethodDescriptionint
cancel()
Cancel ThreadPool.int
Ideal 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.boolean
isLeftGB
(int modv, List<GenSolvablePolynomial<C>> F) Left Groebner base test.boolean
isLeftGB
(int modv, List<GenSolvablePolynomial<C>> F, boolean b) Left Groebner base test.boolean
isLeftGB
(ModuleList<C> M) Module left Groebner base test.boolean
isLeftGB
(ModuleList<C> M, boolean top) Module left Groebner base test.boolean
Left Groebner base test.boolean
isLeftGB
(List<GenSolvablePolynomial<C>> F, boolean b) Left Groebner base test.boolean
isLeftGBidem
(int modv, List<GenSolvablePolynomial<C>> F) Left Groebner base idempotence test.boolean
isLeftGBsimple
(int modv, List<GenSolvablePolynomial<C>> F) Left Groebner base test.boolean
Test if left reduction matrix.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.boolean
isRightGB
(int modv, List<GenSolvablePolynomial<C>> F) Right Groebner base test.boolean
isRightGB
(ModuleList<C> M) Module right Groebner base test.boolean
isRightGB
(ModuleList<C> M, boolean top) Module right Groebner base test.boolean
Right Groebner base test.boolean
isRightGBidem
(int modv, List<GenSolvablePolynomial<C>> F) Right Groebner base idempotence test.boolean
Right Groebner base idempotence test.boolean
isTwosidedGB
(int modv, List<GenSolvablePolynomial<C>> Fp) Twosided Groebner base test.boolean
isTwosidedGB
(ModuleList<C> M) Module twosided Groebner base test.boolean
isTwosidedGB
(ModuleList<C> M, boolean top) Module twosided Groebner base test.boolean
Twosided Groebner base test.boolean
isTwosidedGBidem
(int modv, List<GenSolvablePolynomial<C>> F) Twosided Groebner base idempotence test.boolean
Twosided 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.void
Cleanup 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 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 Details
-
logger
private static final org.apache.logging.log4j.Logger logger -
debug
private static final boolean debug -
sred
Solvable reduction engine. -
red
Reduction engine. -
strategy
Strategy for pair selection. -
blas
Linear algebra engine. -
cbb
Commutative Groebner bases engine.
-
-
Constructor Details
-
SolvableGroebnerBaseAbstract
public SolvableGroebnerBaseAbstract()Constructor. -
SolvableGroebnerBaseAbstract
Constructor.- Parameters:
sred
- Solvable reduction engine
-
SolvableGroebnerBaseAbstract
Constructor.- Parameters:
pl
- pair selection strategy
-
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:
isLeftGB
in 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:
isLeftGB
in 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:
isTwosidedGB
in 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:
isTwosidedGB
in 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:
isRightGB
in 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:
isRightGB
in 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:
leftGB
in 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:
extLeftGB
in 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:
extLeftGB
in 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:
leftMinimalGB
in 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:
twosidedGB
in 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:
rightGB
in 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:
rightGB
in 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:
isLeftGB
in 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:
leftGB
in 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:
isTwosidedGB
in 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:
twosidedGB
in 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:
isRightGB
in 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:
rightGB
in 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:
isLeftReductionMatrix
in 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:
isLeftReductionMatrix
in 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.
-