Hi, does Maple's linear algebra routine MatrixInverse play nicely with the
Digits command? If I set Digits:=50 and compute a Matrix Inverse will the
arithmetic all be done to 50 digits?

Yes, it will (if the original matrix involves floats). Note that
"to 50 digits" doesn't mean that the results are accurate to 50 digits,
but rather that the calculations are done with Digits set to 50.

Hi, many thanks... I just want to test the validity of some lower
precision results with results generated by increasing levels of precision.

Would defining the matrix entries as -1.0 4.0 1.0 do the trick to force
floats?

Thanks,
R Haynes

On Mon, 29 May 2006 17:44:19 +0000, Robert Israel wrote:

Quote:

In article <pan.2006.05.29.15.19.31.155994@acadiau.ca>,
Ronald Haynes <ronald.haynes@acadiau.ca> wrote:
Hi, does Maple's linear algebra routine MatrixInverse play nicely with the
Digits command? If I set Digits:=50 and compute a Matrix Inverse will the
arithmetic all be done to 50 digits?

Yes, it will (if the original matrix involves floats). Note that
"to 50 digits" doesn't mean that the results are accurate to 50 digits,
but rather that the calculations are done with Digits set to 50.

Hi, many thanks... I just want to test the validity of some lower
precision results with results generated by increasing levels of precision.

Would defining the matrix entries as -1.0 4.0 1.0 do the trick to force
floats?

In Maple--yes. If you do this in Mathematica you're well-advised to
use a notation like N[-1,64], N[4, 64], N[1,64]. The "4.0" will be
read as a standard double-precision floating-point number.
(Mathematica doesn't have a "Digits" command--each number has its own
intrinsic precision.)

But you asked about Maple, not Mathematica, so this is just for your
general edification...

Hi, many thanks... I just want to test the validity of some lower
precision results with results generated by increasing levels of precision.

Would defining the matrix entries as -1.0 4.0 1.0 do the trick to force
floats?

In Maple--yes. If you do this in Mathematica you're well-advised to
use a notation like N[-1,64], N[4, 64], N[1,64]. The "4.0" will be
read as a standard double-precision floating-point number.
(Mathematica doesn't have a "Digits" command--each number has its own
intrinsic precision.)

But you asked about Maple, not Mathematica, so this is just for your
general edification...

Hi, upon simple testing this does not seem to work. i.e. setting
Digits:=1 and computing the inverse does not give different results from
setting Digits:=100 and computing the inverse.

Sometime ago I recall hearing that Maple was changing that way it dealt
with linear algebra routines --- maybe by using NAG routines (or similar)
under the hood? If Maple is actually using compiled routines how could
Digits:= whatever actually have an effect, I would presume the routines
would be double precision by default and not be affected by a change of
Digits (except possibly by rounding the input matrix). In my case the
matrix is integer valued. In fact only a slight modification of the
tridiag(-1,4,-1) matrix.

Hi, many thanks... I just want to test the validity of some lower
precision results with results generated by increasing levels of precision.

Would defining the matrix entries as -1.0 4.0 1.0 do the trick to force
floats?

In Maple--yes. If you do this in Mathematica you're well-advised to
use a notation like N[-1,64], N[4, 64], N[1,64]. The "4.0" will be
read as a standard double-precision floating-point number.
(Mathematica doesn't have a "Digits" command--each number has its own
intrinsic precision.)

But you asked about Maple, not Mathematica, so this is just for your
general edification...

Hi, upon simple testing this does not seem to work. i.e. setting
Digits:=1 and computing the inverse does not give different results from
setting Digits:=100 and computing the inverse.

Sometime ago I recall hearing that Maple was changing that way it dealt
with linear algebra routines --- maybe by using NAG routines (or similar)
under the hood? If Maple is actually using compiled routines how could
Digits:= whatever actually have an effect, I would presume the routines
would be double precision by default and not be affected by a change of
Digits (except possibly by rounding the input matrix). In my case the
matrix is integer valued. In fact only a slight modification of the
tridiag(-1,4,-1) matrix.

The environment variable UseHardwareFloats determines whether
floating-point operations on Arrays are done in hardware
(which is essentially double-precision) or software (with whatever
setting of Digits is current). The default value is "deduced",
meaning that hardware is used if Digits <= evalhf(Digits) (i.e.
the precision of hardware floating-point, which is 14 on my Windows
system), and software is used if Digits > evalhf(Digits). Compiled
NAG code is used for both hardware and software floating-point
computations in LinearAlgebra.