From: Imran
Subject: Help needed on rationalising LISP expressions
Date: 
Message-ID: <338AFCFB.2781E494@ic.ac.uk>
Does anyone know how to rationalise the following LISP expression. It's
obviously pretty convoluted in its present form and i'm sure that there
must be some way of simplifyimg it.

It was produced using GP and includs function definitions for the divide
'%' and natural logarithm 'rlog' functions.


Any help would be apprecited and please mail me rather that only posting
to the newsgroup.


thanks,



imran.




;;; CCON, CCD, CEPRIC can be any input value.

(defun rlog (arg)
	"The Protected Natural Logarithm Function"
	(values (if (= 0 arg) 0 (log (abs arg))))
)
(defun % (numerator denominator)
	"The Protected Division Function"
	(values (if (= 0 denominator) 1 (/ numerator denominator)))
)




(RLOG
 (+
  (-
   (+
    (-
     (+
      (% CCON
       (+
        (* (* CCD (* (+ 4.795001 CCD 1.4831343) (- 2.9376636 2.855144)))
CEPRIC
        )
        (RLOG (- (% CCD CCD) (% CCD CCD)))
      ))
      CCD
     )
     (+
      (RLOG
       (RLOG
        (% (RLOG (RLOG (- (+ 4.795001 CCD 1.4831343) (- CEPRIC
-2.9128158))))
         CCD
      )))
      3.7243662
      (- (* CCD CEPRIC)
       (+ (- (* CEPRIC CCD) (* CCD CEPRIC))
        (RLOG
         (- (* CCD CEPRIC)
          (*
           (- (+ CCON (% CCD CCD) -3.7014475)
            (RLOG (- (- (* CCD CEPRIC) (% CCD CCD)) (% CCD CEPRIC)))
           )
           (RLOG (- -2.419393 CCON))
        )))
        (*
         (- (+ CCON (% CCD CCD) -3.7014475)
          (* (- 2.9376636 2.855144) (- 2.9376636 2.855144))
         )
         (RLOG
          (* 2.855144
           (- (+ (RLOG (- (* CEPRIC 2.855144) (% CCD CEPRIC))) (+ CCD
CCON))
            (% CCD CCD)
    ))))))))
    (- 2.9376636 2.855144)
   )
   (+ (- 2.9376636 2.855144) 3.7243662
    (- (* CCD CEPRIC)
     (+ (+ 4.795001 CCD 1.4831343)
      (* (+ 4.795001 CCD 1.4831343) (- 2.9376636 2.855144))
      (*
       (- (+ CCON (% CCD CCD) -3.7014475)
        (RLOG (- (* (* (- -2.419393 CCON) CEPRIC) CCON) (% CCD CEPRIC)))
       )
       (RLOG (- -2.419393 CCON))
  )))))
  (+
   (- (+ (- 2.9376636 2.855144) (RLOG (% (* (* CCD CEPRIC) CCON)
CEPRIC)))
    (+ CCON 3.7243662
     (- (- (* CCD CEPRIC) (% CCD CEPRIC))
      (+ (- -2.419393 CCON)
       (RLOG
        (+ (% CCD CEPRIC) (RLOG (- (* -2.419393 CEPRIC) (% CCD CCD)))
         (*
          (- (+ CCON (% CCD (- 2.9376636 2.855144)) -3.7014475)
           (* (* (* (+ 4.795001 CCD 1.4831343) (- 2.9376636 2.855144))
CEPRIC)
            (- 2.9376636 2.855144)
          ))
          (RLOG (* 2.855144 CCON))
       )))
       (*
        (- (+ CCON (% CCD CCD) -3.7014475)
         (*
          (* (* (+ CCON (% CCD CCD) -3.7014475) (- 2.9376636 2.855144))
CEPRIC)
          (- 2.9376636 2.855144)
        ))
        (RLOG (* 2.855144 (- (* CCD CEPRIC) (+ 4.795001 CCD
1.4831343))))
   )))))
   (* 2.855144 (- (* CCD CEPRIC) CCD))
)))