7 #include "sphinxbase/f2c.h"
10 #pragma warning (disable: 4244)
23 do_fio(integer * c,
char *s, ftnlen l)
31 s_rnge(
char *var,
int index,
char *routine,
int lineno)
34 "array index out-of-bounds for %s[%d] in routine %s:%d\n", var,
35 index, routine, lineno);
51 f__cabs(
float real,
float imag)
65 if ((imag + real) == real)
66 return ((
float) real);
69 temp = real * sqrt(1.0 + temp * temp);
100 #define log10e 0.43429448190325182765
114 return (log10e * log(*x));
124 r_sign(real * a, real * b)
128 x = (*a >= 0 ? *a : -*a);
129 return (*b >= 0 ? x : -x);
145 return ((*x) >= 0 ? floor(*x + .5) : -floor(.5 - *x));
158 pow_dd(doublereal * ap, doublereal * bp)
161 return (pow(*ap, *bp));
172 pow_ri(real * ap, integer * bp)
211 extern char *F77_aloc();
216 extern char *F77_aloc(ftnlen,
char *);
223 s_cat(lp, rpp, rnp, np, ll)
225 ftnlen rnp[], *np, ll;
227 s_cat(
char *lp,
char *rpp[], ftnlen rnp[], ftnlen * np, ftnlen ll)
244 if (rp >= lp1 || rp + m <= lp) {
253 lp = lp1 = F77_aloc(L = ll,
"s_cat");
258 for (i = 0; i < n; ++i) {
271 memmove(lp0, lp1, L);
282 s_cmp(a0, b0, la, lb)
287 s_cmp(
char *a0,
char *b0, ftnlen la, ftnlen lb)
290 register unsigned char *a, *aend, *b, *bend;
291 a = (
unsigned char *) a0;
292 b = (
unsigned char *) b0;
342 register
char *a, *b;
346 s_copy(
register char *a,
register char *b, ftnlen la, ftnlen lb)
349 register char *aend, *bend;
355 if (a <= b || a >= b + la)
361 for (b += la; a < aend;)
368 if (a <= b || a >= bend)
392 float f__cabs(
float,
float);
397 return (f__cabs(z->r, z->i));
402 extern void sig_die();
407 extern void sig_die(
char *,
int);
415 if ((abr = b->r) < 0.)
417 if ((abi = b->i) < 0.)
424 den = b->i * (1 + ratio * ratio);
425 c->r = (a->r * ratio + a->i) / den;
426 c->i = (a->i * ratio - a->r) / den;
431 den = b->r * (1 + ratio * ratio);
432 c->r = (a->r + a->i * ratio) / den;
433 c->i = (a->i - a->r * ratio) / den;
448 extern float f__cabs(
float,
float);
455 if ((mag = f__cabs(z->r, z->i)) == 0.)
458 r->r = sqrt(0.5 * (mag + z->r));
459 r->i = z->i / r->r / 2;
462 r->i = sqrt(0.5 * (mag - z->r));
465 r->r = z->i / r->i / 2;
474 integer pow_ii(ap, bp) integer *ap, *bp;
476 integer pow_ii(integer * ap, integer * bp)
486 if (n == 0 || x == 1)
489 return x != 0 ? 1 / x : 0;
507 extern void f_exit();
524 int s_stop(
char *s, ftnlen n)
530 fprintf(stderr,
"STOP ");
531 for (i = 0; i < n; ++i)
533 fprintf(stderr,
" statement executed\n");