MODULE MANINP;
% Author: James H. Davenport.
FLUID '(INTVAR);
SYMBOLIC PROCEDURE FINDMANINPARM PLACES;
BEGIN
SCALAR SQRTS,VARS,U;
SQRTS:=SQRTSINPLACES PLACES;
LOOP:
IF NULL SQRTS THEN RETURN NIL;
VARS:=GETVARIABLES SIMP ARGOF CAR SQRTS;
INNERLOOP:
IF NULL VARS
THEN <<
SQRTS:=CDR SQRTS;
GO TO LOOP >>;
U:=CAR VARS;
VARS:=CDR VARS;
IF U EQ INTVAR
THEN GO TO INNERLOOP;
IF ATOM U
THEN RETURN U;
IF CAR U EQ 'SQRT
THEN << U:=SIMP ARGOF U;
VARS:=VARSINSF(NUMR U,VARSINSF(DENR U,VARS));
GO TO INNERLOOP >>;
INTERR "Unrecognised differentiation candidate"
END;
ENDMODULE;
END;