1 #if !defined(DSDPLAPACK) 2 #define DSDPLAPACK 3 /*! 4 \file dsdplapack.h 5 \brief DSDP uses BLAS and LAPACK for many of its operations. 6 */ 7 8 typedef long int ffinteger; 9 /* 10 typedef int ffinteger; 11 */ 12 /* 13 #define __DSDP_NONAMEMANGLING 14 #undef __DSDP_NONAMEMANGLING 15 */ 16 17 18 #ifdef __cplusplus 19 #define __DSDP_NONAMEMANGLING 20 #endif 21 22 23 #ifdef __DSDP_NONAMEMANGLING 24 #define EXTERN_C_BEGIN extern "C" { 25 #define EXTERN_C_END } 26 #else 27 #define EXTERN_C_BEGIN 28 #define EXTERN_C_END 29 #endif 30 31 /* 32 #define NOUNDERBLAS 33 #define CAPSBLAS 34 */ 35 36 #ifdef NOUNDERBLAS 37 #ifdef CAPSBLAS 38 #define dstev DSTEV 39 #define dpotrf DPOTRF 40 #define dtrsm DTRSM 41 #define dsyev DSYEV 42 #define dpotrs DPOTRS 43 #define daxpy DAXPY 44 #define dgemv DGEMV 45 #define dscal DSCAL 46 #define dger DGER 47 #define dsymv DSYMV 48 #define dasum DASUM 49 #define ddot DDOT 50 #define dnrm2 DNRM2 51 #define dspmv DSPMV 52 #define dspr DSPR 53 #define dpptrf DPPTRF 54 #define dpptrs DPPTRS 55 #define dtpsv DTPSV 56 #define dspevd DSPEVD 57 #define dtrsv DTRSV 58 #define dsyr DSYR 59 #define dtrmv DTRMV 60 #define dpotri DPOTRI 61 #define dpptri DPPTRI 62 #define dsyevx DSYEVX 63 #define dsyevd DSYEVD 64 #define dspevx DSPEVX 65 #define dsyevr DSYEVR 66 #define dstevr DSTEVR 67 #endif 68 #endif 69 70 #ifndef NOUNDERBLAS 71 #ifdef CAPSBLAS 72 #define dstev DSTEV_ 73 #define dpotrf DPOTRF_ 74 #define dtrsm DTRSM_ 75 #define dsyev DSYEV_ 76 #define dpotrs DPOTRS_ 77 #define daxpy DAXPY_ 78 #define dgemv DGEMV_ 79 #define dscal DSCAL_ 80 #define dger DGER_ 81 #define dsymv DSYMV_ 82 #define ddot DDOT_ 83 #define dnrm2 DNRM2_ 84 #define dasum DASUM_ 85 #define dspmv DSPMV_ 86 #define dspr DSPR_ 87 #define dpptrf DPPTRF_ 88 #define dpptrs DPPTRS_ 89 #define dtpsv DTPSV_ 90 #define dspevd DSPEVD_ 91 #define dtrsv DTRSV_ 92 #define dsyr DSYR_ 93 #define dtrmv DTRMV_ 94 #define dpotri DPOTRI_ 95 #define dpptri DPPTRI_ 96 #define dsyevx DSYEVX_ 97 #define dsyevd DSYEVD_ 98 #define dspevx DSPEVX_ 99 #define dsyevr DSYEVR_ 100 #define dstevr DSTEVR_ 101 #endif 102 #endif 103 104 #ifdef NOUNDERBLAS 105 #ifndef CAPSBLAS 106 #define dstev dstev 107 #define dpotrf dpotrf 108 #define dtrsm dtrsm 109 #define dsyev dsyev 110 #define dpotrs dpotrs 111 #define daxpy daxpy 112 #define dgemv dgemv 113 #define dscal dscal 114 #define dger dger 115 #define dsymv dsymv 116 #define dasum dasum 117 #define ddot ddot 118 #define dnrm2 dnrm2 119 #define dspmv dspmv 120 #define dspr dspr 121 #define dpptrf dpptrf 122 #define dpptrs dpptrs 123 #define dtpsv dtpsv 124 #define dspevd dspevd 125 #define dtrsv dtrsv 126 #define dsyr dsyr 127 #define dtrmv dtrmv 128 #define dpotri dpotri 129 #define dpptri dpptri 130 #define dsyevx dsyevx 131 #define dsyevd dsyevd 132 #define dspevx dspevx 133 #define dsyevr dsyevr 134 #define dstevr dstevr 135 #endif 136 #endif 137 138 #ifndef NOUNDERBLAS 139 #ifndef CAPSBLAS 140 #define dstev dstev_ 141 #define dpotrf dpotrf_ 142 #define dtrsm dtrsm_ 143 #define dsyev dsyev_ 144 #define dpotrs dpotrs_ 145 #define daxpy daxpy_ 146 #define dgemv dgemv_ 147 #define dscal dscal_ 148 #define dger dger_ 149 #define dsymv dsymv_ 150 #define dasum dasum_ 151 #define ddot ddot_ 152 #define dnrm2 dnrm2_ 153 #define dspmv dspmv_ 154 #define dspr dspr_ 155 #define dpptrf dpptrf_ 156 #define dpptrs dpptrs_ 157 #define dtpsv dtpsv_ 158 #define dspevd dspevd_ 159 #define dtrsv dtrsv_ 160 #define dsyr dsyr_ 161 #define dtrmv dtrmv_ 162 #define dpotri dpotri_ 163 #define dpptri dpptri_ 164 #define dsyevx dsyevx_ 165 #define dsyevd dsyevd_ 166 #define dspevx dspevx_ 167 #define dsyevr dsyevr_ 168 #define dstevr dstevr_ 169 #endif 170 #endif 171 172 EXTERN_C_BEGIN 173 174 void dpotrs(char*,ffinteger*,ffinteger*,double*,ffinteger*,double*,ffinteger*,ffinteger*); /* Cholesky Solve */ 175 void dpotrf(char*,ffinteger*,double*,ffinteger*,ffinteger*); /* Cholesky Factor */ 176 void dtrsm(char*,char*,char*,char*,ffinteger*,ffinteger*,double*,double*,ffinteger*,double*,ffinteger*); /* Cholesky trianglular solve */ 177 void dsyev(char*,char*,ffinteger*,double*,ffinteger*,double*,double*,ffinteger*,ffinteger*); /* Compute eigenvalues/vectors */ 178 void dstev(char*,ffinteger*,double*,double*,double*,ffinteger*,double*,ffinteger*); /* Compute eigenvalues/vectors */ 179 void dgemv(char*,ffinteger*,ffinteger*,double*,double*,ffinteger*,double*,ffinteger*,double*,double*,ffinteger*); 180 void dspmv(char*,ffinteger*,double*,double*,double*,ffinteger*,double*,double*,ffinteger*); 181 182 void dspr(char*,ffinteger*,double*,double*,ffinteger*,double*); 183 void dpptrs(char*,ffinteger*,ffinteger*,double*,double*,ffinteger*,ffinteger*); 184 void dpptrf(char*,ffinteger*,double*,ffinteger*); 185 186 void dtrsv(char*,char*,char*,ffinteger*,double*,ffinteger*,double*,ffinteger*); 187 void dsyr(char*,ffinteger*,double*,double*,ffinteger*,double*,ffinteger*); 188 void dtrmv(char*,char*,char*,ffinteger*,double*,ffinteger*,double*,ffinteger*); 189 190 void dtpsv(char*,char*,char*,ffinteger*,double*,double*,ffinteger*); 191 void dger(ffinteger*,ffinteger*,double*,double*,ffinteger*,double*,ffinteger*,double*,ffinteger*); 192 void dsymv(char*,ffinteger*,double*,double*,ffinteger*,double*,ffinteger*, double*,double*,ffinteger*); 193 void dspevd(char*,char*,ffinteger*,double*,double*,double*,ffinteger*,double*,ffinteger*,ffinteger*,ffinteger*,ffinteger*); 194 195 double dasum(ffinteger*,double*,ffinteger*); 196 void dscal(ffinteger*,double*,double*,ffinteger*); 197 void daxpy(ffinteger*,double*,double*,ffinteger*,double*,ffinteger*); 198 double ddot(ffinteger*,double*,ffinteger*,double*,ffinteger*); 199 double dnrm2(ffinteger*,double*,ffinteger*); 200 201 void dpotri(char*,ffinteger*,double*,ffinteger*,ffinteger*); 202 void dpptri(char*,ffinteger*,double*,ffinteger*); 203 204 void dsyevx(char*, char*, char*, ffinteger*,double*, ffinteger*, double*, double*, ffinteger*, ffinteger*, double*, ffinteger*, double *,double*, ffinteger *, double *, ffinteger*, ffinteger*, ffinteger*, ffinteger*); 205 206 void dspevx(char*, char*, char*, ffinteger*,double*, double*, double*, ffinteger*, ffinteger*, double*, ffinteger*, double *,double*, ffinteger *, double *, ffinteger*, ffinteger*, ffinteger*); 207 208 void dsdevx(char*, char*, char*, ffinteger*,double*, double*, double*, ffinteger*, ffinteger*, double*, ffinteger*, double *,double*, ffinteger *, double *, ffinteger*, ffinteger*, ffinteger*, ffinteger*); 209 210 211 void dsyevr(char*, char*, char*, ffinteger*, double*, ffinteger*, double*, double*, ffinteger*, ffinteger*,double*, ffinteger*, double*, double*, ffinteger*, ffinteger*, double*, ffinteger*, ffinteger*, ffinteger*, ffinteger*); 212 213 void dstevr(char*, char*, ffinteger*, double*, double*, double*, double*, ffinteger*, ffinteger*,double*, ffinteger*, double*, double*, ffinteger*, ffinteger*, double*, ffinteger*, ffinteger*, ffinteger*, ffinteger*); 214 215 EXTERN_C_END 216 217 #endif 218