CADICP(r,S1,A;A←,s,A#,B#,B←)
[Cylindrical algebraic decomposition initial clusters precomputation.
r>=2.  S1 is a sample point of a cell in @E sup r-1@.  A is a
(possibly empty) list of integral polynomials in r variables.  Let
(M,b,I) be the representation of S1.
A←==@( A bar sub 1 ,..., A bar sub n )@, n>=0, is a list of 
those elements @A sub i@ of A such that @A sub i (b,x sub r )@ 
has positive degree.  s==@(s sub 1 ,..., s sub n )@, where
@s sub i@==@sign( A bar sub i (b,x sub r ))@.
A#==@( monic( A bar sub 1 (b,x sub r )) ,..., 
monic( A bar sub n (b,x sub r )))@, where @monic( A bar sub i
(b,x sub r ))@ is the monic associate of @A bar sub i
(b,x sub r )@.  B#==@(B sub 1 sup * ,..., 
B sub m sup * )@, m>=0, is a coarsest squarefree basis for A#.  
B←==@( B bar sub 1 ,..., B bar sub m )@, 
where @B bar sub j@ is a list in increasing order
of the indices in A# of the elements of A# divisible by 
@B sub j sup *@.]
     safe M←,b,I,A',A1,B##,B#1,A##,j,s1.
(1)  [Screen elements of A.]  FIRST3(S1;M←,b,I);  M=RPMAIP(1,M←);
     A'=A;  s=();  A#=();  A←=();  while A'~=() do 
     {  ADV(A';A1,A');  A#1=IPAFME(r,M,A1,b);
     if PDEG(A#1)>0 then 
     { s1=AFSIGN(M←,I,PLDCF(A#1));  s=COMP(s1,s);
     A#=COMP(AFPMON(1,M,A#1),A#);  A←=COMP(A1,A←) }  };
     s=INV(s);  A#=INV(A#);  A←=INV(A←).
(2)  [Basis for A#.]  B#=AFUPCB(M,A#);  B←=();
     B##=B#;  while B##~=() do {  B𡤁=();
     ADV(B##;B#1,B##);  A##=A#;  j=0;  repeat 
     { ADV(A##;A#1,A##);  j=j+1;  AFPQR(1,M,A#1,B#1;Q,R);
     if R==0 then B𡤁=COMP(j,B𡤁) } until A##==();  
     B𡤁=INV(B𡤁);  B←=COMP(B𡤁,B←)  };  B←=INV(B←);
     return..