OreTools[Modular][FractionFreeRightEucliean] - perform a fraction-free version of right Euclidean algorithm (usual, half-extended, and extended) modulo a prime
OreTools[Modular][RightEuclidean] - perform right Euclidean algorithm (usual, half-extended, and extended)
|
Calling Sequence
|
|
Modular[FractionFreeRightEuclidean](Poly1, Poly2, p, A, 'c1', 'c2')
Modular[RightEuclidean](Poly1, Poly2, p, A, 'c1', 'c2')
|
|
Parameters
|
|
Poly1, Poly2
|
-
|
nonzero Ore polynomials; to define an Ore polynomial, use the OrePoly structure
|
p
|
-
|
prime
|
A
|
-
|
Ore algebra; to define an Ore algebra, use the SetOreRing command
|
'c1', 'c2'
|
-
|
(optional) unevaluated names
|
|
|
|
|
Description
|
|
•
|
Modular[FractionFreeRightEuclidean](Poly1, Poly2, p, A, 'c1', 'c2') calling sequence returns a list [m, S] where m is a positive integer and S is an array with m elements storing the subresultant sequence of the first kind of Poly1 and Poly2.
|
|
The Modular[FractionFreeRightEuclidean] command requires that Poly1 and Poly2 be fraction-free, and that the commutation rule of the Ore algebra A also be fraction-free.
|
•
|
If the optional fourth argument to the FractionFreeRightEuclidean command c1 is specified, it is assigned the first co-sequence of Poly1 and Poly2 so that:
|
|
and c1[m+1] Poly2 is a least common left multiple (LCLM) of Poly1 and Poly2.
|
•
|
If the optional fifth argument to the FractionFreeRightEuclidean command c2 is specified, it is assigned the second co-sequence of Poly1 and Poly2 so that:
|
|
and c1[m+1] Poly2 = - c2[m+1] Poly1 mod p is an LCLM of Poly1 and Poly2.
|
•
|
Modular[RightEuclidean](Poly1, Poly2, p, A, 'c1', 'c2') calling sequence returns a list [m, S] where m is a positive integer and S is an array with m elements storing the right Euclidean polynomial remainder sequence of Poly1 and Poly2.
|
•
|
If the optional fourth argument to the FractionFreeRightEuclidean command c1 is specified, it is assigned the first co-sequence of Poly1 and Poly2 so that:
|
|
and c1[m+1] Poly2 is a least common left multiple (LCLM) of Poly1 and Poly2.
|
•
|
If the optional fifth argument to the Modular[RightEuclidean] command c2 is specified, it is assigned the second co-sequence of Poly1 and Poly2 so that:
|
|
and c1[m+1] Poly2 = - c2[m+1] Poly1 mod p is an LCLM of Poly1 and Poly2.
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
>
|
|
| (5) |
>
|
|
| (6) |
Check the co-sequences.
>
|
|
| (7) |
Check the LCLM.
>
|
|
>
|
|
>
|
|
| (8) |
Try fraction-free right Euclidean algorithm.
>
|
|
| (9) |
>
|
|
| (10) |
>
|
|
| (11) |
>
|
|
| (12) |
>
|
|
| (13) |
>
|
|
| (14) |
Check the co-sequences.
>
|
|
| (15) |
Check the LCLM.
>
|
|
>
|
|
>
|
|
| (16) |
|
|
References
|
|
|
Li, Z. "A subresultant theory for Ore polynomials with applications." Proc. of ISSAC'98, pp.132-139. Edited by O. Gloor. ACM Press, 1998.
|
|
|