From octave-maintainers-request at bevo dot che dot wisc dot edu Tue Jan 6 09:39:21 2004 Subject: Re: benchmarks From: "John W. Eaton" To: David Bateman Cc: Paul Kienzle , octave-maintainers@bevo.che.wisc.edu Date: Tue, 6 Jan 2004 09:39:19 -0600 On 6-Jan-2004, David Bateman wrote: | > I.D Matlab 0.73 - Octave 0.35 - R 0.24 | > b = a'*a; | > | > Octave could be faster if it skipped the transpose and used blas | > directly with the appropriate transpose code. Note, the tester | > did not use a self-generated atlas, so these results don't mean | > much. | | This is a lot of work and cruft foe a small gain. You'd have to pass | ', *, and '* differently. Then you'd have to create a new function for | the transpose multiply. Is it worth it? You don't have to recognize the sequence of operators. Instead, you can just tag a matrix as transposed without actually doing the operation until it is really needed, then you can pass that information to the LAPACK and BLAS routines, or simply access the elements differently when indexing (or displaying). But this means adding significant complexity to the matrix and array classes (and any code using them that asks for the data directly), which is why I decided early on that it was probably better to have transpose do the operation immediately by copying. jwe