Overview of the OreTools Package
Calling Sequence
Description
List of OreTools Package Commands
List of OreTools Subpackages
Examples
References
OreTools:-command(arguments)
command(arguments)
Pseudo-linear algebra (also known as Ore algebra) is the study of common properties and common mathematical abstraction of linear functional equations such as differential and difference equations. The objects of study in pseudo-linear algebra are skew polynomials, which represent single equations, and pseudo-linear operators, which represent systems.
Algebraic algorithms have been generalized to arbitrary pseudo-linear equations. This includes algorithms to:
- Uncouple systems of linear functional equations
- Construct the minimal annihilator
- Solve the accurate integration problem
- Find the d'Alembertian solution of linear functional equations
The OreTools package is designed to perform the basic arithmetic in Ore algebra. The routines are classified as follows.
- Define an Ore ring: SetOreRing
- Perform basic arithmetic: Add, Minus, ScalarMultiply, Multiply, Quotient, Remainder, Euclidean, ExtendedGCD, GCD, LCM, Primitive, Content, Normalize, MonicAssociate
- Define an adjoint Ore ring and construct an adjoint Ore polynomial: AdjointRing, AdjointOrePoly
- Apply an Ore operator to a given expression: Apply
- Convert between different representations by functions in the submodule Converters: Converters:-FromOrePolyToLinearEquation, Converters:-FromLinearEquationToOrePoly, Converters:-FromOrePolyToPoly, Converters:-FromPolyToOrePoly
- Perform fraction-free computation by functions in the submodule FractionFree: FractionFree:-RightPseudoRemainder, FractionFree:-RightPseudoQuotient, FractionFree:-RightEuclidean
- Perform certain mathematical constructions by functions in the submodule MathOperations: MathOperations:-AccurateIntegration, MathOperations:-HilbertTwistReduction, MathOperations:-InverseOfHilbertTwistReduction
- Perform modular arithmetic by functions in the submodule Modular: Modular:-Add, Modular:-Minus, Modular:-ScalarMultiply, Modular:-Multiply, Modular:-RightRemainder, Modular:-RightQuotient, Modular:-RightPseudoRemainder, Modular:-RightPseudoQuotient, Modular:-RightEuclidean, Modular:-FractionFreeRightEuclidean, Modular:-GCRD, Modular:-LCLM
- Access properties of a given algebra by functions in the submodule Properties: Properties:-GetRingName, Properties:-GetVariable, Properties:-GetSigma, Properties:-GetSigmaInverse, Properties:-Getdelta, Properties:-GetTheta1
- Compute various coefficients and degrees of an Ore polynomial by functions in the submodule Utility: Utility:-Coefficient, Utility:-Coefficients, Utility:-LeadingCoefficient, Utility:-TrailingCoefficient, Utility:-Degree, Utility:-LowDegree, Utility:-VariableDegree
- Useful tools: Converters:-AddConversionRule, Utility:-RandOrePoly, Consequences:-MinimalEquation, Consequences:-ReducedSystem
For a brief review of pseudo-linear algebra (also known as Ore algebra), see OreAlgebra.
For a description of the OrePoly structure, which is used to represent an Ore polynomial, see OrePoly.
The main difference between the OreTools and Ore_algebra packages is that, in the OreTools package, the skew polynomial rings are defined over a field, whereas in the Ore_algebra package, the skew polynomial rings are defined over a ring.
Each command in the OreTools package can be accessed by using either the long form or the short form of the command name in the command calling sequence.
The long form, OreTools:-command, is always available. The short form can be used after loading the package.
The following is a list of available commands.
Add
AdjointOrePoly
AdjointRing
Apply
Content
Euclidean
ExtendedGCD
GCD
LCM
Minus
MonicAssociate
Multiply
Normalize
ParametricGCRD
Primitive
Quotient
Remainder
ScalarMultiply
SetOreRing
To display the help page for a particular OreTools command, see Getting Help with a Command in a Package.
The following is a list of OreTools subpackages.
Consequences
Converters
FractionFree
MathOperations
Modular
Properties
Utility
with⁡OreTools
Add,AdjointOrePoly,AdjointRing,Apply,Consequences,Content,Converters,Convertors,Euclidean,ExtendedGCD,FractionFree,GCD,LCM,MathOperations,Minus,Modular,MonicAssociate,Multiply,Normalize,ParametricGCRD,Primitive,Properties,Quotient,Remainder,ScalarMultiply,SetOreRing,Utility
Define the shift polynomial ring.
A≔SetOreRing⁡n,shift
A≔UnivariateOreRing⁡n,shift
Ore1≔OrePoly⁡−nn−1,−−5⁢n+n2+3n−1,n−3
Ore1≔OrePoly⁡−nn−1,−n2−5⁢n+3n−1,n−3
Ore2≔OrePoly⁡−n,3⁢n−n2−1,n−12
Ore2≔OrePoly⁡−n,−n2+3⁢n−1,n−12
GCDright⁡Ore1,Ore2,A
OrePoly⁡−1,1
GCDleft⁡Ore1,Ore2,A
OrePoly⁡1
LCMleft⁡Ore1,Ore2,A
OrePoly⁡−n+1n⁢n2−3⁢n+2,−2⁢n3−4⁢n2−3⁢n+3n2⁢n2−3⁢n+2,−n3−4⁢n2+n+3n2⁢n−2,1
LCMright⁡Ore1,Ore2,A
OrePoly⁡n6−20⁢n5+152⁢n4−560⁢n3+1036⁢n2−880⁢n+271⁢nn9−35⁢n8+524⁢n7−4376⁢n6+22246⁢n5−70218⁢n4+133143⁢n3−134227⁢n2+43670⁢n+18200,2⁢n⁢n7−18⁢n6+122⁢n5−388⁢n4+550⁢n3−118⁢n2−465⁢n+316n4−17⁢n3+106⁢n2−288⁢n+288⁢n5−9⁢n4+21⁢n3−5⁢n2−31⁢n+31,n⁢n8−17⁢n7+99⁢n6−206⁢n5−92⁢n4+988⁢n3−1503⁢n2+1029⁢n−299n3−8⁢n2+21⁢n−18⁢n5−4⁢n4−5⁢n3+14⁢n2−9⁢n+8⁢n−5,−2⁢n⁢n7−6⁢n6−5⁢n5+66⁢n4−49⁢n3−60⁢n2−32⁢n+46n2−4⁢n+4⁢n5+n4−11⁢n3−15⁢n2−7⁢n+5⁢n−4,1
Define the q-shift polynomial ring.
A≔SetOreRing⁡x,q,qshift
A≔UnivariateOreRing⁡x,qshift
Poly≔OrePoly⁡−q⁢1−q⁢x,1
Poly≔OrePoly⁡−q⁢−q⁢x+1,1
Apply⁡Poly,s⁡x,A
−q⁢−q⁢x+1⁢s⁡x+s⁡q⁢x
Poly1≔AdjointOrePoly⁡Poly,A
Poly1≔OrePoly⁡q⁢q⁢x−1,1
Apply⁡Poly1,s⁡x,A
q⁢q⁢x−1⁢s⁡x+s⁡q⁢x
Abramov, S. A.; Le, H. Q.; and Li, Z. "OreTools: a computer algebra library for univariate Ore polynomial rings." Technical Report CS-2003-12, School of Computer Science, University of Waterloo, 2003.
Bronstein, M., and Petkovsek, M. "An introduction to pseudo-linear algebra" Theoretical Computer Science. Vol. 157, (1996): 3-33.
Ore, O. "Theory of non-commutative polynomials." Annals of Mathematics. Vol. 34, (1933): 480-508.
See Also
diffop
help
LinearOperators
LREtools
module
Ore_algebra
OreTools/OreAlgebra
OreTools/OrePoly
UsingPackages
with
Download Help Document