Re: Dependence of precision on execution speed of Inverse

*To*: mathgroup at smc.vnet.net*Subject*: [mg81714] Re: Dependence of precision on execution speed of Inverse*From*: Daniel Lichtblau <danl at wolfram.com>*Date*: Tue, 2 Oct 2007 05:34:06 -0400 (EDT)*References*: <002f01c80444$97d4ebe0$8f01a8c0@moose>

Andrew Moylan wrote: > [...] > > Ah I see, thanks for your reply Daniel. So the arbitrary precision > numbers in Mathematica are each something like a struct with {a pointer > to the arbitrary precision mantissa data, the exponent, the length of > the mantissa data}; Correct. > and because each element in a matrix could in > principle have a *different* arbitrary precision, there's no way to pack > the array into a contiguous lump of memory. So there's no way around > de-referencing a lot of pointers. Also correct. > But Daniel, would you agree that for (hypothetical) *fixed* precision > (across the whole matrix) non-machine-precision matrices of numbers, it > *would* be possible to create the analogue of packed arrays and > therefore make optimised routines to run on them, analogous to the > routines that currently operate on packed arrays of machine-precision > numbers? Possibly. Except the optimality improvements might or might not actually materialize. More below. > I guess one can write a code (in C++ or such) that can invert > non-machine-precision matrices (and do other operations for which > Mathematica employs packed arrays only for machine precision numbers) > tens of times faster than Mathematica can, by combining something like > the GNU multiple precision library (http://gmplib.org) with BLAS-like > linear algebra code. > > I don't know how whether the efficiency of linear algebra at > higher-than-machine-precision affects many users, but it has come up in > my application so I am quite interested in the possibilities! The question amounts to this. How much of the relative time difference (vs. machine arithmetic linear algebra using Lapack/BLAS) is due to locality of reference for, say, dot products, and how much to software implementation of the underlying arithmetic? I do not know the answer. If a large part is from the arithmetic, then you gain but little from emulation of packing for bignums. Daniel Lichtblau Wolfram Research