![]() |
Blitz Devel : |
From: Todd Veldhuizen (tveldhui_at_[hidden])
Date: 1998-08-06 14:29:51
Forwarded message:
>From Peter.Bienstman_at_[hidden] Tue Jun 30 03:36:38 1998
From: "Peter Bienstman" <Peter.Bienstman_at_[hidden]>
To: "Todd Veldhuizen" <tveldhui_at_[hidden]>
Subject: Diagonal matrices
Date: Tue, 30 Jun 1998 09:33:59 +0100
Message-ID: <000301bda401$d42bba40$0454c19d_at_[hidden]>
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
Hi Todd,
Blitz is great, but there are some features I would like to see added to it.
For example, the code I'm writing contains lots of diagonal matrices, and it
would be nice if Blitz would support them.
It would be useful to have both a 'hard' diagonal matrix class and a 'soft'
one, i.e. one that could automatically be promoted to a filled matrix.
Something along the lines of
A = diag(1,1); // A.isDiagonal() == true , A contains 2 doubles
A = 1, 0,
0, 1; // A.isDiagonal() == true , A contains 2 doubles
B = 1, 1,
1, 1; // B.isDiagonal() == false , B contains 4 doubles
C = diag(0,0); // C.isDiagonal() == true , C contains 2 doubles
C = A*B; // C.isDiagonal() == false , C contains 4 doubles
I don't know if the checking for diagonality in the expressions and the
memory relayout would be a performance killer.
The thing is, I would like to write expressions using matrices of which I
don't know beforehand if they will be diagonal or not. It would be nice if
Blitz would automatically pick the most efficient implementation (memory and
cpu) of an expression, based on the diagonality of its components.
>From what I understand, diagonal matrices will be supported in the code from
the guys from CERN ?
Cheers,
----------------------------------
Peter Bienstman
INTEC / University of Gent
St.-Pietersnieuwstraat 41
B-9000 Gent - Belgium
Email: Peter.Bienstman_at_[hidden]
Tel : +32 9 264 3445
Fax : +32 9 264 3593
----------------------------------