summaryrefslogtreecommitdiff
path: root/packages/base/src/C
diff options
context:
space:
mode:
authorAlberto Ruiz <aruiz@um.es>2015-05-28 09:17:40 +0200
committerAlberto Ruiz <aruiz@um.es>2015-05-28 12:25:20 +0200
commit3f68d78613ed61540c38548fb3b7e8fca77a85d2 (patch)
tree229661ff3c051036b0ce422059fe0517a3dd5366 /packages/base/src/C
parentf05ef81b63e4ee6403433919ce48f223cf0b1e45 (diff)
use omat for multiplyI
Diffstat (limited to 'packages/base/src/C')
-rw-r--r--packages/base/src/C/lapack-aux.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/packages/base/src/C/lapack-aux.c b/packages/base/src/C/lapack-aux.c
index a977d5f..ac03120 100644
--- a/packages/base/src/C/lapack-aux.c
+++ b/packages/base/src/C/lapack-aux.c
@@ -1287,28 +1287,19 @@ int multiplyQ(int ta, int tb, KQMAT(a),KQMAT(b),QMAT(r)) {
1287 OK 1287 OK
1288} 1288}
1289 1289
1290int multiplyI(int ta, int tb, KIMAT(a), KIMAT(b), IMAT(r)) { 1290
1291 int i,j,k; 1291int multiplyI(KOIMAT(a), KOIMAT(b), OIMAT(r)) {
1292 int n; 1292 { TRAV(r,i,j) {
1293 int ai,ak,bk,bj; 1293 int k;
1294 1294 AT(r,i,j) = 0;
1295 n = ta ? ar : ac; 1295 for (k=0;k<ac;k++) {
1296 1296 AT(r,i,j) += AT(a,i,k) * AT(b,k,j);
1297 if (ta==0) { ai = 1; ak = ar; } else { ai = ar; ak = 1; }
1298 if (tb==0) { bk = 1; bj = br; } else { bk = br; bj = 1; }
1299
1300 for (i=0;i<rr;i++) {
1301 for (j=0;j<rc;j++) {
1302 rp[i+rr*j] = 0;
1303 for (k=0; k<n; k++) {
1304 rp[i+rr*j] += ap[ai*i+ak*k] * bp[bk*k+bj*j];
1305 }
1306 } 1297 }
1298 }
1307 } 1299 }
1308 OK 1300 OK
1309} 1301}
1310 1302
1311
1312//////////////////// transpose ///////////////////////// 1303//////////////////// transpose /////////////////////////
1313 1304
1314int transF(KFMAT(x),FMAT(t)) { 1305int transF(KFMAT(x),FMAT(t)) {