OreTools[Modular]
RightPseudoQuotient
compute the right pseudo-quotient of two Ore polynomials modulo a prime
RightPseudoRemainder
compute the right pseudo-remainder of two Ore polynomials modulo a prime
RightQuotient
compute the right quotient of two Ore polynomials modulo a prime
RightRemainder
compute the right remainder of two Ore polynomials modulo a prime
Calling Sequence
Parameters
Description
Examples
Modular[RightPseudoQuotient](Ore1, Ore2, p, A, 'm', 'R')
Modular[RightPseudoRemainder](Ore1, Ore2, p, 'm', 'Q')
Modular[RightQuotient](Ore1, Ore2, p, A, 'R')
Modular[RightRemainder](Ore1, Ore2, p, A, 'Q')
Ore1, Ore2
-
two Ore polynomials; to define an Ore polynomial, use the OrePoly structure
p
prime
A
Ore ring; to define an Ore ring, use the SetOreRing command
m, Q, R
unevaluated names
The Modular[RightPseudoQuotient](Ore1, Ore2, p, A, 'm', 'R') calling sequence computes the right pseudo-quotient of Ore1 and Ore2 modulo the prime p. If the fifth (optional) argument is present, it is assigned the multiplier. If the sixth (optional) argument is present, it is assigned the right pseudo-remainder of Ore1 and Ore2.
The Modular[RightPseudoRemainder](Ore1, Ore2, p, A, 'm', 'Q') calling sequence computes the right pseudo-remainder of Ore1 and Ore2 modulo the prime p. If the fifth (optional) argument is present, it is assigned the multiplier. If the sixth (optional) argument is present, it is assigned the right pseudo-quotient of Ore1 and Ore2.
The Modular[RightQuotient](Ore1, Ore2, p, A, ''R') calling sequence computes the right quotient of Ore1 and Ore2 modulo the prime p. If the fifth (optional) argument is present, it is assigned the right remainder of Ore1 and Ore2.
The Modular[RightRemainder](Ore1, Ore2, p, A, 'Q') calling sequence computes the right remainder of Ore1 and Ore2 modulo the prime p. If the fifth (optional) argument is present, it is assigned the right quotient of Ore1 and Ore2.
with⁡OreTools:
A≔SetOreRing⁡n,differential
A≔UnivariateOreRing⁡n,differential
Ore1≔OrePoly⁡−n,−−5⁢n+n2+3,n−3,38⁢n2−1
Ore1≔OrePoly⁡−n,−n2+5⁢n−3,n−3,38⁢n2−1
Ore2≔OrePoly⁡−n,−−5⁢n+n2+3,n−3
Ore2≔OrePoly⁡−n,−n2+5⁢n−3,n−3
ModularRightPseudoRemainder⁡Ore1,Ore2,11,A
OrePoly⁡5⁢n5+8⁢n4+3⁢n3+n2+8⁢n+3,5⁢n6+5⁢n5+10⁢n4+2⁢n3+6⁢n2+6⁢n+1
Q≔ModularRightPseudoQuotient⁡Ore1,Ore2,19,A,m,R
Q≔OrePoly⁡18⁢n+7,18⁢n+3
Check the results.
l≔ModularScalarMultiply⁡m,Ore1,19
l≔OrePoly⁡18⁢n2+13⁢n+9⁢n,18⁢n2+13⁢n+9⁢n2+14⁢n+3,n2+13⁢n+9⁢n+16,18⁢n2+6⁢n+10
r≔ModularMultiply⁡Q,Ore2,19,A
r≔OrePoly⁡n2+13⁢n+16,n3+10⁢n2+5⁢n+13,n3+10⁢n2+8⁢n+11,18⁢n+162
ModularMinus⁡ModularMinus⁡l,r,19,R,19
OrePoly⁡0
R≔ModularRightRemainder⁡Ore1,Ore2,11,A,Q
R≔OrePoly⁡5⁢n4+n3+6⁢n2+8⁢n+10n+8,5⁢n5+9⁢n4+4⁢n3+3⁢n2+4⁢n+7n+8
r≔ModularMultiply⁡Q,Ore2,11,A
r≔OrePoly⁡6⁢n4+10⁢n3+4⁢n2+6⁢n+1n+8,6⁢n5+2⁢n4+6⁢n3+5⁢n2+2n+8,n+8,5⁢n+3⁢n+8
ModularMinus⁡ModularMinus⁡Ore1,r,11,R,11
ModularRightQuotient⁡Ore1,Ore2,19,A
OrePoly⁡18⁢n+7n2+13⁢n+9,18n+16
See Also
OreTools
OreTools/Euclidean
OreTools/Modular
OreTools/OreAlgebra
OreTools/OrePoly
OreTools/RingArith
OreTools[SetOreRing]
Download Help Document