aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/btl/libs/f77/smxv.f
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2008-07-09 14:04:48 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2008-07-09 14:04:48 +0000
commit28539e7597c643dbc2b8d4f49dd16bd86fb7251f (patch)
tree3bfb96ae898f0afc943a388edcc83c27d28d5b3a /bench/btl/libs/f77/smxv.f
parent5f55ab524cf0aad34dd6884bcae09eaa6c43c247 (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.f38
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