mirror of
https://git.planet-casio.com/Lephenixnoir/OpenLibm.git
synced 2025-07-03 02:56:39 +02:00
Remove scalb(). The scalbn() or scalbln() function should be used.
This commit is contained in:
parent
c08bd962f2
commit
ce4982acf8
6 changed files with 1 additions and 161 deletions
|
@ -280,10 +280,6 @@ double jn(int, double);
|
||||||
double y0(double);
|
double y0(double);
|
||||||
double y1(double);
|
double y1(double);
|
||||||
double yn(int, double);
|
double yn(int, double);
|
||||||
|
|
||||||
#if __XSI_VISIBLE <= 600 || __BSD_VISIBLE
|
|
||||||
double scalb(double, double);
|
|
||||||
#endif
|
|
||||||
#endif /* __BSD_VISIBLE || __XSI_VISIBLE */
|
#endif /* __BSD_VISIBLE || __XSI_VISIBLE */
|
||||||
|
|
||||||
#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999
|
#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999
|
||||||
|
@ -392,7 +388,6 @@ float dremf(float, float);
|
||||||
float j0f(float);
|
float j0f(float);
|
||||||
float j1f(float);
|
float j1f(float);
|
||||||
float jnf(int, float);
|
float jnf(int, float);
|
||||||
float scalbf(float, float);
|
|
||||||
float y0f(float);
|
float y0f(float);
|
||||||
float y1f(float);
|
float y1f(float);
|
||||||
float ynf(int, float);
|
float ynf(int, float);
|
||||||
|
|
|
@ -5,7 +5,7 @@ $(CUR_SRCS) = common.c \
|
||||||
e_hypot.c e_hypotf.c e_j0.c e_j0f.c e_j1.c e_j1f.c \
|
e_hypot.c e_hypotf.c e_j0.c e_j0f.c e_j1.c e_j1f.c \
|
||||||
e_jn.c e_jnf.c e_lgamma.c e_lgamma_r.c e_lgammaf.c e_lgammaf_r.c \
|
e_jn.c e_jnf.c e_lgamma.c e_lgamma_r.c e_lgammaf.c e_lgammaf_r.c \
|
||||||
e_lgammal.c e_log.c e_log10.c e_log10f.c e_log2.c e_log2f.c e_logf.c \
|
e_lgammal.c e_log.c e_log10.c e_log10f.c e_log2.c e_log2f.c e_logf.c \
|
||||||
e_pow.c e_powf.c e_remainder.c e_remainderf.c e_scalb.c e_scalbf.c \
|
e_pow.c e_powf.c e_remainder.c e_remainderf.c \
|
||||||
e_rem_pio2.c e_rem_pio2f.c \
|
e_rem_pio2.c e_rem_pio2f.c \
|
||||||
e_sinh.c e_sinhf.c e_sqrt.c e_sqrtf.c \
|
e_sinh.c e_sinhf.c e_sqrt.c e_sqrtf.c \
|
||||||
k_cos.c k_exp.c k_expf.c k_rem_pio2.c k_sin.c k_tan.c \
|
k_cos.c k_exp.c k_expf.c k_rem_pio2.c k_sin.c k_tan.c \
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
|
|
||||||
/* @(#)e_scalb.c 1.3 95/01/18 */
|
|
||||||
/*
|
|
||||||
* ====================================================
|
|
||||||
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
|
||||||
*
|
|
||||||
* Developed at SunSoft, a Sun Microsystems, Inc. business.
|
|
||||||
* Permission to use, copy, modify, and distribute this
|
|
||||||
* software is freely granted, provided that this notice
|
|
||||||
* is preserved.
|
|
||||||
* ====================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "cdefs-compat.h"
|
|
||||||
//__FBSDID("$FreeBSD: src/lib/msun/src/e_scalb.c,v 1.13 2008/02/22 02:30:35 das Exp $");
|
|
||||||
|
|
||||||
/*
|
|
||||||
* __ieee754_scalb(x, fn) is provide for
|
|
||||||
* passing various standard test suite. One
|
|
||||||
* should use scalbn() instead.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <openlibm_math.h>
|
|
||||||
|
|
||||||
#include "math_private.h"
|
|
||||||
|
|
||||||
#ifdef _SCALB_INT
|
|
||||||
DLLEXPORT double
|
|
||||||
__ieee754_scalb(double x, int fn)
|
|
||||||
#else
|
|
||||||
DLLEXPORT double
|
|
||||||
__ieee754_scalb(double x, double fn)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
#ifdef _SCALB_INT
|
|
||||||
return scalbn(x,fn);
|
|
||||||
#else
|
|
||||||
if (isnan(x)||isnan(fn)) return x*fn;
|
|
||||||
if (!isfinite(fn)) {
|
|
||||||
if(fn>0.0) return x*fn;
|
|
||||||
else return x/(-fn);
|
|
||||||
}
|
|
||||||
if (rint(fn)!=fn) return (fn-fn)/(fn-fn);
|
|
||||||
if ( fn > 65000.0) return scalbn(x, 65000);
|
|
||||||
if (-fn > 65000.0) return scalbn(x,-65000);
|
|
||||||
return scalbn(x,(int)fn);
|
|
||||||
#endif
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
/* e_scalbf.c -- float version of e_scalb.c.
|
|
||||||
* Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* ====================================================
|
|
||||||
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
|
||||||
*
|
|
||||||
* Developed at SunPro, a Sun Microsystems, Inc. business.
|
|
||||||
* Permission to use, copy, modify, and distribute this
|
|
||||||
* software is freely granted, provided that this notice
|
|
||||||
* is preserved.
|
|
||||||
* ====================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "cdefs-compat.h"
|
|
||||||
//__FBSDID("$FreeBSD: src/lib/msun/src/e_scalbf.c,v 1.13 2008/02/22 02:30:35 das Exp $");
|
|
||||||
|
|
||||||
#include <openlibm_math.h>
|
|
||||||
|
|
||||||
#include "math_private.h"
|
|
||||||
|
|
||||||
#ifdef _SCALB_INT
|
|
||||||
DLLEXPORT float
|
|
||||||
__ieee754_scalbf(float x, int fn)
|
|
||||||
#else
|
|
||||||
DLLEXPORT float
|
|
||||||
__ieee754_scalbf(float x, float fn)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
#ifdef _SCALB_INT
|
|
||||||
return scalbnf(x,fn);
|
|
||||||
#else
|
|
||||||
if (isnan(x)||isnan(fn)) return x*fn;
|
|
||||||
if (!isfinite(fn)) {
|
|
||||||
if(fn>(float)0.0) return x*fn;
|
|
||||||
else return x/(-fn);
|
|
||||||
}
|
|
||||||
if (rintf(fn)!=fn) return (fn-fn)/(fn-fn);
|
|
||||||
if ( fn > (float)65000.0) return scalbnf(x, 65000);
|
|
||||||
if (-fn > (float)65000.0) return scalbnf(x,-65000);
|
|
||||||
return scalbnf(x,(int)fn);
|
|
||||||
#endif
|
|
||||||
}
|
|
|
@ -291,7 +291,6 @@ irint(double x)
|
||||||
#define __ieee754_jn jn
|
#define __ieee754_jn jn
|
||||||
#define __ieee754_yn yn
|
#define __ieee754_yn yn
|
||||||
#define __ieee754_remainder remainder
|
#define __ieee754_remainder remainder
|
||||||
#define __ieee754_scalb scalb
|
|
||||||
#define __ieee754_sqrtf sqrtf
|
#define __ieee754_sqrtf sqrtf
|
||||||
#define __ieee754_acosf acosf
|
#define __ieee754_acosf acosf
|
||||||
#define __ieee754_acoshf acoshf
|
#define __ieee754_acoshf acoshf
|
||||||
|
@ -316,7 +315,6 @@ irint(double x)
|
||||||
#define __ieee754_jnf jnf
|
#define __ieee754_jnf jnf
|
||||||
#define __ieee754_ynf ynf
|
#define __ieee754_ynf ynf
|
||||||
#define __ieee754_remainderf remainderf
|
#define __ieee754_remainderf remainderf
|
||||||
#define __ieee754_scalbf scalbf
|
|
||||||
|
|
||||||
/* fdlibm kernel function */
|
/* fdlibm kernel function */
|
||||||
int __kernel_rem_pio2(double*,double*,int,int,int);
|
int __kernel_rem_pio2(double*,double*,int,int,int);
|
||||||
|
|
|
@ -3807,66 +3807,6 @@ round_test (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
scalb_test (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
init_max_error ();
|
|
||||||
|
|
||||||
check_float ("scalb (2.0, 0.5) == NaN plus invalid exception", FUNC(scalb) (2.0, 0.5), nan_value, 0, 0, INVALID_EXCEPTION);
|
|
||||||
check_float ("scalb (3.0, -2.5) == NaN plus invalid exception", FUNC(scalb) (3.0, -2.5), nan_value, 0, 0, INVALID_EXCEPTION);
|
|
||||||
|
|
||||||
check_float ("scalb (0, NaN) == NaN", FUNC(scalb) (0, nan_value), nan_value, 0, 0, 0);
|
|
||||||
check_float ("scalb (1, NaN) == NaN", FUNC(scalb) (1, nan_value), nan_value, 0, 0, 0);
|
|
||||||
|
|
||||||
check_float ("scalb (1, 0) == 1", FUNC(scalb) (1, 0), 1, 0, 0, 0);
|
|
||||||
check_float ("scalb (-1, 0) == -1", FUNC(scalb) (-1, 0), -1, 0, 0, 0);
|
|
||||||
|
|
||||||
check_float ("scalb (0, inf) == NaN plus invalid exception", FUNC(scalb) (0, plus_infty), nan_value, 0, 0, INVALID_EXCEPTION);
|
|
||||||
check_float ("scalb (-0, inf) == NaN plus invalid exception", FUNC(scalb) (minus_zero, plus_infty), nan_value, 0, 0, INVALID_EXCEPTION);
|
|
||||||
|
|
||||||
check_float ("scalb (0, 2) == 0", FUNC(scalb) (0, 2), 0, 0, 0, 0);
|
|
||||||
check_float ("scalb (-0, -4) == -0", FUNC(scalb) (minus_zero, -4), minus_zero, 0, 0, 0);
|
|
||||||
check_float ("scalb (0, 0) == 0", FUNC(scalb) (0, 0), 0, 0, 0, 0);
|
|
||||||
check_float ("scalb (-0, 0) == -0", FUNC(scalb) (minus_zero, 0), minus_zero, 0, 0, 0);
|
|
||||||
check_float ("scalb (0, -1) == 0", FUNC(scalb) (0, -1), 0, 0, 0, 0);
|
|
||||||
check_float ("scalb (-0, -10) == -0", FUNC(scalb) (minus_zero, -10), minus_zero, 0, 0, 0);
|
|
||||||
check_float ("scalb (0, -inf) == 0", FUNC(scalb) (0, minus_infty), 0, 0, 0, 0);
|
|
||||||
check_float ("scalb (-0, -inf) == -0", FUNC(scalb) (minus_zero, minus_infty), minus_zero, 0, 0, 0);
|
|
||||||
|
|
||||||
check_float ("scalb (inf, -1) == inf", FUNC(scalb) (plus_infty, -1), plus_infty, 0, 0, 0);
|
|
||||||
check_float ("scalb (-inf, -10) == -inf", FUNC(scalb) (minus_infty, -10), minus_infty, 0, 0, 0);
|
|
||||||
check_float ("scalb (inf, 0) == inf", FUNC(scalb) (plus_infty, 0), plus_infty, 0, 0, 0);
|
|
||||||
check_float ("scalb (-inf, 0) == -inf", FUNC(scalb) (minus_infty, 0), minus_infty, 0, 0, 0);
|
|
||||||
check_float ("scalb (inf, 2) == inf", FUNC(scalb) (plus_infty, 2), plus_infty, 0, 0, 0);
|
|
||||||
check_float ("scalb (-inf, 100) == -inf", FUNC(scalb) (minus_infty, 100), minus_infty, 0, 0, 0);
|
|
||||||
|
|
||||||
check_float ("scalb (0.1, -inf) == 0.0", FUNC(scalb) (0.1L, minus_infty), 0.0, 0, 0, 0);
|
|
||||||
check_float ("scalb (-0.1, -inf) == -0", FUNC(scalb) (-0.1L, minus_infty), minus_zero, 0, 0, 0);
|
|
||||||
|
|
||||||
check_float ("scalb (1, inf) == inf", FUNC(scalb) (1, plus_infty), plus_infty, 0, 0, 0);
|
|
||||||
check_float ("scalb (-1, inf) == -inf", FUNC(scalb) (-1, plus_infty), minus_infty, 0, 0, 0);
|
|
||||||
check_float ("scalb (inf, inf) == inf", FUNC(scalb) (plus_infty, plus_infty), plus_infty, 0, 0, 0);
|
|
||||||
check_float ("scalb (-inf, inf) == -inf", FUNC(scalb) (minus_infty, plus_infty), minus_infty, 0, 0, 0);
|
|
||||||
|
|
||||||
check_float ("scalb (inf, -inf) == NaN plus invalid exception", FUNC(scalb) (plus_infty, minus_infty), nan_value, 0, 0, INVALID_EXCEPTION);
|
|
||||||
check_float ("scalb (-inf, -inf) == NaN plus invalid exception", FUNC(scalb) (minus_infty, minus_infty), nan_value, 0, 0, INVALID_EXCEPTION);
|
|
||||||
|
|
||||||
check_float ("scalb (NaN, 1) == NaN", FUNC(scalb) (nan_value, 1), nan_value, 0, 0, 0);
|
|
||||||
check_float ("scalb (1, NaN) == NaN", FUNC(scalb) (1, nan_value), nan_value, 0, 0, 0);
|
|
||||||
check_float ("scalb (NaN, 0) == NaN", FUNC(scalb) (nan_value, 0), nan_value, 0, 0, 0);
|
|
||||||
check_float ("scalb (0, NaN) == NaN", FUNC(scalb) (0, nan_value), nan_value, 0, 0, 0);
|
|
||||||
check_float ("scalb (NaN, inf) == NaN", FUNC(scalb) (nan_value, plus_infty), nan_value, 0, 0, 0);
|
|
||||||
check_float ("scalb (inf, NaN) == NaN", FUNC(scalb) (plus_infty, nan_value), nan_value, 0, 0, 0);
|
|
||||||
check_float ("scalb (NaN, NaN) == NaN", FUNC(scalb) (nan_value, nan_value), nan_value, 0, 0, 0);
|
|
||||||
|
|
||||||
check_float ("scalb (0.8, 4) == 12.8", FUNC(scalb) (0.8L, 4), 12.8L, 0, 0, 0);
|
|
||||||
check_float ("scalb (-0.854375, 5) == -27.34", FUNC(scalb) (-0.854375L, 5), -27.34L, 0, 0, 0);
|
|
||||||
|
|
||||||
print_max_error ("scalb", 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
scalbn_test (void)
|
scalbn_test (void)
|
||||||
{
|
{
|
||||||
|
@ -4518,7 +4458,6 @@ main (int argc, char **argv)
|
||||||
logb_test ();
|
logb_test ();
|
||||||
modf_test ();
|
modf_test ();
|
||||||
ilogb_test ();
|
ilogb_test ();
|
||||||
scalb_test ();
|
|
||||||
scalbn_test ();
|
scalbn_test ();
|
||||||
scalbln_test ();
|
scalbln_test ();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue