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;
