(Matrix * Vector) Multiplication Timing Results:
 
Non-optimized builds Optimized builds
5x5 Matrix 6x6 Matrix 5x5 Matrix 6x6 Matrix
LinearAlgebra
Matrix * ColumnVector
Matrix not specialized
Matrix not declared symmetric
[tsnmul04]
3.37 3.99 3.33 3.9
LinearAlgebra
Matrix * ColumnVector
Matrix not specialized
Matrix declared symmetric
[tsnmul04]
4.19 5.28 4.24 5.24
LinearAlgebra
Matrix * ColumnVector
Matrix specialized
Matrix not declared symmetric
[tsnmul04]
2.78 2.95 2.81 3.06
LinearAlgebra
Matrix * ColumnVector
Matrix specialized
Matrix declared symmetric
[tsnmul04]
4.51 5.26 4.58 5.03
CLHEP
HepMatrix * HepVector
[tsnmul05]
2.74 3.31 2.76 3.13
CLHEP
HepSymMatrix * HepVector
[tsnmul06]
2.48 3.12 2.53 2.96
CovMatrices (*)
CovMatrixX * VectorX
[tsnmul07]
0.2 0.3 0.17 0.28

All timings are based on 1,000,000 multiplications.
The number is the time for 1 multiplication in microseconds (µsecs)
(also, since we have a total of 1,000,000 multiplications, the same number is the total multiplication time in seconds).
The string in the bracket is the name of the test module build for the particular test.
When the results say "Non-Optimized builds," then all the libraries and the test module were build with the "SRT_QUAL" variable having the "default" value.
When the results say "Optimized builds," then all the libraries and the test module were build with the "SRT_QUAL" variable having the "maxopt" value.

(*) Covariant Matrices are inherently symmetric
 

Matrices and Vectors used in the tests:

LinearAlgebra:
5x5 matrix:
     1e+03                    4                    6                    8                  10
             4         1.1e+03                  16                  18                  20
             6                  16         1.2e+03                  28                  30
             8                  18                  28         1.3e+03                  40
           10                  20                  30                  40         1.4e+03
5-element vector:
          2
          4
          6
          8
        10
6x6 matrix:
     1e+03                    4                    6                    8                  10                  12
             4         1.1e+03                  18                  20                  22                  24
             6                  18         1.2e+03                  32                  34                  36
             8                  20                  32         1.3e+03                  46                  48
            10                 22                  34                  46         1.4e+03                  60
            12                 24                  36                  48                  60         1.5e+03
6-element vector:
          2
          4
          6
          8
        10
        12

CLHEP:
5x5 matrix:
         1000                4                6                8              10
               4          1100              16              18              20
               6              16          1200              28              30
               8              18              28          1300              40
             10              20              30              40          1400
5-element vector:
         2
         4
         6
         8
        10
6x6 matrix:
         1000                4                6                8              10              12
               4          1100              18              20              22              24
               6              18          1200              32              34              36
               8              20              32          1300              46              48
             10              22              34              46          1400              60
             12              24              36              48              60          1500
6-element vector:
          2
          4
          6
          8
        10
        12

CovMatrices:
5x5 matrix:
  +1.0000000000e+03
  +4.0000000000e+00   +1.1000000000e+03
  +6.0000000000e+00   +1.6000000000e+01   +1.2000000000e+03
  +8.0000000000e+00   +1.8000000000e+01   +2.8000000000e+01   +1.3000000000e+03
  +1.0000000000e+01   +2.0000000000e+01   +3.0000000000e+01   +4.0000000000e+01   +1.4000000000e+03
5-element vector:
  +2.0000000000e+00   +4.0000000000e+00   +6.0000000000e+00   +8.0000000000e+00   +1.0000000000e+01
6x6 matrix:
  +1.0000000000e+03
  +4.0000000000e+00   +1.1000000000e+03
  +6.0000000000e+00   +1.8000000000e+01   +1.2000000000e+03
  +8.0000000000e+00   +2.0000000000e+01   +3.2000000000e+01   +1.3000000000e+03
  +1.0000000000e+01   +2.2000000000e+01   +3.4000000000e+01   +4.6000000000e+01   +1.4000000000e+03
  +1.2000000000e+01   +2.4000000000e+01   +3.6000000000e+01   +4.8000000000e+01   +6.0000000000e+01   +1.5000000000e+03
6-element vector:
  +2.0000000000e+00   +4.0000000000e+00   +6.0000000000e+00   +8.0000000000e+00   +1.0000000000e+01   +1.2000000000e+01
 

Testing system specs:

CPU: 500 MHz PentiumIII (Katmai)
Memory: 128MB SDRAM
Cache: 512KB
Hard Disk: IBM 13677MB
Video Card: 16MB Diamond Viper TNT 1.95E

OS: Fermi Linux Release 6.1.1 (Strange)
Kernel: 2.2.16-3 on an i686
X-Server: XFree86 Version 11.0 Release 3360

Tests were compiled and build using GCC 3.0.1

Nick Macks