>>>>> "Henry" == Henry Baker <hbaker1 at pipeline.com> writes:
Henry> The (long standard) functions frexp & ldexp allow the
Henry> consultation and manipulation of the (binary) exponent of
Henry> IEEE floating point arithmetic.
Henry> In particular, one can utilize frexp & ldexp to
Henry> pre-condition certain computations to increase precision
Henry> and avoid exponent overflow/underflow.
Henry> The graphics community makes minor use of frexp & ldexp,
Henry> but a Google search produced _zero_ papers on the use of
Henry> these functions in large scale matrix operations.
Henry> Should I be Google searching with different terms, or has
Henry> frexp/ldexp fallen into the blind spot of numerical
Henry> mathematicians?
Henry> One example:
Henry> One can "factor out" a 2^k factor from each row and column
Henry> of a matrix (different k for each row & column); this
Henry> factoring _preserves all bits_ & is thus invertible.
I think that if you want to multiply a row or column of a matrix by
2^k, then it is much faster nowadays to do the multiplication instead
of doing a function call to ldexp for every element, especially if you
have SIMD. The multiplication is, of course, exact since you are
multiplying by a power of two.
Ray