OreTools[Modular] - Maple Help

Home : Support : Online Help : Mathematics : Algebra : Skew Polynomials : OreTools : OreTools/Modular/GCRD

OreTools[Modular]

 GCRD
 compute the GCRD of two Ore polynomials modulo a prime
 LCLM
 compute the LCLM of a sequence of Ore polynomials modulo a prime

 Calling Sequence Modular[GCRD](Ore1, Ore2, p, A) Modular[LCLM](Ore1, Ore2, ..., Orek, p, A)

Parameters

 Ore1, Ore2, ... Orek - 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

Description

 • The Modular[GCRD](Ore1, Ore2, p, A) calling sequence returns the GCRD of Ore1 and Ore2 modulo the prime p.
 • The Modular[LCLM](Ore1, Ore2, ..., Orek, p, A) calling sequence returns the GCRD of Ore1, Ore2, ..., Orek modulo the prime p.

Examples

 > $\mathrm{with}\left(\mathrm{OreTools}\right):$
 > $A≔\mathrm{SetOreRing}\left(n,'\mathrm{differential}'\right)$
 ${A}{:=}{\mathrm{UnivariateOreRing}}{}\left({n}{,}{\mathrm{differential}}\right)$ (1)
 > $\mathrm{Ore1}≔'\mathrm{OrePoly}'\left(-n,n+6\right)$
 ${\mathrm{Ore1}}{:=}{\mathrm{OrePoly}}{}\left({-}{n}{,}{n}{+}{6}\right)$ (2)
 > $\mathrm{Ore2}≔'\mathrm{OrePoly}'\left(-n,n-1\right)$
 ${\mathrm{Ore2}}{:=}{\mathrm{OrePoly}}{}\left({-}{n}{,}{n}{-}{1}\right)$ (3)
 > $\mathrm{Ore3}≔'\mathrm{OrePoly}'\left(n+1,n-1\right)$
 ${\mathrm{Ore3}}{:=}{\mathrm{OrePoly}}{}\left({n}{+}{1}{,}{n}{-}{1}\right)$ (4)
 > $\mathrm{Poly1}≔\mathrm{Modular}[\mathrm{Multiply}]\left(\mathrm{Ore1},\mathrm{Ore3},541,A\right)$
 ${\mathrm{Poly1}}{:=}{\mathrm{OrePoly}}{}\left({540}{}{{n}}^{{2}}{+}{6}{,}{9}{}{n}{+}{12}{,}\left({n}{+}{6}\right){}\left({n}{+}{540}\right)\right)$ (5)
 > $\mathrm{Poly2}≔\mathrm{Modular}[\mathrm{Multiply}]\left(\mathrm{Ore2},\mathrm{Ore3},541,A\right)$
 ${\mathrm{Poly2}}{:=}{\mathrm{OrePoly}}{}\left({540}{}{{n}}^{{2}}{+}{540}{,}{2}{}{n}{+}{539}{,}{\left({n}{+}{540}\right)}^{{2}}\right)$ (6)
 > $\mathrm{Modular}[\mathrm{GCRD}]\left(\mathrm{Poly1},\mathrm{Poly2},541,A\right)$
 ${\mathrm{OrePoly}}{}\left(\frac{{n}{+}{1}}{{n}{+}{540}}{,}{1}\right)$ (7)
 > $\mathrm{Modular}[\mathrm{LCLM}]\left(\mathrm{Poly1},\mathrm{Poly2},\mathrm{Ore1},541,A\right)$
 ${\mathrm{OrePoly}}{}\left(\frac{{540}{}{{n}}^{{6}}{+}{531}{}{{n}}^{{5}}{+}{37}{}{{n}}^{{4}}{+}{227}{}{{n}}^{{3}}{+}{468}{}{{n}}^{{2}}{+}{95}{}{n}{+}{456}}{{{n}}^{{6}}{+}{24}{}{{n}}^{{5}}{+}{187}{}{{n}}^{{4}}{+}{511}{}{{n}}^{{3}}{+}{177}{}{{n}}^{{2}}{+}{181}{}{n}{+}{1}}{,}\frac{{2}{}{{n}}^{{6}}{+}{38}{}{{n}}^{{5}}{+}{168}{}{{n}}^{{4}}{+}{405}{}{{n}}^{{3}}{+}{438}{}{{n}}^{{2}}{+}{101}{}{n}{+}{195}}{{{n}}^{{6}}{+}{24}{}{{n}}^{{5}}{+}{187}{}{{n}}^{{4}}{+}{511}{}{{n}}^{{3}}{+}{177}{}{{n}}^{{2}}{+}{181}{}{n}{+}{1}}{,}\frac{{519}{}{{n}}^{{5}}{+}{169}{}{{n}}^{{4}}{+}{97}{}{{n}}^{{3}}{+}{68}{}{{n}}^{{2}}{+}{439}{}{n}{+}{267}}{{{n}}^{{6}}{+}{24}{}{{n}}^{{5}}{+}{187}{}{{n}}^{{4}}{+}{511}{}{{n}}^{{3}}{+}{177}{}{{n}}^{{2}}{+}{181}{}{n}{+}{1}}{,}\frac{{539}{}{{n}}^{{5}}{+}{523}{}{{n}}^{{4}}{+}{88}{}{{n}}^{{3}}{+}{396}{}{{n}}^{{2}}{+}{200}{}{n}{+}{510}}{{{n}}^{{5}}{+}{18}{}{{n}}^{{4}}{+}{79}{}{{n}}^{{3}}{+}{37}{}{{n}}^{{2}}{+}{496}{}{n}{+}{451}}{,}{1}\right)$ (8)

References

 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.
 Li, Z., and Nemes, I. "A modular algorithm for computing greatest common right divisors of Ore polynomials." Proc. of ISSAC'97, pp. 282-289. Edited by W. Kuechlin. ACM Press, 1997.