CELLWL(S←,F←,I←,V,n,s,B)
[Cell write, linear. 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.
B is the r-variate integral polynomial basis of the cad.
The output buffer is emptied beforehand and afterwards.]
const NULL=0, UNDEF=-1.
safe M,b,J,d.
(1) d=CELDIM(I←); r=length(V);
CLOUT("BEGINCELL"); emptob;
clout("index"); emptob;
owrite(I←); emptob;
if S←>NULL then {
clout("BASISSIGNATURE"); emptob;
S^^=SIGNTR(r,B,S←); SGNWR(S^^); emptob };
clout("samplepoint"); emptob;
if S←>NULL then {
clout("PRIMITIVESAMPLEPOINT"); emptob;
S1=S← ADV3(S1;M,b,J,S1) }
else clout("nilsamplepoint");
EMPTOB;
if s>0&S←>NULL then APWRL(LIST3(M,b,J));
if F←>NULL then {
clout("definingformula"); emptob;
QFFWL(F←,V); emptob };
CLOUT("ENDCELL"); emptob;
blines(1); return..