[comp.sys.handhelds] The Solver

berg@cip-s03.informatik.rwth-aachen.de (AKA Solitair) (08/22/90)

Hello HP*8-hackers!  Here I have a somewhat "high-level" question.
I don't know if this has been explained before, but does anybody have
the details on how the solver exactly works?

I mean what it exactly does with the initial guesses you give it, and
how it extrapolates?  Maybe someone at HP could shed some light onto this?
(It should not be that classified, I guess :-)
--
Sincerely,                 berg%cip-s01.informatik.rwth-aachen.de@unido.bitnet
           Stephen R. van den Berg.
"I code it in 5 min, optimize it in 90 min, because it's so well optimized:
it runs in only 5 min.  Actually, most of the time I optimize programs."

jurjen@cwi.nl (Jurjen NE Bos) (08/23/90)

berg@cip-s03.informatik.rwth-aachen.de (AKA Solitair) writes:

>Hello HP*8-hackers!  Here I have a somewhat "high-level" question.
>I don't know if this has been explained before, but does anybody have
>the details on how the solver exactly works?

>I mean what it exactly does with the initial guesses you give it, and
>how it extrapolates?  Maybe someone at HP could shed some light onto this?
>(It should not be that classified, I guess :-)
>--

The solver is an incredible complex program, and it works better and more
complicated than any equivalent program I have ever seen before.

I worked a little bit on figuring out what the solver does, and I found
the following:
It will use some tricks, that work about as stated below:
Normally (if there is a sign change), it does the well-known secant method.
If all three points have the same sign, take the the zero of the parabola
that goes through those points;
If this parabola does not have a zero, take the top;
If the middle point does have a high absolute value, take the zero of the
hyperbola through the three points;
If a point is undefined, take the average between this point and the previous
one;
(And sometimes it does something else that I don't understand).

As I recall, the programmer of this (wasn't that Bill Wickes Himself?) got
a prize for this formidable piece of numeric programming art.
--
|                 | "Never imagine yourself not to be otherwise than what |
| Jurjen N.E. Bos | it might appear to others that what you were or might |
|                 | have been was not otherwise than what you had been    |
|  jurjen@cwi.nl  | would have appeared to them to be otherwise."         |