diff options
author | Gael Guennebaud <g.gael@free.fr> | 2008-07-09 14:04:48 +0000 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2008-07-09 14:04:48 +0000 |
commit | 28539e7597c643dbc2b8d4f49dd16bd86fb7251f (patch) | |
tree | 3bfb96ae898f0afc943a388edcc83c27d28d5b3a /bench/btl/libs/f77/smxv.f | |
parent | 5f55ab524cf0aad34dd6884bcae09eaa6c43c247 (diff) |
imported a reworked version of BTL (Benchmark for Templated Libraries).
the modifications to initial code follow:
* changed build system from plain makefiles to cmake
* added eigen2 (4 versions: vec/novec and fixed/dynamic), GMM++, MTL4 interfaces
* added "transposed matrix * vector" product action
* updated blitz interface to use condensed products instead of hand coded loops
* removed some deprecated interfaces
* changed default storage order to column major for all libraries
* new generic bench timer strategy which is supposed to be more accurate
* various code clean-up
Diffstat (limited to 'bench/btl/libs/f77/smxv.f')
-rw-r--r-- | bench/btl/libs/f77/smxv.f | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/bench/btl/libs/f77/smxv.f b/bench/btl/libs/f77/smxv.f new file mode 100644 index 000000000..d2f7ed24e --- /dev/null +++ b/bench/btl/libs/f77/smxv.f @@ -0,0 +1,38 @@ + SUBROUTINE SMXV(A,N,X,M,R) +C +** +** VERSION DOUBLE PRECISION DE MXV +** R = A * X +** A MATRICE A(N,M) +** R ET X VECTEURS +** +*>A PREMIERE MATRICE +*>N PREMIERE DIMENSION DE A +*>X VECTEUR +*>M DEUXIEME DIMENSION DE A +*<R VECTEUR PRODUIT DE A ET DE X +** +*A M. COSTE +*V M.F. ROBEAU +*M +* + REAL*4 X(1),R(1),A(N,M) + REAL*4 S +C DO 20 I=1,N +C S=0. +C DO 10 J=1,M +C S=S+A(I,J)*X(J) +C 10 CONTINUE +C R(I)=S +C 20 CONTINUE + DO 5 I=1,N + R(I)=0 + 5 CONTINUE + DO 10 J=1,M + S=X(J) + DO 20 I=1,N + R(I)=R(I)+A(I,J)*S + 20 CONTINUE + 10 CONTINUE + RETURN + END |