annotate ext/clapack/include/f2c.h @ 209:ccd2019190bf msvc

Some MSVC fixes, including (temporarily, probably) renaming the FFT source file to avoid getting it mixed up with the Vamp SDK one in our object dir
author Chris Cannam
date Thu, 01 Feb 2018 16:34:08 +0000
parents 45330e0d2819
children
rev   line source
Chris@202 1 /* f2c.h -- Standard Fortran to C header file */
Chris@202 2
Chris@202 3 /** barf [ba:rf] 2. "He suggested using FORTRAN, and everybody barfed."
Chris@202 4
Chris@202 5 - From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */
Chris@202 6
Chris@202 7 #ifndef F2C_INCLUDE
Chris@202 8 #define F2C_INCLUDE
Chris@202 9
Chris@202 10 typedef int integer;
Chris@202 11 typedef unsigned int uinteger;
Chris@202 12 typedef char *address;
Chris@202 13 typedef short shortint;
Chris@202 14 typedef float real;
Chris@202 15 typedef double doublereal;
Chris@202 16 typedef struct { real r, i; } complex;
Chris@202 17 typedef struct { doublereal r, i; } doublecomplex;
Chris@202 18 typedef int logical;
Chris@202 19 typedef short shortlogical;
Chris@202 20 typedef char logical1;
Chris@202 21 typedef char integer1;
Chris@202 22 #ifdef INTEGER_STAR_8 /* Adjust for integer*8. */
Chris@202 23 typedef int64_t longint; /* system-dependent */
Chris@202 24 typedef uint64_t ulongint; /* system-dependent */
Chris@202 25 #define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
Chris@202 26 #define qbit_set(a,b) ((a) | ((ulongint)1 << (b)))
Chris@202 27 #endif
Chris@202 28
Chris@202 29 #define TRUE_ (1)
Chris@202 30 #define FALSE_ (0)
Chris@202 31
Chris@202 32 /* Extern is for use with -E */
Chris@202 33 #ifndef Extern
Chris@202 34 #define Extern extern
Chris@202 35 #endif
Chris@202 36
Chris@202 37 /* I/O stuff */
Chris@202 38
Chris@202 39 #ifdef f2c_i2
Chris@202 40 /* for -i2 */
Chris@202 41 typedef short flag;
Chris@202 42 typedef short ftnlen;
Chris@202 43 typedef short ftnint;
Chris@202 44 #else
Chris@202 45 typedef int flag;
Chris@202 46 typedef int ftnlen;
Chris@202 47 typedef int ftnint;
Chris@202 48 #endif
Chris@202 49
Chris@202 50 /*external read, write*/
Chris@202 51 typedef struct
Chris@202 52 { flag cierr;
Chris@202 53 ftnint ciunit;
Chris@202 54 flag ciend;
Chris@202 55 char *cifmt;
Chris@202 56 ftnint cirec;
Chris@202 57 } cilist;
Chris@202 58
Chris@202 59 /*internal read, write*/
Chris@202 60 typedef struct
Chris@202 61 { flag icierr;
Chris@202 62 char *iciunit;
Chris@202 63 flag iciend;
Chris@202 64 char *icifmt;
Chris@202 65 ftnint icirlen;
Chris@202 66 ftnint icirnum;
Chris@202 67 } icilist;
Chris@202 68
Chris@202 69 /*open*/
Chris@202 70 typedef struct
Chris@202 71 { flag oerr;
Chris@202 72 ftnint ounit;
Chris@202 73 char *ofnm;
Chris@202 74 ftnlen ofnmlen;
Chris@202 75 char *osta;
Chris@202 76 char *oacc;
Chris@202 77 char *ofm;
Chris@202 78 ftnint orl;
Chris@202 79 char *oblnk;
Chris@202 80 } olist;
Chris@202 81
Chris@202 82 /*close*/
Chris@202 83 typedef struct
Chris@202 84 { flag cerr;
Chris@202 85 ftnint cunit;
Chris@202 86 char *csta;
Chris@202 87 } cllist;
Chris@202 88
Chris@202 89 /*rewind, backspace, endfile*/
Chris@202 90 typedef struct
Chris@202 91 { flag aerr;
Chris@202 92 ftnint aunit;
Chris@202 93 } alist;
Chris@202 94
Chris@202 95 /* inquire */
Chris@202 96 typedef struct
Chris@202 97 { flag inerr;
Chris@202 98 ftnint inunit;
Chris@202 99 char *infile;
Chris@202 100 ftnlen infilen;
Chris@202 101 ftnint *inex; /*parameters in standard's order*/
Chris@202 102 ftnint *inopen;
Chris@202 103 ftnint *innum;
Chris@202 104 ftnint *innamed;
Chris@202 105 char *inname;
Chris@202 106 ftnlen innamlen;
Chris@202 107 char *inacc;
Chris@202 108 ftnlen inacclen;
Chris@202 109 char *inseq;
Chris@202 110 ftnlen inseqlen;
Chris@202 111 char *indir;
Chris@202 112 ftnlen indirlen;
Chris@202 113 char *infmt;
Chris@202 114 ftnlen infmtlen;
Chris@202 115 char *inform;
Chris@202 116 ftnint informlen;
Chris@202 117 char *inunf;
Chris@202 118 ftnlen inunflen;
Chris@202 119 ftnint *inrecl;
Chris@202 120 ftnint *innrec;
Chris@202 121 char *inblank;
Chris@202 122 ftnlen inblanklen;
Chris@202 123 } inlist;
Chris@202 124
Chris@202 125 #define VOID void
Chris@202 126
Chris@202 127 union Multitype { /* for multiple entry points */
Chris@202 128 integer1 g;
Chris@202 129 shortint h;
Chris@202 130 integer i;
Chris@202 131 /* longint j; */
Chris@202 132 real r;
Chris@202 133 doublereal d;
Chris@202 134 complex c;
Chris@202 135 doublecomplex z;
Chris@202 136 };
Chris@202 137
Chris@202 138 typedef union Multitype Multitype;
Chris@202 139
Chris@202 140 /*typedef long int Long;*/ /* No longer used; formerly in Namelist */
Chris@202 141
Chris@202 142 struct Vardesc { /* for Namelist */
Chris@202 143 char *name;
Chris@202 144 char *addr;
Chris@202 145 ftnlen *dims;
Chris@202 146 int type;
Chris@202 147 };
Chris@202 148 typedef struct Vardesc Vardesc;
Chris@202 149
Chris@202 150 struct Namelist {
Chris@202 151 char *name;
Chris@202 152 Vardesc **vars;
Chris@202 153 int nvars;
Chris@202 154 };
Chris@202 155 typedef struct Namelist Namelist;
Chris@202 156
Chris@202 157 #define abs(x) ((x) >= 0 ? (x) : -(x))
Chris@202 158 #define dabs(x) (doublereal)abs(x)
Chris@202 159 #define min(a,b) ((a) <= (b) ? (a) : (b))
Chris@202 160 #define max(a,b) ((a) >= (b) ? (a) : (b))
Chris@202 161 #define dmin(a,b) (doublereal)min(a,b)
Chris@202 162 #define dmax(a,b) (doublereal)max(a,b)
Chris@202 163 #define bit_test(a,b) ((a) >> (b) & 1)
Chris@202 164 #define bit_clear(a,b) ((a) & ~((uinteger)1 << (b)))
Chris@202 165 #define bit_set(a,b) ((a) | ((uinteger)1 << (b)))
Chris@202 166
Chris@202 167 /* procedure parameter types for -A and -C++ */
Chris@202 168
Chris@202 169 #define F2C_proc_par_types 1
Chris@202 170 #ifdef __cplusplus
Chris@202 171 typedef int /* Unknown procedure type */ (*U_fp)(...);
Chris@202 172 typedef shortint (*J_fp)(...);
Chris@202 173 typedef integer (*I_fp)(...);
Chris@202 174 typedef real (*R_fp)(...);
Chris@202 175 typedef doublereal (*D_fp)(...), (*E_fp)(...);
Chris@202 176 typedef /* Complex */ VOID (*C_fp)(...);
Chris@202 177 typedef /* Double Complex */ VOID (*Z_fp)(...);
Chris@202 178 typedef logical (*L_fp)(...);
Chris@202 179 typedef shortlogical (*K_fp)(...);
Chris@202 180 typedef /* Character */ VOID (*H_fp)(...);
Chris@202 181 typedef /* Subroutine */ int (*S_fp)(...);
Chris@202 182 #else
Chris@202 183 typedef int /* Unknown procedure type */ (*U_fp)();
Chris@202 184 typedef shortint (*J_fp)();
Chris@202 185 typedef integer (*I_fp)();
Chris@202 186 typedef real (*R_fp)();
Chris@202 187 typedef doublereal (*D_fp)(), (*E_fp)();
Chris@202 188 typedef /* Complex */ VOID (*C_fp)();
Chris@202 189 typedef /* Double Complex */ VOID (*Z_fp)();
Chris@202 190 typedef logical (*L_fp)();
Chris@202 191 typedef shortlogical (*K_fp)();
Chris@202 192 typedef /* Character */ VOID (*H_fp)();
Chris@202 193 typedef /* Subroutine */ int (*S_fp)();
Chris@202 194 #endif
Chris@202 195 /* E_fp is for real functions when -R is not specified */
Chris@202 196 typedef VOID C_f; /* complex function */
Chris@202 197 typedef VOID H_f; /* character function */
Chris@202 198 typedef VOID Z_f; /* double complex function */
Chris@202 199 typedef doublereal E_f; /* real function with -R not specified */
Chris@202 200
Chris@202 201 /* undef any lower-case symbols that your C compiler predefines, e.g.: */
Chris@202 202
Chris@202 203 #ifndef Skip_f2c_Undefs
Chris@202 204 #undef cray
Chris@202 205 #undef gcos
Chris@202 206 #undef mc68010
Chris@202 207 #undef mc68020
Chris@202 208 #undef mips
Chris@202 209 #undef pdp11
Chris@202 210 #undef sgi
Chris@202 211 #undef sparc
Chris@202 212 #undef sun
Chris@202 213 #undef sun2
Chris@202 214 #undef sun3
Chris@202 215 #undef sun4
Chris@202 216 #undef u370
Chris@202 217 #undef u3b
Chris@202 218 #undef u3b2
Chris@202 219 #undef u3b5
Chris@202 220 #undef unix
Chris@202 221 #undef vax
Chris@202 222 #endif
Chris@202 223 #endif