Hello all,

I have encountered a curious bug in the EigenConditionNumbers
procedure. In particular for a pencil pencil (A,B) with B singular,
and precision higher than hardware precision.

The following code for Digits=40 produces a Float(undefined) rather
than a Float(infinity) for the infinite eigenvalue, but an alpha and
beta that will produce an infinite eigenvalue.

Digits:=trunc(evalhf(Digits));
A:=Matrix([[1,0],[0,2]]);
B:=Matrix([[1,0],[0,0]]);
(alpha,beta,values):=LinearAlgebra:-EigenConditionNumbers(A,B,output=['alpha','beta','values']);
Digits:=40;
(alpha,beta,values):=LinearAlgebra:-EigenConditionNumbers(A,B,output=['alpha','beta','values']);

Output:

>Digits:=trunc(evalhf(Digits));
Digits := 15

> A:=Matrix([[1,0],[0,2]]):
> B:=Matrix([[1,0],[0,0]]):
>
(alpha,beta,values):=LinearAlgebra:-EigenConditionNumbers(A,B,output=['alpha','beta','values']);
alpha, beta, values :=

[1. + 0. I] [1.] [1. + 0. I                ]
[            ],[   ],[                            ]
[2. + 0. I] [0.] [Float(infinity) + 0. I]

> Digits:=40;
Digits := 40

>
(alpha,beta,values):=LinearAlgebra:-EigenConditionNumbers(A,B,output=['alpha','beta','values']);
alpha, beta, values :=

[1. + 0. I] [1.] [1. + 0. I                      ]
[            ],[   ],[                                  ]
[2. + 0. I] [0.] [Float(undefined) + 0. I]

Best Regards

Piers Lawrence

Department of Applied Mathematics
The University of Western Ontario


Please Wait...