login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Submitted by : (unknown) at: 2007-11-17T22:02:23-08:00 (9 years ago)
Name :
Axiom Version :
Category : Severity : Status :
Optional subject :  
Optional comment :

From functions's declaration:

    UpTriBddDenomInv: (M,R) -> M
      ++ UpTriBddDenomInv(B,d) returns M, where
      ++ B is a non-singular upper triangular matrix and d is an
      ++ element of R such that \spad{M = d * inv(B)} has entries in R.

Here, it's false, but may be use another error message

axiom
a:=matrix ([[1,2],[0,9]])

\label{eq1}\left[ 
\begin{array}{cc}
1 & 2 
\
0 & 9 
(1)
Type: Matrix(Integer)
axiom
inverse(a)

\label{eq2}\left[ 
\begin{array}{cc}
1 & -{2 \over 9}
\
0 &{1 \over 9}
(2)
Type: Union(Matrix(Fraction(Integer)),...)
axiom
)expose TriangularMatrixOperations
TriangularMatrixOperations is now explicitly exposed in frame initial UpTriBddDenomInv(a,9)

\label{eq3}\left[ 
\begin{array}{cc}
9 & - 2 
\
0 & 1 
(3)
Type: Matrix(Integer)
axiom
UpTriBddDenomInv(a,7)
>> Error detected within library code: (1 . failed) cannot be coerced to mode (Integer)

axiom
a:=matrix ([[1,2],[0,9]])

\label{eq4}\left[ 
\begin{array}{cc}
1 & 2 
\
0 & 9 
(4)
Type: Matrix(Integer)
axiom
a:=transpose(a)

\label{eq5}\left[ 
\begin{array}{cc}
1 & 0 
\
2 & 9 
(5)
Type: Matrix(Integer)
axiom
inverse(a)

\label{eq6}\left[ 
\begin{array}{cc}
1 & 0 
\
-{2 \over 9}&{1 \over 9}
(6)
Type: Union(Matrix(Fraction(Integer)),...)
axiom
LowTriBddDenomInv(a,9)

\label{eq7}\left[ 
\begin{array}{cc}
9 & 0 
\
- 2 & 1 
(7)
Type: Matrix(Integer)
axiom
LowTriBddDenomInv(a,7)
>> Error detected within library code: (1 . failed) cannot be coerced to mode (Integer)

what's wrong with that? --unknown, Fri, 01 Jul 2005 03:05:23 -0500 reply
From the package:
  ++ This package provides functions that compute "fraction-free"
  ++ inverses of upper and lower triangular matrices over a integral
  ++ domain. By "fraction-free inverse" we mean the following:
  ++ given a matrix B with entries in R and an element d of R such that
  ++ d* inv(B) also has entries in R, we return d * inv(B).

So if you enter B and d such that d * inv(B) does not have entries in R, it is an error. The package is for internal use (that why it is not exposed) where d is always divisible by the determinant of B.

I know it is false but... --unknown, Sun, 10 Jul 2005 10:02:41 -0500 reply
But I don't like computer error. I prefer some mathematical message for example:
d is not an element of R such that \spad{M = d * inv(B)} has entries in R.

Severity: normal => wishlist




  Subject:   Be Bold !!
  ( 13 subscribers )  
Please rate this page: