aboutsummaryrefslogtreecommitdiff
path: root/redist/dclapack.h
diff options
context:
space:
mode:
authorcnlohr <lohr85@gmail.com>2018-03-17 14:21:20 -0400
committercnlohr <lohr85@gmail.com>2018-03-17 14:21:20 -0400
commit04bd16aeb391e67716344268cf0f43d1f31f180a (patch)
tree2efb24782dc15a994c487e01e0a2ba2e31005721 /redist/dclapack.h
parent497e65e339edcc77bd272b97b9c1b1b5217a24b6 (diff)
downloadlibsurvive-04bd16aeb391e67716344268cf0f43d1f31f180a.tar.gz
libsurvive-04bd16aeb391e67716344268cf0f43d1f31f180a.tar.bz2
Update dcl and test.
Diffstat (limited to 'redist/dclapack.h')
-rw-r--r--redist/dclapack.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/redist/dclapack.h b/redist/dclapack.h
index 2823c5d..cae377b 100644
--- a/redist/dclapack.h
+++ b/redist/dclapack.h
@@ -37,9 +37,9 @@
/*
* Returns the identity matrix (with size n x n, but width Ic)
*/
-#define IDENTITY(I, n) \
+#define IDENTITY(I, m, n) \
{ \
- for (int _i = 0; _i < (n); _i++) { \
+ for (int _i = 0; _i < (m); _i++) { \
for (int _j = 0; _j < _i; _j++) { \
_(I, _i, _j) = 0.0f; \
} \
@@ -50,6 +50,17 @@
} \
}
+
+/*
+ * Returns the identity matrix (with size n x n, but width Ic)
+ */
+#define ZERO(Z, m, n) \
+ { \
+ for (int _i = 0; _i < (m); _i++) \
+ for (int _j = 0; _j < (n); _j++) \
+ _(Z, _i, _j) = 0.0f; \
+ }
+
/*
* R = Transpose(A)
* A is (m by n)
@@ -79,7 +90,7 @@
_(U, _i, _j) = _(A, _i, _j); \
} \
} \
- IDENTITY(L, n); \
+ IDENTITY(L, n, n); \
\
for (_i = 0; _i < (n)-1; _i++) { \
\
@@ -188,7 +199,7 @@
#define INV(Ainv,A,n,ORDER) { \
INV_SETUP(ORDER) \
int Piv[ORDER]; \
- IDENTITY(I,n); \
+ IDENTITY(I,n,n); \
LU(L,U,A,Piv,n); \
PIVOT(Ipiv,I,Piv,n,n); \
L_SUB(C,L,Ipiv,n,n); \
@@ -258,6 +269,7 @@ PRINT(Ainv,n,n); \
for (int _k = 0; _k < n; _k++) { \
sum += _(A, _i, _k) * _(B, _k, _j); \
} \
+ printf( "-> %d %d = %f %f %f %f[%d %d]\n", _i, _j, alpha,sum,beta, _(C,_i,_j), _i, _j ); \
_(R, _i, _j) = alpha * sum + beta * _(C, _i, _j); \
} \
} \