Package edu.jas.gbufd
Class SolvableSyzygyAbstract<C extends GcdRingElem<C>>
- java.lang.Object
-
- edu.jas.gbufd.SolvableSyzygyAbstract<C>
-
- Type Parameters:
C- coefficient type
- All Implemented Interfaces:
SolvableSyzygy<C>,java.io.Serializable
- Direct Known Subclasses:
SolvableSyzygySeq
public abstract class SolvableSyzygyAbstract<C extends GcdRingElem<C>> extends java.lang.Object implements SolvableSyzygy<C>
Syzygy abstract class for solvable polynomials. Implements Syzygy computations and tests.- Author:
- Heinz Kredel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected BasicLinAlg<GenPolynomial<C>>blasLinear algebra engine.protected Reduction<C>redReduction engine.SolvableReduction<C>sredSolvable reduction engine.
-
Constructor Summary
Constructors Constructor Description SolvableSyzygyAbstract()Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description intcompare(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.booleanisLeftZeroRelation(ModuleList<C> Z, ModuleList<C> F)Test if left sysygy of modulesbooleanisLeftZeroRelation(java.util.List<java.util.List<GenSolvablePolynomial<C>>> Z, java.util.List<GenSolvablePolynomial<C>> F)Test if left syzygy.booleanisRightOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C>[] oc)Test right Ore condition.booleanisRightZeroRelation(ModuleList<C> Z, ModuleList<C> F)Test if right sysygy of modulesbooleanisRightZeroRelation(java.util.List<java.util.List<GenSolvablePolynomial<C>>> Z, java.util.List<GenSolvablePolynomial<C>> F)Test if right syzygy.abstract GenSolvablePolynomial<C>[]leftSimplifier(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b)Left simplifier.java.util.List<java.util.List<GenSolvablePolynomial<C>>>leftZeroRelations(int modv, java.util.List<GenSolvablePolynomial<C>> F)Left syzygy for left Groebner base.ModuleList<C>leftZeroRelations(ModuleList<C> M)Left syzygy for left module Groebner base.java.util.List<java.util.List<GenSolvablePolynomial<C>>>leftZeroRelations(java.util.List<GenSolvablePolynomial<C>> F)Left syzygy for left Groebner base.ModuleList<C>leftZeroRelationsArbitrary(ModuleList<C> M)Left syzygy for arbitrary left module base.java.util.List<java.util.List<GenSolvablePolynomial<C>>>leftZeroRelationsArbitrary(java.util.List<GenSolvablePolynomial<C>> F)Left syzygy module from arbitrary base.java.util.List<java.util.List<GenSolvablePolynomial<C>>>rightZeroRelations(int modv, java.util.List<GenSolvablePolynomial<C>> F)Right syzygy module from Groebner base.ModuleList<C>rightZeroRelations(ModuleList<C> M)Right syzygy for right module Groebner base.java.util.List<java.util.List<GenSolvablePolynomial<C>>>rightZeroRelations(java.util.List<GenSolvablePolynomial<C>> F)Right syzygy module from Groebner base.java.util.List<java.util.List<GenSolvablePolynomial<C>>>rightZeroRelationsArbitrary(int modv, java.util.List<GenSolvablePolynomial<C>> F)Right syzygy module from arbitrary base.ModuleList<C>rightZeroRelationsArbitrary(ModuleList<C> M)Right syzygy for arbitrary base.java.util.List<java.util.List<GenSolvablePolynomial<C>>>rightZeroRelationsArbitrary(java.util.List<GenSolvablePolynomial<C>> F)Right syzygy module from arbitrary base.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface edu.jas.gbufd.SolvableSyzygy
leftOreCond, leftZeroRelationsArbitrary, resolution, resolution, resolutionArbitrary, resolutionArbitrary, rightOreCond
-
-
-
-
Field Detail
-
sred
public final SolvableReduction<C extends GcdRingElem<C>> sred
Solvable reduction engine.
-
red
protected Reduction<C extends GcdRingElem<C>> red
Reduction engine.
-
blas
protected BasicLinAlg<GenPolynomial<C extends GcdRingElem<C>>> blas
Linear algebra engine.
-
-
Constructor Detail
-
SolvableSyzygyAbstract
public SolvableSyzygyAbstract()
Constructor.
-
-
Method Detail
-
leftZeroRelations
public java.util.List<java.util.List<GenSolvablePolynomial<C>>> leftZeroRelations(java.util.List<GenSolvablePolynomial<C>> F)
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 java.util.List<java.util.List<GenSolvablePolynomial<C>>> leftZeroRelations(int modv, java.util.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
public ModuleList<C> leftZeroRelations(ModuleList<C> M)
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
public java.util.List<java.util.List<GenSolvablePolynomial<C>>> rightZeroRelations(java.util.List<GenSolvablePolynomial<C>> F)
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 java.util.List<java.util.List<GenSolvablePolynomial<C>>> rightZeroRelations(int modv, java.util.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
public ModuleList<C> rightZeroRelations(ModuleList<C> M)
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(java.util.List<java.util.List<GenSolvablePolynomial<C>>> Z, java.util.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(java.util.List<java.util.List<GenSolvablePolynomial<C>>> Z, java.util.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
public boolean isLeftZeroRelation(ModuleList<C> Z, ModuleList<C> F)
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
public boolean isRightZeroRelation(ModuleList<C> Z, ModuleList<C> F)
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 java.util.List<java.util.List<GenSolvablePolynomial<C>>> leftZeroRelationsArbitrary(java.util.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
public ModuleList<C> leftZeroRelationsArbitrary(ModuleList<C> M)
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 java.util.List<java.util.List<GenSolvablePolynomial<C>>> rightZeroRelationsArbitrary(java.util.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 java.util.List<java.util.List<GenSolvablePolynomial<C>>> rightZeroRelationsArbitrary(int modv, java.util.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
public ModuleList<C> rightZeroRelationsArbitrary(ModuleList<C> M)
Right syzygy for arbitrary base.- Parameters:
M- an arbitray 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
-
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
-
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)).
-
-