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>>
blas
Linear algebra engine.GroebnerBaseAbstract<C>
cbb
Commutative Groebner bases engine.Reduction<C>
red
Reduction engine.SolvableReduction<C>
sred
Solvable reduction engine.PairList<C>
strategy
Strategy 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 int
cancel()
Cancel ThreadPool.int
commonZeroTest(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.SolvableExtendedGB<C>
extRightGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Solvable Extended Groebner base using critical pair class.SolvableExtendedGB<C>
extRightGB(java.util.List<GenSolvablePolynomial<C>> F)
Solvable Extended Groebner base using critical pair class.boolean
isLeftGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base test.boolean
isLeftGB(int modv, java.util.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
isLeftGB(java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base test.boolean
isLeftGB(java.util.List<GenSolvablePolynomial<C>> F, boolean b)
Left Groebner base test.boolean
isLeftGBidem(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base idempotence test.boolean
isLeftGBsimple(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base test.boolean
isLeftReductionMatrix(SolvableExtendedGB<C> exgb)
Test if left reduction matrix.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.boolean
isRightGB(int modv, java.util.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
isRightGB(java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base test.boolean
isRightGBidem(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base idempotence test.boolean
isRightGBidem(java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base idempotence test.boolean
isTwosidedGB(int modv, java.util.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
isTwosidedGB(java.util.List<GenSolvablePolynomial<C>> Fp)
Twosided Groebner base test.boolean
isTwosidedGBidem(int modv, java.util.List<GenSolvablePolynomial<C>> F)
Twosided Groebner base idempotence test.boolean
isTwosidedGBidem(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.void
terminate()
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:
isLeftGB
in 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:
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
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:
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
public boolean isTwosidedGB(int modv, java.util.List<GenSolvablePolynomial<C>> Fp)
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
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:
isRightGB
in 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:
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
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:
leftGB
in 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:
extLeftGB
in 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:
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
public java.util.List<GenSolvablePolynomial<C>> leftMinimalGB(java.util.List<GenSolvablePolynomial<C>> Gp)
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
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:
twosidedGB
in 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:
rightGB
in 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:
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
public SolvableExtendedGB<C> extRightGB(java.util.List<GenSolvablePolynomial<C>> F)
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
public SolvableExtendedGB<C> extRightGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
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
public boolean isLeftGB(ModuleList<C> M)
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
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:
leftGB
in 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:
isTwosidedGB
in 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:
twosidedGB
in 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:
isRightGB
in 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:
rightGB
in 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:
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(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:
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
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.
-
-