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>
,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 boolean
private static final org.apache.logging.log4j.Logger
Reduction engine.final SolvableReduction
<C> Solvable reduction engine. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
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
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
Test 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 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 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:
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 List<List<GenSolvablePolynomial<C>>> leftZeroRelations(int modv, 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
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
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:
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(List<List<GenSolvablePolynomial<C>>> Z, 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
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
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 List<List<GenSolvablePolynomial<C>>> leftZeroRelationsArbitrary(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
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 List<List<GenSolvablePolynomial<C>>> rightZeroRelationsArbitrary(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 List<List<GenSolvablePolynomial<C>>> rightZeroRelationsArbitrary(int modv, 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
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)).
-