CELLWR(S←,F←,I←,V,n,s)
[Cell write. S← is either a sample point for a cell c in
r-dimensional space, for some r>=1, or NULL.
F← is either or a defining formula for c, or NULL. I← is
a cell index for c. V is a variable list of length r. n is a
nonnegative @beta -digit@. s is a @beta -digit@.
The cell index and dimension of c are written in the output stream.
If S←>NULL and s>0, then an exact description of the sample
point of c is written in the output stream. If S←>NULL and n>0,
a decimal approximation to the sample point of c is written
with n decimal digits following the decimal point of each coordinate.
If F←~=NULL, the defining formula of c is written. The output
buffer is emptied beforehand and afterwards.]
const NULL=0, UNDEF=-1.
safe i,M,b,b1,J,d,u,v,r.
(1) U=LIST1("U"); A=LIST1("A");
d=CELDIM(I←); AWRITE(d);
CLOUT("-cell "); OWRITE(I←);
if S←>NULL then { S1=S← ADV3(S1;M,b,J,S1);
d=PDEG(M); r=LENGTH(b);
clout(" degree="); awrite(d);
FIRST2(S1;z,z#); CLOUT(" sp time=");
CWRITE('('); AWRITE(z);
CWRITE(','); AWRITE(z#); CWRITE(')');
if n>0 then { CLOUT(" sp="); APDWR(M,J,b,n) } }
else clout(" sp unconstructed");
EMPTOB; SLMARG(5);
if s>0&S←>NULL then
{ blines(1); CLOUT("sample point coordinates (exact) =");
EMPTOB; SLMARG(10);
if PDEG(M)>1 then { CLOUT("Let A be the unique root of");
IPSW(M,U); FIRST2(J;u,v); CLOUT("between "); RNWRIT(u);
CLOUT(" and "); RNWRIT(v); EMPTOB;
CLOUT("Coordinates as elements of Q(A) are") };
b'=b; for i=1,...,r do
{ ADV(b';b1,b'); RPSW(b1,A) }; SLMARG(5) };
if F←>NULL then { CLOUT("defining formula"); emptob;
QFFWR(F←,V) }; SLMARG(0); return..