> I am thinking of extending your use of use CL
> functions for double float evaluation of trigonometric
> functions using double-float-eval to the airy function
> code in src/airy.lisp.
> It looks reasonably simple once I work out how to
> access the double-float-op hash table from outside
> trigi.lisp.
>Do you think this is a good idea?
I think this would be OK; your code might shorten
to something like
(setf (gethash '$airy_ai*double-float-op*) #'(lambda (s) ))
(defmfun simp-%airy_ai (form unused x)
(declare (ignore unused))
(oneargcheck form)
(let* ((z (simpcheck (cadr form) x)))
(cond ((double-float-eval (mop form) z))
(t (eqtest (list '(%airy_ai) z) form)))))
The function double-float-eval is supposed to handle all
the logic about when to use floating point evaluation.
One possible benefit: Currently, I think simp-%airy_ai always
applies $realpart and $imagpart to 'form'. If 'form' is
something like log(x), Maxima might ask sign questions
that in the end don't make any difference. If you switched
to double-float-eval, I think Maxima won't ask such questions.
Barton