Richard,
I was not interested in any case other than linear arguments in the signum() or unit_step() functions when I started work on pw.mac.
The other posibilities are not really in scope for this project. Also my aim was to provide a way to express any piecewise function
in terms of signum() and/or unit_step(). This can be done even with the restriction to linear only arguments. I think if someone
is concerned with nonlinear arguments then I don't guarantee correct results. That was an enhancement that I knew was unnecessary
and risky and now I am being criticised for it not working in all cases. That is not my problem as it is out of scope for this
project. I think I may have allowed some scope creep to occur here. I now have to figure out how to get this back under control.
Rich
----- Original Message -----
From: "Richard Fateman" <fateman at cs.berkeley.edu>
To: "Richard Hennessy" <rvh2007 at comcast.net>
Cc: "Barton Willis" <willisb at unk.edu>; "Maxima List" <maxima at math.utexas.edu>
Sent: Saturday, December 20, 2008 10:29 AM
Subject: Re: [Maxima] pw.mac version 2.3.1
If you want to know how many real roots there are in a polynomial, you
noticed that there are exact methods in Maxima based on Sturm sequences.
You also suggested that you are concerned about floating-point numbers
in the given polynomial. Assume that they are exact, even if presented
as floats. Again, as you suggest, you can convert them to exact-looking
rational numbers and then use the exact methods. This is consistent
with the usual approach in Maxima, which is to say that if you are using
exact methods and there is a number that appears like
0.5, then it is exactly 1/2. Every floating point number can be
represented exactly as a rational, and if the user does not mean that
number, then it is the user's problem to find the right way to convey
the problem exactly to an exact method. It is not Maxima's problem to
guess how many digits of the user's input should be believed. It should
believe all of them.
If you want to keep the floating-point or bigfloat numbers around, then
I suggest you just offer to do the whole job numerically and be done
with it. Use conventional quadrature and sampling. And let someone
else's program do it.
RJF