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>>
blas
Linear algebra engine.protected Reduction<C>
red
Reduction engine.SolvableReduction<C>
sred
Solvable reduction engine.
-
Constructor Summary
Constructors Constructor Description SolvableSyzygyAbstract()
Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description int
compare(GenSolvablePolynomial<C> num, GenSolvablePolynomial<C> den, GenSolvablePolynomial<C> n, GenSolvablePolynomial<C> d)
Comparison like SolvableLocal or SolvableQuotient.boolean
isLeftOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C>[] oc)
Test left Ore condition.boolean
isLeftOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C> p, GenSolvablePolynomial<C> q)
Is left Ore condition.boolean
isLeftZeroRelation(ModuleList<C> Z, ModuleList<C> F)
Test if left sysygy of modulesboolean
isLeftZeroRelation(java.util.List<java.util.List<GenSolvablePolynomial<C>>> Z, java.util.List<GenSolvablePolynomial<C>> F)
Test if left syzygy.boolean
isRightOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C>[] oc)
Test right Ore condition.boolean
isRightOreCond(GenSolvablePolynomial<C> a, GenSolvablePolynomial<C> b, GenSolvablePolynomial<C> p, GenSolvablePolynomial<C> q)
Is right Ore condition.boolean
isRightZeroRelation(ModuleList<C> Z, ModuleList<C> F)
Test if right sysygy of modulesboolean
isRightZeroRelation(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:
leftZeroRelations
in 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:
leftZeroRelations
in 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:
leftZeroRelations
in 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:
isLeftZeroRelation
in 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:
isRightZeroRelation
in 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:
isLeftZeroRelation
in 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:
isRightZeroRelation
in 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:
leftZeroRelationsArbitrary
in 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:
leftZeroRelationsArbitrary
in 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:
rightZeroRelationsArbitrary
in 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:
rightZeroRelationsArbitrary
in 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 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:
isLeftOreCond
in 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:
isRightOreCond
in 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)).
-
-