```(* ----------------------------------------------------------------------------
* \$Id: RRINT.md,v 1.1 1994/03/11 15:21:50 pesch Exp \$
* ----------------------------------------------------------------------------
* This file is part of MAS.
* ----------------------------------------------------------------------------
* Copyright (c) 1993 Universitaet Passau
* ----------------------------------------------------------------------------
* \$Log: RRINT.md,v \$
* Revision 1.1  1994/03/11  15:21:50  pesch
* Counting real roots of multivariate polynomials, Diplomarbeit F. Lippold
*
* ----------------------------------------------------------------------------
*)

DEFINITION MODULE RRINT;
(* Real Root Integral Definition Module *)

(* Import lists and declarations *)

FROM MASSTOR IMPORT LIST;

CONST rcsid = "\$Id: RRINT.md,v 1.1 1994/03/11 15:21:50 pesch Exp \$";
CONST copyright = "Copyright (c) 1993 Universitaet Passau";

PROCEDURE RRIPIQ(c: LIST; VAR A,a: LIST);
(* Real root integral polynomial integral quotient.
A is an integral polynomial. a and c are nonzero integers. New values for
A and a are computed such that the equation A/a := (1/c)*(A/a) holds. If a
and the content of A have gcd 1 then this is also true for the result. *)

PROCEDURE RRIPQSUM(B,b,c: LIST; VAR A,a: LIST);
(* Real root integral polynomial quotient sum.
A and B are integral polynomials. a,b and c are non zero integers.
New values for A and a are computed such that the equation
A/a := A/a + c*(B/b) holds. If b and the content of B have gcd 1
and a and the content of A have gcd 1 then the new integral polynomial
A has gcd 1 with the new value of a. *)

PROCEDURE RRINFORM(G,R: LIST; VAR a,NF: LIST);
(* Real root integral normal form.
G reduced integral groebner basis of a nontrivial zerodimensional ideal,
R is the set of reduced terms. NF is a list of entries (u,ut,ua,up) with:
u is an element of R * R, RRREDTEST(G,u,_,ut), up is an integral polynomial
and ua is an integer such that up/ua is the normal form of u wrt G.
a is the lcm of all integers ua in NF. The elements of NF are sorted with
respect to the actual termorder in decreasing order of the first entry. *)

PROCEDURE RRISTRCONST(G,R: LIST; VAR U,a,beta: LIST);
(* Real root integral structure constants.
G reduced integral groebner basis of a nontrivial zerodimensional ideal,
R the set of reduced terms. beta is the integral matrix of combined
structure constants beta[u,v] wrt the basis a*R with u from U = R * R and
v from R. U and the rows of the matrix beta are sorted with respect to the
actual termorder in increasing order. *)

PROCEDURE RRIVARMATRICES(G,R,U,beta: LIST; VAR al,L: LIST);
(* Real root integral multiplication matrices of variables.
G reduced integral groebner basis  of a nontrivial zerodimensional ideal.
R is the set of reduced terms in increasing order, U= R * R and beta is the
set of combined structure constants wrt c*R for some nonzero integer c.
al=(a(1),...,a(n)) is a list of integers and L is a list of entries of the
form (1,M(i)) and M(i) is the matrix of multiplication with a(i)*X(i) wrt
c*R. *)

PROCEDURE RRIPOLMATRIX(R,h,f,fl: LIST; VAR Mh,L: LIST);
(* Real root integral polynomial matrix.
R is the set of reduced terms in increasing order,
h is a polynomial of domain D, f is a positive integer, fl=(f(1),...,f(n))
is a list of positive integers, L contains nonempty lists L(i) of the form
j(1),M(1),j(2),M(2),...,j(k),M(k) with 1=j(1)<j(2)<...<j(k) and M(l) is the
integral matrix of multiplikation with (f*f(i)*X(i))**j(l) for the variable
X(i). L is extended with new calculated matrices.
If d(i) is the maximal degree in the variable X(i) and d is the maximal
total degree of the terms of the polynomial h, then Mh is the integral
matrix of multiplication with (f**d)*(f(1)**d(1))*...*(f(1)**d(1)) * h. *)

PROCEDURE RRIQUADFORM(R,U,beta,Mh: LIST): LIST;
(* Real root integral quadratic form.
R is the set of reduced terms in increasing order, U = R * R and beta is
the set of integral combined structure constants wrt a*R for some nonzero
integer a. Mh is the integral matrix of multiplication with c*h for some
positive constant c represented columnwise. The matrix Q = (q(i,j)) with
q(i,j) = tr(M(h)*M(v(i))*M(v(j)) and v(i),v(j) from a*R is computed. *)

PROCEDURE RRICOUNT(G,H,v,tf: LIST): LIST;
(* Real root integral count.
G is an integral reduced groebner basis of a zerodimensional ideal I,
H is a list of polynomials of length s. v is a vector of signs with length
not greater than s. tf is the trace-flag.
ZNL is a list of pairs (z,n) with n is an element of {-1,0,+1}**s and z > 0
is the number of real zeroes of I wrt the sign condition n for the elements
of H. ZNL is sorted wrt the invers lexicographical order of the n. If there
does not exist any real zero or a zero satisfiing the sign condition v,
then the empty list is returned. *)

END RRINT.

(* -EOF- *)```