(* SAC Rational Polynomial Definition Module. *) DEFINITION MODULE SACRPOL; FROM MASSTOR IMPORT LIST; PROCEDURE RPDIF(RL,A,B: LIST): LIST; (*Rational polynomial difference. A and B are rational polynomials in r variables, r ge 0. C=A-B.*) PROCEDURE RPEMV(RL,A,BL: LIST): LIST; (*Rational polynomial evaluation, main variable. A is a rational polynomial in r variables, r gt 0. b is a rational number. C(x(1), ...,x(r-1))=A(x(1), ...,x(r-1),b).*) PROCEDURE RPFIP(RL,A: LIST): LIST; (*Rational polynomial from integral polynomial. A is an integral polynomial in r variables, r ge 0.*) PROCEDURE RPIMV(RL,A: LIST): LIST; (*Rational polynomial integration, main variable. A is a rational polynomial in r variables, r gt 0. B is the integral of A with respect to its main variable. The constant of integration is 0.*) PROCEDURE RPNEG(RL,A: LIST): LIST; (*Rational polynomial negative. A is an rational polynomial in r variables, r ge 0. B=-A.*) PROCEDURE RPPROD(RL,A,B: LIST): LIST; (*Rational polynomial product. A and B are rational polynomials in r variables, r ge 0. C=A*B.*) PROCEDURE RPQR(RL,A,B: LIST; VAR Q,R: LIST); (*Rational polynomial quotient and remainder. A and B are rational polynomials in r variables with B non-zero. Q and R are the unique rational polynomials such that either B divides A, Q=A/B and R=0 or else B does not divide A and A=BQ+R with DEG(R) minimal.*) PROCEDURE RPREAD( VAR RL,A,V: LIST); (*Rational polynomial read. The rational polynomial A is read from the input stream. r ge 0 is the number of variables of A and V is the variable list of A. Any number of preceding blanks are skipped.*) PROCEDURE RPRNP(RL,AL,B: LIST): LIST; (*Rational polynomial rational number product. B is a rational polynomial in r variables, r ge 0. a is a rational number. C=a*B.*) PROCEDURE RPSUM(RL,A,B: LIST): LIST; (*Rational polynomial sum. A and B are rational polynomials in r variables, r ge 0. C=A+B.*) PROCEDURE RPWRIT(RL,A,V: LIST); (*Rational polynomial write. A is a rational polynomial in r variables, r ge 0. V is a variable list for A. A is written in the output stream in external canonical form.*) END SACRPOL.