diff options
Diffstat (limited to 'lib/Numeric/LinearAlgebra/LAPACK')
-rw-r--r-- | lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.c | 22 | ||||
-rw-r--r-- | lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.h | 6 |
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.c b/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.c index fd840e3..b9c2572 100644 --- a/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.c +++ b/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.c | |||
@@ -1039,6 +1039,18 @@ int multiplyC(int ta, int tb, KCMAT(a),KCMAT(b),CMAT(r)) { | |||
1039 | 1039 | ||
1040 | //////////////////// transpose ///////////////////////// | 1040 | //////////////////// transpose ///////////////////////// |
1041 | 1041 | ||
1042 | int transF(KFMAT(x),FMAT(t)) { | ||
1043 | REQUIRES(xr==tc && xc==tr,BAD_SIZE); | ||
1044 | DEBUGMSG("transF"); | ||
1045 | int i,j; | ||
1046 | for (i=0; i<tr; i++) { | ||
1047 | for (j=0; j<tc; j++) { | ||
1048 | tp[i*tc+j] = xp[j*xc+i]; | ||
1049 | } | ||
1050 | } | ||
1051 | OK | ||
1052 | } | ||
1053 | |||
1042 | int transR(KDMAT(x),DMAT(t)) { | 1054 | int transR(KDMAT(x),DMAT(t)) { |
1043 | REQUIRES(xr==tc && xc==tr,BAD_SIZE); | 1055 | REQUIRES(xr==tc && xc==tr,BAD_SIZE); |
1044 | DEBUGMSG("transR"); | 1056 | DEBUGMSG("transR"); |
@@ -1065,6 +1077,16 @@ int transC(KCMAT(x),CMAT(t)) { | |||
1065 | 1077 | ||
1066 | //////////////////// constant ///////////////////////// | 1078 | //////////////////// constant ///////////////////////// |
1067 | 1079 | ||
1080 | int constantF(float * pval, FVEC(r)) { | ||
1081 | DEBUGMSG("constantF") | ||
1082 | int k; | ||
1083 | double val = *pval; | ||
1084 | for(k=0;k<rn;k++) { | ||
1085 | rp[k]=val; | ||
1086 | } | ||
1087 | OK | ||
1088 | } | ||
1089 | |||
1068 | int constantR(double * pval, DVEC(r)) { | 1090 | int constantR(double * pval, DVEC(r)) { |
1069 | DEBUGMSG("constantR") | 1091 | DEBUGMSG("constantR") |
1070 | int k; | 1092 | int k; |
diff --git a/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.h b/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.h index adf096e..415a6ab 100644 --- a/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.h +++ b/lib/Numeric/LinearAlgebra/LAPACK/lapack-aux.h | |||
@@ -40,13 +40,17 @@ typedef short ftnlen; | |||
40 | 40 | ||
41 | /********************************************************/ | 41 | /********************************************************/ |
42 | 42 | ||
43 | #define FVEC(A) int A##n, float*A##p | ||
43 | #define DVEC(A) int A##n, double*A##p | 44 | #define DVEC(A) int A##n, double*A##p |
44 | #define CVEC(A) int A##n, double*A##p | 45 | #define CVEC(A) int A##n, double*A##p |
46 | #define FMAT(A) int A##r, int A##c, float* A##p | ||
45 | #define DMAT(A) int A##r, int A##c, double* A##p | 47 | #define DMAT(A) int A##r, int A##c, double* A##p |
46 | #define CMAT(A) int A##r, int A##c, double* A##p | 48 | #define CMAT(A) int A##r, int A##c, double* A##p |
47 | 49 | ||
50 | #define KFVEC(A) int A##n, const float*A##p | ||
48 | #define KDVEC(A) int A##n, const double*A##p | 51 | #define KDVEC(A) int A##n, const double*A##p |
49 | #define KCVEC(A) int A##n, const double*A##p | 52 | #define KCVEC(A) int A##n, const double*A##p |
53 | #define KFMAT(A) int A##r, int A##c, const float* A##p | ||
50 | #define KDMAT(A) int A##r, int A##c, const double* A##p | 54 | #define KDMAT(A) int A##r, int A##c, const double* A##p |
51 | #define KCMAT(A) int A##r, int A##c, const double* A##p | 55 | #define KCMAT(A) int A##r, int A##c, const double* A##p |
52 | 56 | ||
@@ -55,9 +59,11 @@ typedef short ftnlen; | |||
55 | int multiplyR(int ta, int tb, KDMAT(a),KDMAT(b),DMAT(r)); | 59 | int multiplyR(int ta, int tb, KDMAT(a),KDMAT(b),DMAT(r)); |
56 | int multiplyC(int ta, int tb, KCMAT(a),KCMAT(b),CMAT(r)); | 60 | int multiplyC(int ta, int tb, KCMAT(a),KCMAT(b),CMAT(r)); |
57 | 61 | ||
62 | int transF(KFMAT(x),FMAT(t)); | ||
58 | int transR(KDMAT(x),DMAT(t)); | 63 | int transR(KDMAT(x),DMAT(t)); |
59 | int transC(KCMAT(x),CMAT(t)); | 64 | int transC(KCMAT(x),CMAT(t)); |
60 | 65 | ||
66 | int constantF(float * pval, FVEC(r)); | ||
61 | int constantR(double * pval, DVEC(r)); | 67 | int constantR(double * pval, DVEC(r)); |
62 | int constantC(doublecomplex* pval, CVEC(r)); | 68 | int constantC(doublecomplex* pval, CVEC(r)); |
63 | 69 | ||