[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] [#261 Strange matrix addition] (new)

From: Ralf Hemmecke
Subject: [Axiom-developer] [#261 Strange matrix addition] (new)
Date: Wed, 01 Feb 2006 03:42:45 -0600

Adding two square matrices of different dimension should result in an error. 
Axiom returns something that looks more like a tensor product.

The implementation of + for SquareMatrix is inherited from Matrix 
(src/algebra/matrix.spad.pamphlet). Matrix inherits + from the default 
implementation in MatrixCategory (src/algebra/matcat.spad.pamphlet).
There it says
     "+": (%,%) -> %
       ++ \spad{x + y} is the sum of the matrices x and y.
       ++ Error: if the dimensions are incompatible.
and is implemented by default through:
     x + y ==
       ((r := nrows x) ^= nrows y) or ((c := ncols x) ^= ncols y) =>
         error "can't add matrices of different dimensions"
       ans := new(r,c,0)
       for i in minr(x)..maxr(x) repeat
         for j in minc(x)..maxc(x) repeat
           qsetelt_!(ans,i,j,qelt(x,i,j) + qelt(y,i,j))

I have no idea why the following code returns something of type

S d ==> SquareMatrix(d,Integer)
a2: S(2) := 1
a3: S(3) := 1
a2 + a3

forwarded from

reply via email to

[Prev in Thread] Current Thread [Next in Thread]