Borderbasix

alp_f2c.H
Go to the documentation of this file.
1 /*
2 // NOTE: this is a modified file of f2c.h to work with most C++ compilers.
3 // f2c.h for example, defines abs() as a macro, casuing parsing
4 // problems when it encounters abs() in stdlib.h, and so on.
5 // It is needed in Lapack++ because some of the C/Lapack functions, like
6 // ilaenv_(), need to know what ftn_len is (system dependent.)
7 //
8 // pow_ri() has been removed, since it collides with
9 // sunmath.h on SUN4s.
10 //
11 // "typedef float real" has been removed, due to conflict with
12 // AT&T CC with real() for complex.
13 //
14 // "typedef ... complex" has been renamed to f2c_complex to
15 // avoid conflicts with C++ complex class.
16 */
17 
18 /* f2c.h -- Standard Fortran to C header file */
19 
20 #ifndef F2C_INCLUDE
21 #define F2C_INCLUDE
22 
23 typedef long int integer;
24 typedef unsigned long int uinteger;
25 typedef char *address;
26 typedef short int shortint;
27 typedef float f2c_real;
28 typedef double doublereal;
29 typedef struct { f2c_real r, i; } f2c_complex;
30 typedef struct { doublereal r, i; } doublecomplex;
31 typedef long int logical;
32 typedef short int shortlogical;
33 
34 #define TRUE_ (1)
35 #define FALSE_ (0)
36 
37 /* Extern is for use with -E */
38 #ifndef Extern
39 #define Extern extern
40 #endif //
41 
42 extern int ungetc(); /* This is not declared in Sun's <stdio.h> */
43 
44 /* I/O stuff */
45 
46 #ifdef f2c_i2
47 /* for -i2 */
48 typedef short flag;
49 typedef short ftnlen;
50 typedef short ftnint;
51 #else
52 typedef long flag;
53 typedef long ftnlen;
54 typedef long ftnint;
55 #endif //
56 
57 /*external read, write*/
58 typedef struct
62  char *cifmt;
64 } cilist;
65 
66 /*internal read, write*/
67 typedef struct
69  char *iciunit;
71  char *icifmt;
74 } icilist;
75 
76 /*open*/
77 typedef struct
80  char *ofnm;
82  char *osta;
83  char *oacc;
84  char *ofm;
86  char *oblnk;
87 } olist;
88 
89 /*close*/
90 typedef struct
93  char *csta;
94 } cllist;
95 
96 /*rewind, backspace, endfile*/
97 typedef struct
100 } alist;
101 
102 /* inquire */
103 typedef struct
106  char *infile;
108  ftnint *inex; /*parameters in standard's order*/
112  char *inname;
114  char *inacc;
116  char *inseq;
118  char *indir;
120  char *infmt;
122  char *inform;
124  char *inunf;
128  char *inblank;
130 } inlist;
131 
132 #define VOID void
133 
134 union Multitype { /* for multiple entry points */
141  };
142 
143 typedef union Multitype Multitype;
144 
145 typedef long Long; /* No longer used; formerly in Namelist */
146 
147 struct Vardesc { /* for Namelist */
148  char *name;
149  char *addr;
151  int type;
152  };
153 typedef struct Vardesc Vardesc;
154 
155 struct Namelist {
156  char *name;
158  int nvars;
159  };
160 typedef struct Namelist Namelist;
161 
162 /* #define abs(x) ((x) >= 0 ? (x) : -(x)) */
163 #define dabs(x) (doublereal)abs(x)
164 #ifndef min
165 //#define min(a,b) ((a) <= (b) ? (a) : (b))
166 #endif //
167 #define max(a,b) ((a) >= (b) ? (a) : (b))
168 #define dmin(a,b) (doublereal)min(a,b)
169 #define dmax(a,b) (doublereal)max(a,b)
170 
171 /* procedure parameter types for -A and -C++ */
172 
173 #define F2C_proc_par_ts 1
174 #ifdef __cplusplus
175 typedef int /* Unknown procedure type */ (*U_fp)(...);
176 typedef shortint (*J_fp)(...);
177 typedef integer (*I_fp)(...);
178 typedef f2c_real (*R_fp)(...);
179 typedef doublereal (*D_fp)(...), (*E_fp)(...);
180 typedef /* Complex */ VOID (*C_fp)(...);
181 typedef /* Double Complex */ VOID (*Z_fp)(...);
182 typedef logical (*L_fp)(...);
183 typedef shortlogical (*K_fp)(...);
184 typedef /* Character */ VOID (*H_fp)(...);
185 typedef /* Subroutine */ int (*S_fp)(...);
186 #else
187 typedef int /* Unknown procedure type */ (*U_fp)();
188 typedef shortint (*J_fp)();
189 typedef integer (*I_fp)();
190 typedef f2c_real (*R_fp)();
191 typedef doublereal (*D_fp)(), (*E_fp)();
192 typedef /* Complex */ VOID (*C_fp)();
193 typedef /* Double Complex */ VOID (*Z_fp)();
194 typedef logical (*L_fp)();
195 typedef shortlogical (*K_fp)();
196 typedef /* Character */ VOID (*H_fp)();
197 typedef /* Subroutine */ int (*S_fp)();
198 #endif //
199 /* E_fp is for real functions when -R is not specified */
200 typedef VOID C_f; /* (single precision ) complex function */
201 typedef VOID H_f; /* character function */
202 typedef VOID Z_f; /* double complex function */
203 typedef doublereal E_f; /* real function with -R not specified */
204 
205 /* undef any lower-case symbols that your C compiler predefines, e.g.: */
206 
207 #ifndef Skip_f2c_Undefs
208 #undef cray
209 #undef gcos
210 #undef mc68010
211 #undef mc68020
212 #undef mips
213 #undef pdp11
214 #undef sgi
215 #undef sparc
216 #undef sun
217 #undef sun2
218 #undef sun3
219 #undef sun4
220 #undef u370
221 #undef u3b
222 #undef u3b2
223 #undef u3b5
224 #undef unix
225 #undef vax
226 #endif //
227 #endif //
228 
229 
230 /* If you are using a C++ compiler, append the following to f2c.h
231  for compiling libF77 and libI77. */
232 
233 #ifdef __cplusplus
234 
235 extern "C" {
236 extern int abort_(void);
237 extern double c_abs(f2c_complex *);
238 extern void c_cos(f2c_complex *, f2c_complex *);
239 extern void c_div(f2c_complex *, f2c_complex *, f2c_complex *);
240 extern void c_exp(f2c_complex *, f2c_complex *);
241 extern void c_log(f2c_complex *, f2c_complex *);
242 extern void c_sin(f2c_complex *, f2c_complex *);
243 extern void c_sqrt(f2c_complex *, f2c_complex *);
244 extern double d_abs(double *);
245 extern double d_acos(double *);
246 extern double d_asin(double *);
247 extern double d_atan(double *);
248 extern double d_atn2(double *, double *);
249 extern void d_cnjg(doublecomplex *, doublecomplex *);
250 extern double d_cos(double *);
251 extern double d_cosh(double *);
252 extern double d_dim(double *, double *);
253 extern double d_exp(double *);
254 extern double d_imag(doublecomplex *);
255 extern double d_int(double *);
256 extern double d_lg10(double *);
257 extern double d_log(double *);
258 extern double d_mod(double *, double *);
259 extern double d_nint(double *);
260 extern double d_prod(float *, float *);
261 extern double d_sign(double *, double *);
262 extern double d_sin(double *);
263 extern double d_sinh(double *);
264 extern double d_sqrt(double *);
265 extern double d_tan(double *);
266 extern double d_tanh(double *);
267 extern double derf_(double *);
268 extern double derfc_(double *);
269  extern integer do_fio(ftnint *, char *, ftnlen);
270 extern integer do_lio(ftnint *, ftnint *, char *, ftnlen);
271 extern integer do_uio(ftnint *, char *, ftnlen);
272 extern integer e_rdfe(void);
273 extern integer e_rdue(void);
274 extern integer e_rsfe(void);
275 extern integer e_rsfi(void);
276 extern integer e_rsle(void);
277 extern integer e_rsli(void);
278 extern integer e_rsue(void);
279 extern integer e_wdfe(void);
280 extern integer e_wdue(void);
281  extern integer e_wsfe(void);
282 extern integer e_wsfi(void);
283 extern integer e_wsle(void);
284 extern integer e_wsli(void);
285 extern integer e_wsue(void);
286 extern int ef1asc_(ftnint *, ftnlen *, ftnint *, ftnlen *);
287 extern integer ef1cmc_(ftnint *, ftnlen *, ftnint *, ftnlen *);
288 extern double erf(double);
289 extern double erf_(float *);
290 extern double erfc(double);
291 extern double erfc_(float *);
292 extern integer f_back(alist *);
293 extern integer f_clos(cllist *);
294 extern integer f_end(alist *);
295 extern void f_exit(void);
296 extern integer f_inqu(inlist *);
297 extern integer f_open(olist *);
298 extern integer f_rew(alist *);
299 extern int flush_(void);
300 extern void getarg_(integer *, char *, ftnlen);
301 extern void getenv_(char *, char *, ftnlen, ftnlen);
302 extern short h_abs(short *);
303 extern short h_dim(short *, short *);
304 extern short h_dnnt(double *);
305 extern short h_indx(char *, char *, ftnlen, ftnlen);
306 extern short h_len(char *, ftnlen);
307 extern short h_mod(short *, short *);
308 extern short h_nint(float *);
309 extern short h_sign(short *, short *);
310 extern short hl_ge(char *, char *, ftnlen, ftnlen);
311 extern short hl_gt(char *, char *, ftnlen, ftnlen);
312 extern short hl_le(char *, char *, ftnlen, ftnlen);
313 extern short hl_lt(char *, char *, ftnlen, ftnlen);
314 extern integer i_abs(integer *);
315 extern integer i_dim(integer *, integer *);
316 extern integer i_dnnt(double *);
317 extern integer i_indx(char *, char *, ftnlen, ftnlen);
318 extern integer i_len(char *, ftnlen);
319 extern integer i_mod(integer *, integer *);
320 extern integer i_nint(float *);
321 extern integer i_sign(integer *, integer *);
322 extern integer iargc_(void);
323 extern ftnlen l_ge(char *, char *, ftnlen, ftnlen);
324 extern ftnlen l_gt(char *, char *, ftnlen, ftnlen);
325 extern ftnlen l_le(char *, char *, ftnlen, ftnlen);
326 extern ftnlen l_lt(char *, char *, ftnlen, ftnlen);
327 extern void pow_ci(f2c_complex *, f2c_complex *, integer *);
328 extern double pow_dd(double *, double *);
329 extern double pow_di(double *, integer *);
330 extern short pow_hh(short *, shortint *);
331 extern integer pow_ii(integer *, integer *);
332 /* extern double pow_ri(float *, integer *); */
333 extern void pow_zi(doublecomplex *, doublecomplex *, integer *);
334 extern void pow_zz(doublecomplex *, doublecomplex *, doublecomplex *);
335 extern double r_abs(float *);
336 extern double r_acos(float *);
337 extern double r_asin(float *);
338 extern double r_atan(float *);
339 extern double r_atn2(float *, float *);
340 extern void r_cnjg(f2c_complex *, f2c_complex *);
341 extern double r_cos(float *);
342 extern double r_cosh(float *);
343 extern double r_dim(float *, float *);
344 extern double r_exp(float *);
345 extern double r_imag(f2c_complex *);
346 extern double r_int(float *);
347 extern double r_lg10(float *);
348 extern double r_log(float *);
349 extern double r_mod(float *, float *);
350 extern double r_nint(float *);
351 extern double r_sign(float *, float *);
352 extern double r_sin(float *);
353 extern double r_sinh(float *);
354 extern double r_sqrt(float *);
355 extern double r_tan(float *);
356 extern double r_tanh(float *);
357 extern void s_cat(char *, char **, integer *, integer *, ftnlen);
358 extern integer s_cmp(char *, char *, ftnlen, ftnlen);
359 extern void s_copy(char *, char *, ftnlen, ftnlen);
360 extern int s_paus(char *, ftnlen);
361 extern integer s_rdfe(cilist *);
362 extern integer s_rdue(cilist *);
363 extern integer s_rnge(char *, integer, char *, integer);
364 extern integer s_rsfe(cilist *);
365 extern integer s_rsfi(icilist *);
366 extern integer s_rsle(cilist *);
367 extern integer s_rsli(icilist *);
368 extern integer s_rsne(cilist *);
369 extern integer s_rsni(icilist *);
370 extern integer s_rsue(cilist *);
371  extern int s_stop(char *, ftnlen);
372 extern integer s_wdfe(cilist *);
373 extern integer s_wdue(cilist *);
374  extern integer s_wsfe(cilist *);
375  extern integer s_wsfi(icilist *);
376 extern integer s_wsle(cilist *);
377 extern integer s_wsli(icilist *);
378 extern integer s_wsne(cilist *);
379 extern integer s_wsni(icilist *);
380 extern integer s_wsue(cilist *);
381 extern void sig_die(char *, int);
382 extern integer signal_(integer *, void (*)(int));
383 extern int system_(char *, ftnlen);
384  extern double z_abs(doublecomplex *z){return norm(complex<double>(z->r,z->i));}
385 extern void z_cos(doublecomplex *, doublecomplex *);
386 extern void z_div(doublecomplex *z, doublecomplex *a, doublecomplex *b){
387 complex<double> xa(a->r,a->i),xb(b->r,b->i);
388 xa/=xb;
389  z->r=(xa.real());z->i=(xa.imag());}
390 extern void z_exp(doublecomplex *, doublecomplex *);
391 extern void z_log(doublecomplex *, doublecomplex *);
392 extern void z_sin(doublecomplex *, doublecomplex *);
393 extern void z_sqrt(doublecomplex *, doublecomplex *);
394  }
395 #endif //
doublereal(* D_fp)()
Definition: alp_f2c.H:191
ftnint icirnum
Definition: alp_f2c.H:73
shortlogical(* K_fp)()
Definition: alp_f2c.H:195
char * inblank
Definition: alp_f2c.H:128
char * address
Definition: alp_f2c.H:25
short int shortlogical
Definition: alp_f2c.H:32
logical(* L_fp)()
Definition: alp_f2c.H:194
ftnlen inacclen
Definition: alp_f2c.H:115
ftnlen inunflen
Definition: alp_f2c.H:125
ftnlen infilen
Definition: alp_f2c.H:107
long int integer
Definition: alp_f2c.H:23
ftnint icirlen
Definition: alp_f2c.H:72
VOID H_f
Definition: alp_f2c.H:201
ftnint ounit
Definition: alp_f2c.H:79
Definition: alp_f2c.H:67
doublereal i
Definition: alp_f2c.H:30
flag icierr
Definition: alp_f2c.H:68
int(* S_fp)()
Definition: alp_f2c.H:197
char * addr
Definition: alp_f2c.H:149
long ftnlen
Definition: alp_f2c.H:53
VOID C_f
Definition: alp_f2c.H:200
char * iciunit
Definition: alp_f2c.H:69
char * cifmt
Definition: alp_f2c.H:62
ftnlen ofnmlen
Definition: alp_f2c.H:81
ftnint cirec
Definition: alp_f2c.H:63
char * osta
Definition: alp_f2c.H:82
char * icifmt
Definition: alp_f2c.H:71
shortint(* J_fp)()
Definition: alp_f2c.H:188
f2c_complex c
Definition: alp_f2c.H:139
char * infile
Definition: alp_f2c.H:106
f2c_real r
Definition: alp_f2c.H:137
VOID(* Z_fp)()
Definition: alp_f2c.H:193
flag ciend
Definition: alp_f2c.H:61
long int logical
Definition: alp_f2c.H:31
flag oerr
Definition: alp_f2c.H:78
ftnint * inex
Definition: alp_f2c.H:108
char * ofnm
Definition: alp_f2c.H:80
long flag
Definition: alp_f2c.H:52
double doublereal
Definition: alp_f2c.H:28
ftnlen indirlen
Definition: alp_f2c.H:119
doublecomplex z
Definition: alp_f2c.H:140
Definition: alp_f2c.H:103
char * oacc
Definition: alp_f2c.H:83
char * inacc
Definition: alp_f2c.H:114
ftnint inunit
Definition: alp_f2c.H:105
Definition: alp_f2c.H:77
Definition: alp_f2c.H:155
integer i
Definition: alp_f2c.H:136
unsigned long int uinteger
Definition: alp_f2c.H:24
int type
Definition: alp_f2c.H:151
flag cerr
Definition: alp_f2c.H:91
VOID(* C_fp)()
Definition: alp_f2c.H:192
Definition: alp_f2c.H:29
double doublereal
Definition: resolve.hpp:7
flag cierr
Definition: alp_f2c.H:59
ftnlen innamlen
Definition: alp_f2c.H:113
long Long
Definition: alp_f2c.H:145
VOID(* H_fp)()
Definition: alp_f2c.H:196
flag iciend
Definition: alp_f2c.H:70
char * inform
Definition: alp_f2c.H:122
doublereal E_f
Definition: alp_f2c.H:203
Definition: alp_f2c.H:58
Definition: alp_f2c.H:97
ftnlen * dims
Definition: alp_f2c.H:150
float f2c_real
Definition: alp_f2c.H:27
ftnlen inseqlen
Definition: alp_f2c.H:117
char * oblnk
Definition: alp_f2c.H:86
ftnint * inrecl
Definition: alp_f2c.H:126
doublereal r
Definition: alp_f2c.H:30
char * name
Definition: alp_f2c.H:148
doublereal d
Definition: alp_f2c.H:138
VOID Z_f
Definition: alp_f2c.H:202
ftnint * innrec
Definition: alp_f2c.H:127
int nvars
Definition: alp_f2c.H:158
ftnint * innum
Definition: alp_f2c.H:110
MSKint32t MSKint32t MSKint32t i
Definition: mosek.h:2278
Definition: alp_f2c.H:147
ftnint informlen
Definition: alp_f2c.H:123
ftnlen infmtlen
Definition: alp_f2c.H:121
short int shortint
Definition: alp_f2c.H:26
Definition: alp_f2c.H:90
ftnlen inblanklen
Definition: alp_f2c.H:129
Vardesc ** vars
Definition: alp_f2c.H:157
ftnint cunit
Definition: alp_f2c.H:92
MSKstreamtypee MSKint32t MSKint32t MSKint32t MSKint32t MSKint32t MSKint32t MSKint32t MSKint32t MSKint32t a
Definition: mosek.h:3833
char * ofm
Definition: alp_f2c.H:84
char * indir
Definition: alp_f2c.H:118
char * name
Definition: alp_f2c.H:156
doublereal(*)(* E_fp)()
Definition: alp_f2c.H:191
ftnint aunit
Definition: alp_f2c.H:99
char * inname
Definition: alp_f2c.H:112
Definition: alp_f2c.H:134
long ftnint
Definition: alp_f2c.H:54
char * inseq
Definition: alp_f2c.H:116
shortint h
Definition: alp_f2c.H:135
integer(* I_fp)()
Definition: alp_f2c.H:189
char * infmt
Definition: alp_f2c.H:120
f2c_real r
Definition: alp_f2c.H:29
f2c_real(* R_fp)()
Definition: alp_f2c.H:190
flag aerr
Definition: alp_f2c.H:98
ftnint ciunit
Definition: alp_f2c.H:60
char * csta
Definition: alp_f2c.H:93
int ungetc()
ftnint * innamed
Definition: alp_f2c.H:111
ftnint * inopen
Definition: alp_f2c.H:109
flag inerr
Definition: alp_f2c.H:104
char * inunf
Definition: alp_f2c.H:124
Definition: alp_f2c.H:30
ftnint orl
Definition: alp_f2c.H:85
#define VOID
Definition: alp_f2c.H:132
Home  |  Download & InstallContributions