-
Notifications
You must be signed in to change notification settings - Fork 1
/
IPRESBEZ.c,v
97 lines (78 loc) · 1.43 KB
/
IPRESBEZ.c,v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
head 1.2;
access;
symbols;
locks
saclib:1.2; strict;
comment @ * @;
1.2
date 99.03.28.19.04.34; author George; state bug;
branches;
next 1.1;
1.1
date 99.03.21.19.18.26; author George; state new;
branches;
next ;
desc
@Integral polynomial resultant, Bezout.
@
1.2
log
@Corrected Step2.
@
text
@/*======================================================================
C <- IPRESBEZ(r,A,B)
Integral polynomial resultant, Bezout.
Inputs
r : a positive beta digit.
A, B : integral polynomials of positive degrees.
Output
C : the reultant of A and B with respect to the main variable.
Method
The Bezout matrix of A and B is computed and its determinant
is computed by minors evaluation.
======================================================================*/
#include "saclib.h"
Word IPRESBEZ(r,A,B)
BDigit r;
Word A,B;
{
BDigit s;
Word Ap,Bp,M,R;
Step1: /* Interchange A and B if necessary. */
if (PDEG(A) >= PDEG(B)) {
Ap = A;
Bp = B;
s = 1; }
else {
Ap = B;
Bp = A;
s = -1; }
Step2: /* Comstruct the Bezout matrix. */
M = IPBEZM(r,Ap,Bp);
Step3: /* Compute the determinant. */
R = MAIPDME(r-1,M);
Step4: /* Adjust sign if necessary. */
if (s < 0)
R = IPNEG(r-1,R);
Return: /* Return R. */
return(R);
}
@
1.1
log
@Initial revision
@
text
@d23 1
a23 1
BDigit m,s;
d37 1
a37 1
M = IPBEZM(r,A,B);
d40 1
a40 2
m = PDEG(Ap);
R = MAIPDME(r-1,m,M);
d45 3
@