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

# Edit detail for #173 (1 . failed) cannot be coerced to mode (Integer) in TriangularMatrixOperations revision 2 of 2

 1 2 Editor: test1 Time: 2014/04/23 19:10:36 GMT+0 Note:

added:

From test1 Wed Apr 23 19:10:36 +0000 2014
From: test1
Date: Wed, 23 Apr 2014 19:10:36 +0000
Subject:
Message-ID: <20140423191036+0000@axiom-wiki.newsynthesis.org>

Severity: normal => wishlist



 Submitted by : (unknown) at: 2007-11-17T22:02:23-08:00 (12 years ago) Name : Axiom Version : default friCAS-20090114 Axiom-20050901 OpenAxiom-20091012 OpenAxiom-20110220 OpenAxiom-Release-141 Category : Axiom Aldor Interface Axiom Compiler Axiom Library Axiom Interpreter Axiom Documentation Axiom User Interface building Axiom from source lisp system MathAction Doyen CD Reduce Axiom on Windows Axiom on Linux Severity : critical serious normal minor wishlist Status : open closed rejected not reproducible fix proposed fixed somewhere duplicate need more info 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]]) (1)
Type: Matrix(Integer)
axiom
inverse(a) (2)
Type: Union(Matrix(Fraction(Integer)),...)
axiom
)expose TriangularMatrixOperations
TriangularMatrixOperations is now explicitly exposed in frame
initial
UpTriBddDenomInv(a,9) (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]]) (4)
Type: Matrix(Integer)
axiom
a:=transpose(a) (5)
Type: Matrix(Integer)
axiom
inverse(a) (6)
Type: Union(Matrix(Fraction(Integer)),...)
axiom
LowTriBddDenomInv(a,9) (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