Fix bug #4036: prederror affects bigfloat calculations
commitcc2ac0e504a1078ac5c0ceeec890331a1465239f
authorKris Katterjohn <katterjohn@gmail.com>
Mon, 31 Oct 2022 18:51:45 +0000 (31 14:51 -0400)
committerKris Katterjohn <katterjohn@gmail.com>
Mon, 31 Oct 2022 18:51:45 +0000 (31 14:51 -0400)
tree2e48b4af2a57fef33b41719e70e6ba51363ec9e3
parent113ee377d0806b9b53061258e80c0a9a32943d7c
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.
ChangeLog
src/numeric.lisp