OreTools[Modular] - Maple Programming Help

Home : Support : Online Help : Mathematics : Algebra : Skew Polynomials : OreTools : Modular Subpackage : 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

 > with(OreTools):
 > A := SetOreRing(n, 'differential');
 ${A}{≔}{\mathrm{UnivariateOreRing}}{}\left({n}{,}{\mathrm{differential}}\right)$ (1)
 > Ore1 := 'OrePoly'(-n, n+6);
 ${\mathrm{Ore1}}{≔}{\mathrm{OrePoly}}{}\left({-}{n}{,}{n}{+}{6}\right)$ (2)
 > Ore2 := 'OrePoly'(-n, n-1);
 ${\mathrm{Ore2}}{≔}{\mathrm{OrePoly}}{}\left({-}{n}{,}{n}{-}{1}\right)$ (3)
 > Ore3 := 'OrePoly'(n+1, n-1);
 ${\mathrm{Ore3}}{≔}{\mathrm{OrePoly}}{}\left({n}{+}{1}{,}{n}{-}{1}\right)$ (4)
 > Poly1 := Modular[Multiply](Ore1, Ore3, 541, A);
 ${\mathrm{Poly1}}{≔}{\mathrm{OrePoly}}{}\left({540}{}{{n}}^{{2}}{+}{6}{,}{9}{}{n}{+}{12}{,}\left({n}{+}{6}\right){}\left({n}{+}{540}\right)\right)$ (5)
 > Poly2 := Modular[Multiply](Ore2, Ore3, 541, A);
 ${\mathrm{Poly2}}{≔}{\mathrm{OrePoly}}{}\left({540}{}{{n}}^{{2}}{+}{540}{,}{2}{}{n}{+}{539}{,}{\left({n}{+}{540}\right)}^{{2}}\right)$ (6)
 > Modular[GCRD](Poly1, Poly2, 541, A);
 ${\mathrm{OrePoly}}{}\left(\frac{{n}{+}{1}}{{n}{+}{540}}{,}{1}\right)$ (7)
 > Modular[LCLM](Poly1, Poly2, Ore1, 541, A);
 ${\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.