From: ceriel Date: Wed, 19 Jul 1989 14:51:19 +0000 (+0000) Subject: needed ldexp routine for exp.c X-Git-Tag: release-5-5~2327 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=52a8f7d1f14efa2046b18fee78cf6e3fcb67f4c7;p=ack.git needed ldexp routine for exp.c --- diff --git a/lang/pc/libpc/exp.c b/lang/pc/libpc/exp.c index f03aacbe4..a080ef39a 100644 --- a/lang/pc/libpc/exp.c +++ b/lang/pc/libpc/exp.c @@ -11,6 +11,38 @@ #include extern _trp(); +static double +ldexp(fl,exp) + double fl; + int exp; +{ + extern double _fef(); + int sign = 1; + int currexp; + + if (fl<0) { + fl = -fl; + sign = -1; + } + fl = _fef(fl,&currexp); + exp += currexp; + if (exp > 0) { + while (exp>30) { + fl *= (double) (1L << 30); + exp -= 30; + } + fl *= (double) (1L << exp); + } + else { + while (exp<-30) { + fl /= (double) (1L << 30); + exp += 30; + } + fl /= (double) (1L << -exp); + } + return sign * fl; +} + double _exp(x) double x;