[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Number crunching in CLISP.

>>>>> "Harvey" == Harvey J Stein <hjstein@MATH.HUJI.AC.IL> writes:
Harvey> The kind of code I'm considering basically is solving
Harvey> recursive functions.  I might have something like:

(defun value (level node)
  (cond ((= level *MAX_LEVEL*) 100)
	(t (let ((p1 (complicate-expression-involving-exponentials))
		 (p2 (complicate-expression-involving-exponentials))
		 (p3 (- 1 p1 p2)))
	     (* (exp (* (aref *RATE* level) (aref *DT* level)))
		(+ (* p1 (value (+1 level) (+1 node)))
		   (* p2 (value (+1 level) node))
		   (* p3 (value (+1 level) (-1 node)))))))))

I'd say that would be at least 5* faster with CLISP than a waste-time loop.

If you are writing code from scratch you might do so with CLiCC in
mind (CL -> C compiler -- runs on CLISP).  If speed is the top
priority, and you have the right hardware try CMUCL.