Subject: Maxima was unable to evaluate the predicate
From: Robert Dodier
Date: Sat, 14 Apr 2007 08:55:23 -0600
On 4/14/07, Albrecht Frenzel <afrenzel at 01019freenet.de> wrote:
> TD(t,h,p):=-((1188500*t+282506450)*LG(h,p)+20301957*t)/((Round(5000/p)*t+Round(1188500/p)*LG(h,p))-Round(20301957/p));
> Td(t,h):=-((1188500*t+282506450)*log(h)+20301957*t)/((5000*t+1188500)*log(h)-20301957);
> LG(x,p):=Round(log(x)*p)/p;
> Round(v):=(if (v-floor(v))>=0.5 then ceiling(v) else floor(v));
> E(t,h,p):=Td(t,h)-TD(t,h,p);
> plot3d(E(t,h,10^6), [t,-30,50], [h,0.005,1], [plot_format,gnuplot]);
As pointed out by Barton, a workaround is to postpone evaluation
of E(t,h,10^6) by quoting it.
The example will work unmodified in Maxima 5.12 (soon to be released)
because the evaluation of Boolean expressions has been changed to
make Maxima comfortable with partial evaluation of Boolean expressions.
best,
Robert Dodier