`small`- a floating point estimate of the long long precision.
`ep(p, z)`- p(z): The value of polynomial
`p`at`z`. `der(p)`- The derivative of polynomial p. The derivative is a polynomial.
`sm(x)`- max(|real x|, |imag x|).
`root(p)`- Some root of the polynomial p.

Two things can go wrong:

- dp(z)/dz = 0 and thus gives no direction.
- In this case |p(z)| decreases in about ½ of the nearby points. This logic is not yet in the code.
- The symmetry is too great
- and we travel back and forth along a ridge always in a down hill direction, but not noticing that the ground is even lower on either side of us.
This motivates the use of
`next random`which steers us a little off the otherwise optimal direction given by −dp(z)/dz. (Buridan’s Ass)

There are some interesting routines in the tests that follow the main routine:

- pfr(p)
- returns a polynomial given the set of its roots. Duplicate roots are respected.
- rnd(s) (too)
- returns a random normal deviate. Its argument caries the generator state which is of type REF RNFS and which should be initialized as (1<0, ~).
- div(n, d) (too)
- does synthetic division of polynomials. It returns quotient and remainder.
- allr(p) (too)
- Finds all roots of a polynomial repetitions replicated.

Synthetic Division code; The RC4 Algorithm; Random Normal Deviate Generator

trouble changing precision; Note the goto’s. Eigenvalues and steps towards eigenvectors. Projection as tool.