Fix bug #4036: prederror affects bigfloat calculations
MEVALP has been used for evaluations in some of the numerical
functions in the BIGFLOAT package. This is wrong because MEVALP
is for evaluating predicates, and so prederror affects its
behavior:
(%i1) inverse_jacobi_cn (1.0b0 * %i, 2);
(%o1) 2.
037975073056735b0-3.
933086691879947b0*%i
(%i2) prederror : true$
(%i3) inverse_jacobi_cn (1.0b0 * %i, 2);
Unable to evaluate predicate (-1.
722546424198833b-16*%i)-1.
414213562373095b0
-- an error. To debug this try: debugmode(true);
Now MEVAL is used instead of MEVALP. When prederror was false,
MEVALP was (eventually) just returning the result of MEVAL in
these cases anyway.
src/numeric.lisp was introduced in commit
99efec20 in 2009, and
it included most of the existing calls to MEVALP at that time.
No problems with the test suite or share test suite.