Numworks Epsilon
1.4.1
Graphing Calculator Operating System
e_scalb.c
Go to the documentation of this file.
1
/* @(#)e_scalb.c 5.1 93/09/24 */
2
/*
3
* ====================================================
4
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
5
*
6
* Developed at SunPro, a Sun Microsystems, Inc. business.
7
* Permission to use, copy, modify, and distribute this
8
* software is freely granted, provided that this notice
9
* is preserved.
10
* ====================================================
11
*/
12
13
/*
14
* scalb(x, fn) is provide for
15
* passing various standard test suite. One
16
* should use scalbn() instead.
17
*/
18
19
#include "math.h"
20
#include "
math_private.h
"
21
22
#ifdef _SCALB_INT
23
double
24
scalb
(
double
x,
int
fn)
25
{
26
return
scalbn
(x, fn);
27
}
28
29
#else
30
31
double
32
scalb
(
double
x,
double
fn)
33
{
34
if
(
isnan
(x)||
isnan
(fn))
return
x*fn;
35
if
(!
finite
(fn)) {
36
if
(fn>0.0)
return
x*fn;
37
else
return
x/(-fn);
38
}
39
if
(
rint
(fn)!=fn)
return
(fn-fn)/(fn-fn);
40
if
( fn > 65000.0)
return
scalbn
(x, 65000);
41
if
(-fn > 65000.0)
return
scalbn
(x,-65000);
42
return
scalbn
(x,(
int
)fn);
43
}
44
#endif
scalbn
#define scalbn(x, n)
Definition:
math.h:193
rint
#define rint(x)
Definition:
math.h:191
finite
#define finite(x)
Definition:
math.h:40
isnan
#define isnan(x)
Definition:
math.h:43
scalb
double scalb(double x, double fn)
Definition:
e_scalb.c:32
math_private.h
epsilon
liba
src
external
openbsd
e_scalb.c
Generated by
1.8.14