muldiv.s
--------

History
-------
26th October 1992  J R C  Started

   |Muldiv| is a useful multiply-and-divide routine.

      muldiv (a, b, c)

gives the result

      a*b/c,

but the intermediate product is calculated at 64-bit precision, ensuring
that it does not overflow. It is derived from a version of |muldiv| by Harry
Meekings, but it throws away the remainder instead of returning it in a
fourth argument. An attempt to divide by 0 will result in SIGFPE being
raised. Overflow on the division results in the low 32 bits of the correct
value being returned.

   It is used when working with transform units in transformations: for if
|a| and |b| are in transform units, their product is given by

      muldiv (a, b, 1 << 16)

and their quotient by

      muldiv (a, 1 << 16, b)
