OreTools
Quotient
compute the right or left quotient of two Ore polynomials
Remainder
compute the right or left remainder of two Ore polynomials
Calling Sequence
Parameters
Description
Examples
Quotient['right'](Poly1, Poly2, A, 'R')
Quotient(Poly1, Poly2, A, 'R')
Quotient['left'](Poly1, Poly2, A, 'R')
Remainder['right'](Poly1, Poly2, A, 'Q')
Remainder(Poly1, Poly2, A, 'Q')
Remainder['left'](Poly1, Poly2, A, 'Q')
Poly1
-
Ore polynomial; to define an Ore polynomial, use the OrePoly structure.
Poly2
nonzero Ore polynomial; to define an Ore polynomial, use the OrePoly structure.
A
Ore algebra; to define an Ore algebra, use the SetOreRing function.
Q, R
(optional) unevaluated names.
The Quotient['right'](Poly1, Poly2, A) or Quotient(Poly1, Poly2, A) calling sequence returns the right quotient Q of Poly1 and Poly2 such that:
Poly1=Q⁢Poly2+R
where the degree of the right remainder R is less than that of Poly2.
If the fourth argument 'R' is specified, it is assigned the right remainder defined above.
The Quotient['left'](Poly1, Poly2, A) calling sequence returns the right quotient Q of Poly1 and Poly2 such that:
Poly1=Poly2⁢Q+R
where the degree of the left remainder R is less than that of Poly2.
If the fourth argument 'R' is specified, it is assigned the left remainder defined above.
The Remainder['right'](Poly1, Poly2, A) or Remainder(Poly1, Poly2, A) calling sequence returns the right remainder R of Poly1 and Poly2 such that:
where the degree of R is less than that of Poly2 and Q is the right quotient.
If the fourth argument 'Q' is specified, it is assigned the right quotient defined above.
The Remainder['left'](Poly1, Poly2, A) calling sequence returns the left remainder R of Poly1 and Poly2 such that:
where the degree of R is less than that of Poly2 and Q is the left quotient.
with⁡OreTools:
A≔SetOreRing⁡x,differential
A≔UnivariateOreRing⁡x,differential
Poly1≔OrePoly⁡1x,0,xx+1,x2x+2
Poly2≔OrePoly⁡x,x+1x,x
R1≔Remainderright⁡Poly1,Poly2,A
R1≔OrePoly⁡x2+4⁢x+2x⁢x+1⁢x+2,−x4−x2−2⁢x−1x+2⁢x2
R2≔Remainder⁡Poly1,Poly2,A
R2≔OrePoly⁡x2+4⁢x+2x⁢x+1⁢x+2,−x4−x2−2⁢x−1x+2⁢x2
Minus⁡R1,R2
OrePoly⁡0
R3≔Remainderleft⁡Poly1,Poly2,A
R3≔OrePoly⁡5⁢x9+40⁢x8+151⁢x7+287⁢x6+302⁢x5+193⁢x4+58⁢x3−30⁢x2−32⁢x−8x3⁢x+13⁢x+24,−x8+6⁢x7+13⁢x6+22⁢x5+23⁢x4+12⁢x3+x2−8⁢x−4x+12⁢x+23⁢x2
R≔Remainderright⁡Poly1,Poly2,A,Q
R≔OrePoly⁡x2+4⁢x+2x⁢x+1⁢x+2,−x4−x2−2⁢x−1x+2⁢x2
Q
OrePoly⁡−x2+x+1x⁢x+1⁢x+2,xx+2
Minus⁡Poly1,Add⁡Multiply⁡Q,Poly2,A,R
R≔Remainderleft⁡Poly1,Poly2,A,Q
R≔OrePoly⁡5⁢x9+40⁢x8+151⁢x7+287⁢x6+302⁢x5+193⁢x4+58⁢x3−30⁢x2−32⁢x−8x3⁢x+13⁢x+24,−x8+6⁢x7+13⁢x6+22⁢x5+23⁢x4+12⁢x3+x2−8⁢x−4x+12⁢x+23⁢x2
OrePoly⁡−4⁢x2+5⁢x+2x+1⁢x+22⁢x,xx+2
Minus⁡Poly1,Add⁡Multiply⁡Poly2,Q,A,R
B≔SetOreRing⁡x,shift
B≔UnivariateOreRing⁡x,shift
Q≔Quotient⁡Poly1,Poly2,B
Q≔OrePoly⁡1x+12,x2x+2⁢x+1
Q≔Quotientright⁡Poly1,Poly2,B,R
R
OrePoly⁡2⁢x+1x⁢x+12,−x4+x3+x+2x+2⁢x⁢x+1
Minus⁡Poly1,Add⁡Multiply⁡Q,Poly2,B,R
Q≔Quotientleft⁡Poly1,Poly2,B
Q≔OrePoly⁡1x−1⁢x−22,x−2x
Q≔Quotientleft⁡Poly1,Poly2,B,R
OrePoly⁡x3−6⁢x2+8⁢x−4x⁢x−1⁢x−22,−x5−4⁢x4+5⁢x3−2⁢x2+x+1x2⁢x−12
Minus⁡Poly1,Add⁡Multiply⁡Poly2,Q,B,R
See Also
OreTools/Add
OreTools/Euclidean
OreTools/Multiply
OreTools/OreAlgebra
OreTools/OrePoly
OreTools[SetOreRing]
Download Help Document