Class SolvableSyzygyAbstract<C extends GcdRingElem<C>>
java.lang.Object
edu.jas.gbufd.SolvableSyzygyAbstract<C>
- Type Parameters:
C- coefficient type
- All Implemented Interfaces:
SolvableSyzygy<C>, Serializable
- Direct Known Subclasses:
SolvableSyzygySeq
public abstract class SolvableSyzygyAbstract<C extends GcdRingElem<C>>
extends Object
implements SolvableSyzygy<C>
Syzygy abstract class for solvable polynomials. Implements Syzygy
computations and tests.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected BasicLinAlg<GenPolynomial<C>> Linear algebra engine.private static final booleanprivate static final org.apache.logging.log4j.LoggerReduction engine.final SolvableReduction<C> Solvable reduction engine. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintcompare(GenSolvablePolynomial<C> num, GenSolvablePolynomial<C> den, GenSolvablePolynomial<C> n, GenSolvablePolynomial<C> d) Comparison like SolvableLocal or SolvableQuotient.booleanisLeftOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C>[] oc) Test left Ore condition.booleanisLeftOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C> p, GenSolvablePolynomial<C> q) Is left Ore condition.booleanisLeftZeroRelation(ModuleList<C> Z, ModuleList<C> F) Test if left sysygy of modulesbooleanTest if left syzygy.booleanisRightOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C>[] oc) Test right Ore condition.booleanisRightOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C> p, GenSolvablePolynomial<C> q) Is right Ore condition.booleanisRightZeroRelation(ModuleList<C> Z, ModuleList<C> F) Test if right sysygy of modulesbooleanTest if right syzygy.abstract GenSolvablePolynomial<C>[]Left simplifier.leftZeroRelations(int modv, List<GenSolvablePolynomial<C>> F) Left syzygy for left Groebner base.Left syzygy for left module Groebner base.Left syzygy for left Groebner base.Left syzygy for arbitrary left module base.Left syzygy module from arbitrary base.rightZeroRelations(int modv, List<GenSolvablePolynomial<C>> F) Right syzygy module from Groebner base.Right syzygy for right module Groebner base.Right syzygy module from Groebner base.rightZeroRelationsArbitrary(int modv, List<GenSolvablePolynomial<C>> F) Right syzygy module from arbitrary base.Right syzygy for arbitrary base.Right syzygy module from arbitrary base.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface SolvableSyzygy
leftOreCond, leftZeroRelationsArbitrary, resolution, resolution, resolutionArbitrary, resolutionArbitrary, rightOreCond
-
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. -
blas
Linear algebra engine.
-
-
Constructor Details
-
SolvableSyzygyAbstract
public SolvableSyzygyAbstract()Constructor.
-
-
Method Details
-
leftZeroRelations
Left syzygy for left Groebner base.- Specified by:
leftZeroRelationsin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
F- a Groebner base.- Returns:
- leftSyz(F), a basis for the left module of syzygies for F.
-
leftZeroRelations
public List<List<GenSolvablePolynomial<C>>> leftZeroRelations(int modv, List<GenSolvablePolynomial<C>> F) Left syzygy for left Groebner base.- Specified by:
leftZeroRelationsin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
modv- number of module variables.F- a Groebner base.- Returns:
- leftSyz(F), a basis for the left module of syzygies for F.
-
leftZeroRelations
Left syzygy for left module Groebner base.- Specified by:
leftZeroRelationsin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
M- a Groebner base.- Returns:
- leftSyz(M), a basis for the left module of syzygies for M.
-
rightZeroRelations
Right syzygy module from Groebner base.- Parameters:
F- a solvable polynomial list, a Groebner base.- Returns:
- syz(F), a basis for the module of right syzygies for F.
-
rightZeroRelations
public List<List<GenSolvablePolynomial<C>>> rightZeroRelations(int modv, List<GenSolvablePolynomial<C>> F) Right syzygy module from Groebner base.- Parameters:
modv- number of module variables.F- a solvable polynomial list, a Groebner base.- Returns:
- syz(F), a basis for the module of right syzygies for F.
-
rightZeroRelations
Right syzygy for right module Groebner base.- Parameters:
M- a Groebner base.- Returns:
- rightSyz(M), a basis for the right module of syzygies for M.
-
isLeftZeroRelation
public boolean isLeftZeroRelation(List<List<GenSolvablePolynomial<C>>> Z, List<GenSolvablePolynomial<C>> F) Test if left syzygy.- Specified by:
isLeftZeroRelationin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
Z- list of sysygies.F- a polynomial list.- Returns:
- true, if Z is a list of left syzygies for F, else false.
-
isRightZeroRelation
public boolean isRightZeroRelation(List<List<GenSolvablePolynomial<C>>> Z, List<GenSolvablePolynomial<C>> F) Test if right syzygy.- Specified by:
isRightZeroRelationin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
Z- list of sysygies.F- a polynomial list.- Returns:
- true, if Z is a list of right syzygies for F, else false.
-
isLeftZeroRelation
Test if left sysygy of modules- Specified by:
isLeftZeroRelationin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
Z- list of sysygies.F- a module list.- Returns:
- true, if Z is a list of left syzygies for F, else false.
-
isRightZeroRelation
Test if right sysygy of modules- Specified by:
isRightZeroRelationin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
Z- list of sysygies.F- a module list.- Returns:
- true, if Z is a list of right syzygies for F, else false.
-
leftZeroRelationsArbitrary
public List<List<GenSolvablePolynomial<C>>> leftZeroRelationsArbitrary(List<GenSolvablePolynomial<C>> F) Left syzygy module from arbitrary base.- Specified by:
leftZeroRelationsArbitraryin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
F- a solvable polynomial list.- Returns:
- syz(F), a basis for the module of left syzygies for F.
-
leftZeroRelationsArbitrary
Left syzygy for arbitrary left module base.- Specified by:
leftZeroRelationsArbitraryin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
M- an arbitrary base.- Returns:
- leftSyz(M), a basis for the left module of syzygies for M.
-
rightZeroRelationsArbitrary
public List<List<GenSolvablePolynomial<C>>> rightZeroRelationsArbitrary(List<GenSolvablePolynomial<C>> F) Right syzygy module from arbitrary base.- Specified by:
rightZeroRelationsArbitraryin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
F- a solvable polynomial list.- Returns:
- syz(F), a basis for the module of right syzygies for F.
-
rightZeroRelationsArbitrary
public List<List<GenSolvablePolynomial<C>>> rightZeroRelationsArbitrary(int modv, List<GenSolvablePolynomial<C>> F) Right syzygy module from arbitrary base.- Specified by:
rightZeroRelationsArbitraryin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
modv- number of module variables.F- a solvable polynomial list.- Returns:
- syz(F), a basis for the module of right syzygies for F.
-
rightZeroRelationsArbitrary
Right syzygy for arbitrary base.- Parameters:
M- an arbitrary base.- Returns:
- rightSyz(M), a basis for the right module of syzygies for M.
-
isLeftOreCond
public boolean isLeftOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C>[] oc) Test left Ore condition.- Specified by:
isLeftOreCondin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
a- solvable polynomialb- solvable polynomialoc- = [p,q] two solvable polynomials- Returns:
- true if p*a = q*b, else false
-
isLeftOreCond
public boolean isLeftOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C> p, GenSolvablePolynomial<C> q) Is left Ore condition. Test left Ore condition of two solvable polynomials.- Parameters:
a- solvable polynomialb- solvable polynomialp- solvable polynomialq- solvable polynomial- Returns:
- true, if p*a = q*b, else false
-
isRightOreCond
public boolean isRightOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C>[] oc) Test right Ore condition.- Specified by:
isRightOreCondin interfaceSolvableSyzygy<C extends GcdRingElem<C>>- Parameters:
a- solvable polynomialb- solvable polynomialoc- = [p,q] two solvable polynomials- Returns:
- true if a*p = b*q, else false
-
isRightOreCond
public boolean isRightOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C> p, GenSolvablePolynomial<C> q) Is right Ore condition. Test right Ore condition of two solvable polynomials.- Parameters:
a- solvable polynomialb- solvable polynomialp- solvable polynomialq- solvable polynomial- Returns:
- true, if a*p = b*q, else false
-
leftSimplifier
public abstract GenSolvablePolynomial<C>[] leftSimplifier(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b) Left simplifier. Method of Apel & Lassner (1987).- Parameters:
a- solvable polynomialb- solvable polynomial- Returns:
- [p,q] with a/b = p/q and q is minimal and monic
-
compare
public int compare(GenSolvablePolynomial<C> num, GenSolvablePolynomial<C> den, GenSolvablePolynomial<C> n, GenSolvablePolynomial<C> d) Comparison like SolvableLocal or SolvableQuotient.- Parameters:
num- SolvablePolynomial.den- SolvablePolynomial.n- SolvablePolynomial.d- SolvablePolynomial.- Returns:
- sign((num/den)-(n/d)).
-