$include_dir="/home/hyper-archives/ublas/include"; include("$include_dir/msg-header.inc") ?>
From: Robbie Vogt (r.vogt_at_[hidden])
Date: 2005-06-14 17:58:17
Hi all,
Ian McCulloch wrote:
>FWIW, I have pretty much come to the conclusion that noalias should be the
>default, but my reasons are (1) I think it IS easy, in *most* cases, to
>determine when incorrect aliasing occurs - I guess Fortran programmers
>learn very quickly, and (2) even if there is an aliasing problem, it is not
>necessarily most efficient to copy the final expression.  There are some
>cases where making a copy of a subexpression would suffice.  And (3) in
>debug mode, the assignment operators can compute the expression both ways
>and assert that the result is the same.
>  
>
I would like to second all of Ian's points above.  I always thought it a 
strange decision in the design of uBLAS to go the "safe" route at the 
expensive of performance, particularly in light of common practice in 
C/C++ library (and language) design to trust the programmer (eg. 
std::copy can also have aliasing issues if the programmer isn't 
careful).  I also believe a trust-the-programmer approach would have 
lead to far simpler code to maintain and enhance.
Alas, as Christopher points out, this type of fundamental change in 
design would require an enormous effort to re-implement the entire 
library and would probably no longer be uBLAS as we know it.  I have 
been inclined in the past to suggest a complete rethink on the design 
and a "uBLAS 2," but hopefully MTL3 will fill this role.  Possibly our 
best plan of attack is to get more involved in the development of the 
new MTL so that it is brought to life as quickly as possible.
Regards,
Robbie.