Merge "README-SERIOUSLY.bestpractices.md: Speling correetions."
[asterisk/asterisk.git] / codecs / lpc10 / f2c.h
1 /*
2
3 $Log$
4 Revision 1.15  2004/06/26 03:50:14  markster
5 Merge source cleanups (bug #1911)
6
7 Revision 1.14  2003/02/12 13:59:15  matteo
8 mer feb 12 14:56:57 CET 2003
9
10 Revision 1.1.1.1  2003/02/12 13:59:15  matteo
11 mer feb 12 14:56:57 CET 2003
12
13 Revision 1.2  2000/01/05 08:20:39  markster
14 Some OSS fixes and a few lpc changes to make it actually work
15
16  * Revision 1.2  1996/08/20  20:26:28  jaf
17  * Any typedef defining a type that was used in lpc10_encoder_state or
18  * lpc10_decoder_state struct's was commented out here and added to
19  * lpc10.h.
20  *
21  * Revision 1.1  1996/08/19  22:32:13  jaf
22  * Initial revision
23  *
24
25 */
26
27 /*
28  * f2c.h
29  *
30  * SCCS ID:  @(#)f2c.h 1.2 96/05/19
31  */
32
33 /* f2c.h  --  Standard Fortran to C header file */
34
35 /**  barf  [ba:rf]  2.  "He suggested using FORTRAN, and everybody barfed."
36
37         - From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */
38
39 #ifndef F2C_INCLUDE
40 #define F2C_INCLUDE
41
42 #include "lpc10.h"
43
44 /*typedef long int integer;*/
45 /*typedef INT32 integer;*/
46 /*typedef short int shortint;*/
47 /*typedef INT16 shortint;*/
48 /*typedef float real;*/
49 /* doublereal only used for function arguments to sqrt, exp, etc. */
50 typedef double doublereal;
51 /* 32 bits seems wasteful, but there really aren't that many logical
52  * variables around, and making them 32 bits could avoid word
53  * alignment problems, perhaps.  */
54 /*typedef long int logical;*/
55 /*typedef INT32 logical;*/
56 /* The following types are not used in the translated C code for the
57  * LPC-10 coder, but they might be needed by the definitions down
58  * below, so they don't cause compilation errors.  */
59 typedef char *address;
60 typedef struct { real r, i; } complex;
61 typedef struct { doublereal r, i; } doublecomplex;
62 typedef short int shortlogical;
63 typedef char logical1;
64 typedef char integer1;
65 /* typedef long long longint; */ /* system-dependent */
66
67 #define TRUE_ (1)
68 #define FALSE_ (0)
69
70 /* Extern is for use with -E */
71 #ifndef Extern
72 #define Extern extern
73 #endif
74
75 /* I/O stuff */
76
77 #ifdef f2c_i2
78 /* for -i2 */
79 typedef short flag;
80 typedef short ftnlen;
81 typedef short ftnint;
82 #else
83 typedef long int flag;
84 typedef long int ftnlen;
85 typedef long int ftnint;
86 #endif
87
88 /*external read, write*/
89 typedef struct
90 {       flag cierr;
91         ftnint ciunit;
92         flag ciend;
93         char *cifmt;
94         ftnint cirec;
95 } cilist;
96
97 /*internal read, write*/
98 typedef struct
99 {       flag icierr;
100         char *iciunit;
101         flag iciend;
102         char *icifmt;
103         ftnint icirlen;
104         ftnint icirnum;
105 } icilist;
106
107 /*open*/
108 typedef struct
109 {       flag oerr;
110         ftnint ounit;
111         char *ofnm;
112         ftnlen ofnmlen;
113         char *osta;
114         char *oacc;
115         char *ofm;
116         ftnint orl;
117         char *oblnk;
118 } olist;
119
120 /*close*/
121 typedef struct
122 {       flag cerr;
123         ftnint cunit;
124         char *csta;
125 } cllist;
126
127 /*rewind, backspace, endfile*/
128 typedef struct
129 {       flag aerr;
130         ftnint aunit;
131 } alist;
132
133 /* inquire */
134 typedef struct
135 {       flag inerr;
136         ftnint inunit;
137         char *infile;
138         ftnlen infilen;
139         ftnint  *inex;  /*parameters in standard's order*/
140         ftnint  *inopen;
141         ftnint  *innum;
142         ftnint  *innamed;
143         char    *inname;
144         ftnlen  innamlen;
145         char    *inacc;
146         ftnlen  inacclen;
147         char    *inseq;
148         ftnlen  inseqlen;
149         char    *indir;
150         ftnlen  indirlen;
151         char    *infmt;
152         ftnlen  infmtlen;
153         char    *inform;
154         ftnint  informlen;
155         char    *inunf;
156         ftnlen  inunflen;
157         ftnint  *inrecl;
158         ftnint  *innrec;
159         char    *inblank;
160         ftnlen  inblanklen;
161 } inlist;
162
163 #define VOID void
164
165 union Multitype {       /* for multiple entry points */
166         integer1 g;
167         shortint h;
168         integer i;
169         /* longint j; */
170         real r;
171         doublereal d;
172         complex c;
173         doublecomplex z;
174         };
175
176 typedef union Multitype Multitype;
177
178 /*typedef long int Long;*/      /* No longer used; formerly in Namelist */
179
180 struct Vardesc {        /* for Namelist */
181         char *name;
182         char *addr;
183         ftnlen *dims;
184         int  type;
185         };
186 typedef struct Vardesc Vardesc;
187
188 struct Namelist {
189         char *name;
190         Vardesc **vars;
191         int nvars;
192         };
193 typedef struct Namelist Namelist;
194
195 #define abs(x) ((x) >= 0 ? (x) : -(x))
196 #define dabs(x) (doublereal)abs(x)
197 #define min(a,b) ((a) <= (b) ? (a) : (b))
198 #define max(a,b) ((a) >= (b) ? (a) : (b))
199 #define dmin(a,b) (doublereal)min(a,b)
200 #define dmax(a,b) (doublereal)max(a,b)
201
202 /* procedure parameter types for -A and -C++ */
203
204 #define F2C_proc_par_types 1
205 #ifdef __cplusplus
206 typedef int /* Unknown procedure type */ (*U_fp)(...);
207 typedef shortint (*J_fp)(...);
208 typedef integer (*I_fp)(...);
209 typedef real (*R_fp)(...);
210 typedef doublereal (*D_fp)(...), (*E_fp)(...);
211 typedef /* Complex */ VOID (*C_fp)(...);
212 typedef /* Double Complex */ VOID (*Z_fp)(...);
213 typedef logical (*L_fp)(...);
214 typedef shortlogical (*K_fp)(...);
215 typedef /* Character */ VOID (*H_fp)(...);
216 typedef /* Subroutine */ int (*S_fp)(...);
217 #else
218 typedef int /* Unknown procedure type */ (*U_fp)(VOID);
219 typedef shortint (*J_fp)(VOID);
220 typedef integer (*I_fp)(VOID);
221 typedef real (*R_fp)(VOID);
222 typedef doublereal (*D_fp)(VOID), (*E_fp)(VOID);
223 typedef /* Complex */ VOID (*C_fp)(VOID);
224 typedef /* Double Complex */ VOID (*Z_fp)(VOID);
225 typedef logical (*L_fp)(VOID);
226 typedef shortlogical (*K_fp)(VOID);
227 typedef /* Character */ VOID (*H_fp)(VOID);
228 typedef /* Subroutine */ int (*S_fp)(VOID);
229 #endif
230 /* E_fp is for real functions when -R is not specified */
231 typedef VOID C_f;       /* complex function */
232 typedef VOID H_f;       /* character function */
233 typedef VOID Z_f;       /* double complex function */
234 typedef doublereal E_f; /* real function with -R not specified */
235
236 /* undef any lower-case symbols that your C compiler predefines, e.g.: */
237
238 #ifndef Skip_f2c_Undefs
239 #undef cray
240 #undef gcos
241 #undef mc68010
242 #undef mc68020
243 #undef mips
244 #undef pdp11
245 #undef sgi
246 #undef sparc
247 #undef sun
248 #undef sun2
249 #undef sun3
250 #undef sun4
251 #undef u370
252 #undef u3b
253 #undef u3b2
254 #undef u3b5
255 #undef unix
256 #undef vax
257 #endif
258
259 #ifdef KR_headers
260 extern integer pow_ii(ap, bp);
261 extern double r_sign(a,b);
262 extern integer i_nint(x);
263 #else
264 extern integer pow_ii(integer *ap, integer *bp);
265 extern double r_sign(real *a, real *b);
266 extern integer i_nint(real *x);
267
268 #endif
269 #ifdef P_R_O_T_O_T_Y_P_E_S
270 extern int bsynz_(real *coef, integer *ip, integer *iv,
271                   real *sout, real *rms, real *ratio, real *g2pass,
272                   struct lpc10_decoder_state *st);
273 extern int chanwr_(integer *order, integer *ipitv, integer *irms,
274                    integer *irc, integer *ibits, struct lpc10_encoder_state *st);
275 extern int chanrd_(integer *order, integer *ipitv, integer *irms,
276                    integer *irc, integer *ibits);
277 extern int chanwr_0_(int n__, integer *order, integer *ipitv,
278                      integer *irms, integer *irc, integer *ibits,
279                      struct lpc10_encoder_state *st);
280 extern int dcbias_(integer *len, real *speech, real *sigout);
281 extern int decode_(integer *ipitv, integer *irms, integer *irc,
282                    integer *voice, integer *pitch, real *rms,
283                    real *rc, struct lpc10_decoder_state *st);
284 extern int deemp_(real *x, integer *n, struct lpc10_decoder_state *st);
285 extern int difmag_(real *speech, integer *lpita, integer *tau, integer *ltau,
286                    integer *maxlag, real *amdf, integer *minptr, integer *maxptr);
287 extern int dyptrk_(real *amdf, integer *ltau, integer *
288                    minptr, integer *voice, integer *pitch, integer *midx,
289                    struct lpc10_encoder_state *st);
290 extern int encode_(integer *voice, integer *pitch, real *rms, real *rc,
291                    integer *ipitch, integer *irms, integer *irc);
292 extern int energy_(integer *len, real *speech, real *rms);
293 extern int ham84_(integer *input, integer *output, integer *errcnt);
294 extern int hp100_(real *speech, integer *start, integer *end,
295                   struct lpc10_encoder_state *st);
296 extern int inithp100_(void);
297 extern int invert_(integer *order, real *phi, real *psi, real *rc);
298 extern int irc2pc_(real *rc, real *pc, integer *order, real *gprime, real *g2pass);
299 extern int ivfilt_(real *lpbuf, real *ivbuf, integer *len, integer *nsamp, real *ivrc);
300 extern int lpcdec_(integer *bits, real *speech);
301 extern int initlpcdec_(void);
302 extern int lpcenc_(real *speech, integer *bits);
303 extern int initlpcenc_(void);
304 extern int lpfilt_(real *inbuf, real *lpbuf, integer *len, integer *nsamp);
305 extern integer median_(integer *d1, integer *d2, integer *d3);
306 extern int mload_(integer *order, integer *awins, integer *awinf, real *speech, real *phi, real *psi);
307 extern int onset_(real *pebuf, integer *osbuf, integer *osptr, integer *oslen, integer *sbufl, integer *sbufh, integer *lframe, struct lpc10_encoder_state *st);
308 extern int pitsyn_(integer *order, integer *voice, integer *pitch, real *rms, real *rc, integer *lframe, integer *ivuv, integer *ipiti, real *rmsi, real *rci, integer *nout, real *ratio, struct lpc10_decoder_state *st);
309 extern int placea_(integer *ipitch, integer *voibuf, integer *obound, integer *af, integer *vwin, integer *awin, integer *ewin, integer *lframe, integer *maxwin);
310 extern int placev_(integer *osbuf, integer *osptr, integer *oslen, integer *obound, integer *vwin, integer *af, integer *lframe, integer *minwin, integer *maxwin, integer *dvwinl, integer *dvwinh);
311 extern int preemp_(real *inbuf, real *pebuf, integer *nsamp, real *coef, real *z__);
312 extern int prepro_(real *speech, integer *length,
313                    struct lpc10_encoder_state *st);
314 extern int decode_(integer *ipitv, integer *irms, integer *irc, integer *voice, integer *pitch, real *rms, real *rc, struct lpc10_decoder_state *st);
315 extern integer random_(struct lpc10_decoder_state *st);
316 extern int rcchk_(integer *order, real *rc1f, real *rc2f);
317 extern int synths_(integer *voice, integer *pitch, real *rms, real *rc, real *speech, integer *k, struct lpc10_decoder_state *st);
318 extern int tbdm_(real *speech, integer *lpita, integer *tau, integer *ltau, real *amdf, integer *minptr, integer *maxptr, integer *mintau);
319 extern int voicin_(integer *vwin, real *inbuf, real *lpbuf, integer *buflim, integer *half, real *minamd, real *maxamd, integer *mintau, real *ivrc, integer *obound, integer *voibuf, integer *af, struct lpc10_encoder_state *st);
320 extern int vparms_(integer *vwin, real *inbuf, real *lpbuf, integer *buflim, integer *half, real *dither, integer *mintau, integer *zc, integer *lbe, integer *fbe, real *qs, real *rc1, real *ar_b__, real *ar_f__);
321
322 #endif
323
324
325 #endif /* ! defined F2C_INCLUDE */