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