annotate ext/clapack/include/f2c.h @ 211:a41bea655151 msvc

Rename FFT back again, now we have our own project
author Chris Cannam
date Mon, 05 Feb 2018 17:40:13 +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