home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0300 / CCE_0305.ZIP / CCE_0305.PD / SACPOL.DEF < prev    next >
Text File  |  1989-11-12  |  5KB  |  162 lines

  1.  
  2. (* SAC Polynomial System Definition Module. *)
  3.  
  4. DEFINITION MODULE SACPOL;
  5.  
  6.  
  7. FROM MASSTOR IMPORT LIST;
  8.  
  9.  
  10. VAR PRIME: LIST;
  11.  
  12.  
  13. PROCEDURE PBIN(AL1,EL1,AL2,EL2: LIST): LIST;
  14. (*Polynomial binomial.  a1 and a2 are elements of a coefficient ring
  15. R.  e1 and e2 are non-negative beta-integers e1 gt e2.  A is the
  16. polynomial A(x)=a1*x**e1+a2*x**e2, a univariate polynomial
  17. over R.*)
  18.  
  19.  
  20. PROCEDURE PCL(A: LIST): LIST;
  21. (*Polynomial coefficient list.  A is a non-zero polynomial.  L is the
  22. list (a(n),a(n-1), ...,a(0)) where n=DEG(A) and A(x)=a(n)*x**n+
  23. a(n-1)*x**(n-1)+ ...+a(0).*)
  24.  
  25.  
  26. PROCEDURE PDBORD(A: LIST): LIST;
  27. (*Polynomial divided by order.  A is a non-zero polynomial.  B(x)=
  28. A(x)/x**k where k is the order of A.*)
  29.  
  30.  
  31. PROCEDURE PDEG(A: LIST): LIST;
  32. (*Polynomial degree.  A is a polynomial.  n is the degree of A.*)
  33.  
  34.  
  35. PROCEDURE PDEGSV(RL,A,IL: LIST): LIST;
  36. (*Polynomial degree, specified variable.  A is a polynomial in r
  37. variables, r ge 1.  1 le i le r.  n is the degree of A in the i-th
  38. variable.*)
  39.  
  40.  
  41. PROCEDURE PDEGV(RL,A: LIST): LIST;
  42. (*Polynomial degree vector.  A is a polynomial A(x(1), ...,x(r)) in
  43. r variables.  V is the list (v(r), ...,v(1)) where v(i) is the
  44. degree of a in x(i).*)
  45.  
  46.  
  47. PROCEDURE PDPV(RL,A,IL,NL: LIST): LIST;
  48. (*Polynomial division by power of variable.  A is a polynomial in
  49. r variables.  1 le i le r and n is a beta-integer such that
  50. x sub i sup n divides A.  B eq A/x sub i sup n.*)
  51.  
  52.  
  53. PROCEDURE PFDP(RL,A: LIST): LIST;
  54. (*Polynomial from dense polynomial.  A is a dense polynomial in
  55. r variables, r ge 0.  B is the result of converting A to recursive
  56. polynomial representation.*)
  57.  
  58.  
  59. PROCEDURE PINV(RL,A,KL: LIST): LIST;
  60. (*Polynomial introduction of new variables.  A is a polynomial in r
  61. variables, r ge 0.  k ge 0.  B(y(1), ...,y(k),x(1), ...,x(r))
  62. =A(x(1), ...,x(r)).*)
  63.  
  64.  
  65. PROCEDURE PLBCF(RL,A: LIST): LIST;
  66. (*Polynomial leading base coefficient.  A is a polynomial in r
  67. variables.  a is the leading base coefficient of A.*)
  68.  
  69.  
  70. PROCEDURE PLDCF(A: LIST): LIST;
  71. (*Polynomial leading coefficient.  A is a polynomial.  a is the
  72. leading coefficient of A.*)
  73.  
  74.  
  75. PROCEDURE PMDEG(A: LIST): LIST;
  76. (*Polynomial modified degree.  A is a polynomial.  If A=0 then n=-1
  77. and otherwise n=DEG(A).*)
  78.  
  79.  
  80. PROCEDURE PMON(AL,EL: LIST): LIST;
  81. (*Polynomial monomial.  a is an element of a coefficient ring R.
  82. e is a non-negative beta-integer.  A is the polynomial
  83. A(x)=a*x**e, a univariate polynomial over R.*)
  84.  
  85.  
  86. PROCEDURE PMPMV(A,KL: LIST): LIST;
  87. (*Polynomial multiplication by power of main variable.  A is a
  88. polynomial in r variables, r ge 1.  k is a non-negative integer.
  89. B(x sub 1 , ..., x sub r ) eq A(x sub 1 , ..., x sub r ) *
  90. x sub r sup k .*)
  91.  
  92.  
  93. PROCEDURE PORD(A: LIST): LIST;
  94. (*Polynomial order.  A is a non-zero polynomial.  k is the order of A.
  95. that is, if A(x)=a(n)*x**n+ ...+a(0), then k is the smallest
  96. integer such that a(k) ne 0.*)
  97.  
  98.  
  99. PROCEDURE PRED(A: LIST): LIST;
  100. (*Polynomial reductum.  A is a polynomial.  B is the reductum of A.*)
  101.  
  102.  
  103. PROCEDURE PRT(A: LIST): LIST;
  104. (*Polynomial reciprocal transformation.  A is a non-zero polynomial.
  105. let n=DEG(A).  Then B(x)=x**n*A(1/x), where x is the main
  106. variable of A.*)
  107.  
  108.  
  109. PROCEDURE PTBCF(RL,A: LIST): LIST;
  110. (*Polynomial trailing base coefficient.  A is an r-variate polynomial,
  111. r ge 0.  a=trailing base coefficient of A.*)
  112.  
  113.  
  114. PROCEDURE PUFP(RL,A: LIST): LIST;
  115. (*Polynomial, univariate, from polynomial.  A is an r-variate
  116. polynomial, r ge 0.  B, a univariate polynomial, equals A(0, ...,0,x).*)
  117.  
  118.  
  119. PROCEDURE VCOMP(U,V: LIST): LIST;
  120. (*Vector comparison.  U=(u(1), ...,u(r)) and V=(v(1), ...,v(r))
  121. are lists of beta-integers with common length r ge 1.  If U=V
  122. then t=0.  If U is not equal to V then t=1 if u(i) le v(i) for
  123. all i and t=2 if v(i) le u(i) for all i.  Otherwise t=3.*)
  124.  
  125.  
  126. PROCEDURE VLREAD(): LIST;
  127. (*Variable list read.  V, a list of variables, is read from the input
  128. stream.  Any preceding blanks are skipped.*)
  129.  
  130.  
  131. PROCEDURE VLSRCH(VL,V: LIST): LIST;
  132. (*Variable list search.  v is a variable.  V is a list of variables
  133. (v(1), ...,v(n)), n non-negative.  If v=v(j) for some j then
  134. i=j.  Otherwise i=0.*)
  135.  
  136.  
  137. PROCEDURE VLWRIT(V: LIST);
  138. (*Variable list write.  V, a list of variables, is written in the
  139. output stream.*)
  140.  
  141.  
  142. PROCEDURE VMAX(U,V: LIST): LIST;
  143. (*Vector maximum.  U=(u(1), ...,u(r)) and V=(v(1), ...,v(r)) are
  144. lists of beta-integers with common length r ge 1.  W=(w(1), ...,
  145. w(r)) where w(i)=MAX(u(i),v(i)).*)
  146.  
  147.  
  148. PROCEDURE VMIN(U,V: LIST): LIST;
  149. (*Vector maximum.  U=(u(1), ...,u(r)) and V=(v(1), ...,v(r)) are
  150. lists of beta-integers with common length r ge 1.  W=(w(1), ...,
  151. w(r)) where w(i)=MIN(u(i),v(i)).*)
  152.  
  153.  
  154. PROCEDURE VREAD(): LIST;
  155. (*Variable read.  The variable v is read from the input stream.  Any
  156. number of preceding blanks are skipped.*)
  157.  
  158.  
  159. END SACPOL.
  160.  
  161.  
  162.