From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from elaine.keithp.com (home.keithp.com [63.227.221.253]) by sourceware.org (Postfix) with ESMTPS id 8C230384241D for ; Wed, 26 Aug 2020 17:04:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8C230384241D Received: from localhost (localhost [127.0.0.1]) by elaine.keithp.com (Postfix) with ESMTP id ABF1B3F2D621 for ; Wed, 26 Aug 2020 10:04:03 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at keithp.com Received: from elaine.keithp.com ([127.0.0.1]) by localhost (elaine.keithp.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id WlXv5tigDHNm; Wed, 26 Aug 2020 10:04:01 -0700 (PDT) Received: from keithp.com (koto.keithp.com [10.0.0.2]) by elaine.keithp.com (Postfix) with ESMTPSA id CA45B3F2D5D2; Wed, 26 Aug 2020 10:04:01 -0700 (PDT) Received: by keithp.com (Postfix, from userid 1000) id 6A7EB158229C; Wed, 26 Aug 2020 10:04:01 -0700 (PDT) From: Keith Packard To: newlib@sourceware.org Subject: [PATCH 2/3] libm: Remove __ieee754_gamma_r variants Date: Wed, 26 Aug 2020 10:03:56 -0700 Message-Id: <20200826170357.2551683-3-keithp@keithp.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200826170357.2551683-1-keithp@keithp.com> References: <20200826170357.2551683-1-keithp@keithp.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-10.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_ASCII_DIVIDERS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Aug 2020 17:04:06 -0000 Gamma should consume the sign reported by lgamma internally instead of providing it back to the application. This removes the need to have _r variants as there is no longer any re-entrancy issues with the API. Signed-off-by: Keith Packard --- newlib/libc/include/math.h | 2 - newlib/libc/sys/linux/cmath/math_private.h | 2 - newlib/libm/common/fdlibm.h | 4 +- newlib/libm/math/Makefile.am | 4 +- newlib/libm/math/Makefile.in | 24 +++-------- newlib/libm/math/er_gamma.c | 12 ++++-- newlib/libm/math/erf_gamma.c | 12 ++++-- newlib/libm/math/w_gamma.c | 15 +------ newlib/libm/math/w_tgamma.c | 4 +- newlib/libm/math/wf_gamma.c | 15 +------ newlib/libm/math/wf_tgamma.c | 4 +- newlib/libm/math/wr_gamma.c | 49 ---------------------- newlib/libm/math/wrf_gamma.c | 48 --------------------- 13 files changed, 32 insertions(+), 163 deletions(-) delete mode 100644 newlib/libm/math/wr_gamma.c delete mode 100644 newlib/libm/math/wrf_gamma.c diff --git a/newlib/libc/include/math.h b/newlib/libc/include/math.h index 3399d3649..28d4df10f 100644 --- a/newlib/libc/include/math.h +++ b/newlib/libc/include/math.h @@ -515,9 +515,7 @@ extern float dremf (float, float); #ifdef __CYGWIN__ extern float dreml (long double, long double); #endif /* __CYGWIN__ */ -extern double gamma_r (double, int *); extern double lgamma_r (double, int *); -extern float gammaf_r (float, int *); extern float lgammaf_r (float, int *); #endif diff --git a/newlib/libc/sys/linux/cmath/math_private.h b/newlib/libc/sys/linux/cmath/math_private.h index 3e32b29ba..f5792f7fa 100644 --- a/newlib/libc/sys/linux/cmath/math_private.h +++ b/newlib/libc/sys/linux/cmath/math_private.h @@ -178,7 +178,6 @@ extern double __ieee754_cosh (double); extern double __ieee754_fmod (double,double); extern double __ieee754_pow (double,double); extern double __ieee754_lgamma_r (double,int *); -extern double __ieee754_gamma_r (double,int *); extern double __ieee754_lgamma (double); extern double __ieee754_gamma (double); extern double __ieee754_log10 (double); @@ -241,7 +240,6 @@ extern float __ieee754_coshf (float); extern float __ieee754_fmodf (float,float); extern float __ieee754_powf (float,float); extern float __ieee754_lgammaf_r (float,int *); -extern float __ieee754_gammaf_r (float,int *); extern float __ieee754_lgammaf (float); extern float __ieee754_gammaf (float); extern float __ieee754_log10f (float); diff --git a/newlib/libm/common/fdlibm.h b/newlib/libm/common/fdlibm.h index 8dffc832d..5226c2e13 100644 --- a/newlib/libm/common/fdlibm.h +++ b/newlib/libm/common/fdlibm.h @@ -159,7 +159,7 @@ extern double __ieee754_cosh __P((double)); extern double __ieee754_fmod __P((double,double)); extern double __ieee754_pow __P((double,double)); extern double __ieee754_lgamma_r __P((double,int *)); -extern double __ieee754_gamma_r __P((double,int *)); +extern double __ieee754_gamma __P((double)); extern double __ieee754_log10 __P((double)); extern double __ieee754_sinh __P((double)); extern double __ieee754_hypot __P((double,double)); @@ -205,7 +205,7 @@ extern float __ieee754_coshf __P((float)); extern float __ieee754_fmodf __P((float,float)); extern float __ieee754_powf __P((float,float)); extern float __ieee754_lgammaf_r __P((float,int *)); -extern float __ieee754_gammaf_r __P((float,int *)); +extern float __ieee754_gammaf __P((float)); extern float __ieee754_log10f __P((float)); extern float __ieee754_sinhf __P((float)); extern float __ieee754_hypotf __P((float,float)); diff --git a/newlib/libm/math/Makefile.am b/newlib/libm/math/Makefile.am index e745159ae..87e47dbd5 100644 --- a/newlib/libm/math/Makefile.am +++ b/newlib/libm/math/Makefile.am @@ -14,7 +14,7 @@ src = k_standard.c k_rem_pio2.c \ e_scalb.c e_sinh.c e_sqrt.c \ w_acos.c w_acosh.c w_asin.c w_atan2.c \ w_atanh.c w_cosh.c w_exp.c w_fmod.c \ - w_gamma.c wr_gamma.c w_hypot.c w_j0.c \ + w_gamma.c w_hypot.c w_j0.c \ w_j1.c w_jn.c w_lgamma.c wr_lgamma.c \ w_log.c w_log10.c w_pow.c w_remainder.c \ w_scalb.c w_sinh.c w_sqrt.c \ @@ -37,7 +37,7 @@ fsrc = kf_rem_pio2.c \ ef_scalb.c ef_sinh.c ef_sqrt.c \ wf_acos.c wf_acosh.c wf_asin.c wf_atan2.c \ wf_atanh.c wf_cosh.c wf_exp.c wf_fmod.c \ - wf_gamma.c wrf_gamma.c wf_hypot.c wf_j0.c \ + wf_gamma.c wf_hypot.c wf_j0.c \ wf_j1.c wf_jn.c wf_lgamma.c wrf_lgamma.c \ wf_log.c wf_log10.c wf_pow.c wf_remainder.c \ wf_scalb.c wf_sinh.c wf_sqrt.c \ diff --git a/newlib/libm/math/Makefile.in b/newlib/libm/math/Makefile.in index 0ac2b1668..9ba1be8ca 100644 --- a/newlib/libm/math/Makefile.in +++ b/newlib/libm/math/Makefile.in @@ -90,7 +90,7 @@ am__objects_1 = lib_a-k_standard.$(OBJEXT) lib_a-k_rem_pio2.$(OBJEXT) \ lib_a-w_atan2.$(OBJEXT) lib_a-w_atanh.$(OBJEXT) \ lib_a-w_cosh.$(OBJEXT) lib_a-w_exp.$(OBJEXT) \ lib_a-w_fmod.$(OBJEXT) lib_a-w_gamma.$(OBJEXT) \ - lib_a-wr_gamma.$(OBJEXT) lib_a-w_hypot.$(OBJEXT) \ + lib_a-w_hypot.$(OBJEXT) \ lib_a-w_j0.$(OBJEXT) lib_a-w_j1.$(OBJEXT) lib_a-w_jn.$(OBJEXT) \ lib_a-w_lgamma.$(OBJEXT) lib_a-wr_lgamma.$(OBJEXT) \ lib_a-w_log.$(OBJEXT) lib_a-w_log10.$(OBJEXT) \ @@ -122,7 +122,7 @@ am__objects_2 = lib_a-kf_rem_pio2.$(OBJEXT) lib_a-kf_cos.$(OBJEXT) \ lib_a-wf_asin.$(OBJEXT) lib_a-wf_atan2.$(OBJEXT) \ lib_a-wf_atanh.$(OBJEXT) lib_a-wf_cosh.$(OBJEXT) \ lib_a-wf_exp.$(OBJEXT) lib_a-wf_fmod.$(OBJEXT) \ - lib_a-wf_gamma.$(OBJEXT) lib_a-wrf_gamma.$(OBJEXT) \ + lib_a-wf_gamma.$(OBJEXT) \ lib_a-wf_hypot.$(OBJEXT) lib_a-wf_j0.$(OBJEXT) \ lib_a-wf_j1.$(OBJEXT) lib_a-wf_jn.$(OBJEXT) \ lib_a-wf_lgamma.$(OBJEXT) lib_a-wrf_lgamma.$(OBJEXT) \ @@ -151,7 +151,7 @@ am__objects_4 = k_standard.lo k_rem_pio2.lo k_cos.lo k_sin.lo k_tan.lo \ e_jn.lo er_lgamma.lo e_log.lo e_log10.lo e_pow.lo \ e_rem_pio2.lo e_remainder.lo e_scalb.lo e_sinh.lo e_sqrt.lo \ w_acos.lo w_acosh.lo w_asin.lo w_atan2.lo w_atanh.lo w_cosh.lo \ - w_exp.lo w_fmod.lo w_gamma.lo wr_gamma.lo w_hypot.lo w_j0.lo \ + w_exp.lo w_fmod.lo w_gamma.lo w_hypot.lo w_j0.lo \ w_j1.lo w_jn.lo w_lgamma.lo wr_lgamma.lo w_log.lo w_log10.lo \ w_pow.lo w_remainder.lo w_scalb.lo w_sinh.lo w_sqrt.lo \ w_sincos.lo w_drem.lo s_asinh.lo s_atan.lo s_ceil.lo s_cos.lo \ @@ -164,7 +164,7 @@ am__objects_5 = kf_rem_pio2.lo kf_cos.lo kf_sin.lo kf_tan.lo \ ef_pow.lo ef_rem_pio2.lo ef_remainder.lo ef_scalb.lo \ ef_sinh.lo ef_sqrt.lo wf_acos.lo wf_acosh.lo wf_asin.lo \ wf_atan2.lo wf_atanh.lo wf_cosh.lo wf_exp.lo wf_fmod.lo \ - wf_gamma.lo wrf_gamma.lo wf_hypot.lo wf_j0.lo wf_j1.lo \ + wf_gamma.lo wf_hypot.lo wf_j0.lo wf_j1.lo \ wf_jn.lo wf_lgamma.lo wrf_lgamma.lo wf_log.lo wf_log10.lo \ wf_pow.lo wf_remainder.lo wf_scalb.lo wf_sinh.lo wf_sqrt.lo \ wf_sincos.lo wf_drem.lo sf_asinh.lo sf_atan.lo sf_ceil.lo \ @@ -339,7 +339,7 @@ src = k_standard.c k_rem_pio2.c \ e_scalb.c e_sinh.c e_sqrt.c \ w_acos.c w_acosh.c w_asin.c w_atan2.c \ w_atanh.c w_cosh.c w_exp.c w_fmod.c \ - w_gamma.c wr_gamma.c w_hypot.c w_j0.c \ + w_gamma.c w_hypot.c w_j0.c \ w_j1.c w_jn.c w_lgamma.c wr_lgamma.c \ w_log.c w_log10.c w_pow.c w_remainder.c \ w_scalb.c w_sinh.c w_sqrt.c \ @@ -362,7 +362,7 @@ fsrc = kf_rem_pio2.c \ ef_scalb.c ef_sinh.c ef_sqrt.c \ wf_acos.c wf_acosh.c wf_asin.c wf_atan2.c \ wf_atanh.c wf_cosh.c wf_exp.c wf_fmod.c \ - wf_gamma.c wrf_gamma.c wf_hypot.c wf_j0.c \ + wf_gamma.c wf_hypot.c wf_j0.c \ wf_j1.c wf_jn.c wf_lgamma.c wrf_lgamma.c \ wf_log.c wf_log10.c wf_pow.c wf_remainder.c \ wf_scalb.c wf_sinh.c wf_sqrt.c \ @@ -690,12 +690,6 @@ lib_a-w_gamma.o: w_gamma.c lib_a-w_gamma.obj: w_gamma.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_gamma.obj `if test -f 'w_gamma.c'; then $(CYGPATH_W) 'w_gamma.c'; else $(CYGPATH_W) '$(srcdir)/w_gamma.c'; fi` -lib_a-wr_gamma.o: wr_gamma.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wr_gamma.o `test -f 'wr_gamma.c' || echo '$(srcdir)/'`wr_gamma.c - -lib_a-wr_gamma.obj: wr_gamma.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wr_gamma.obj `if test -f 'wr_gamma.c'; then $(CYGPATH_W) 'wr_gamma.c'; else $(CYGPATH_W) '$(srcdir)/wr_gamma.c'; fi` - lib_a-w_hypot.o: w_hypot.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-w_hypot.o `test -f 'w_hypot.c' || echo '$(srcdir)/'`w_hypot.c @@ -1086,12 +1080,6 @@ lib_a-wf_gamma.o: wf_gamma.c lib_a-wf_gamma.obj: wf_gamma.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_gamma.obj `if test -f 'wf_gamma.c'; then $(CYGPATH_W) 'wf_gamma.c'; else $(CYGPATH_W) '$(srcdir)/wf_gamma.c'; fi` -lib_a-wrf_gamma.o: wrf_gamma.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wrf_gamma.o `test -f 'wrf_gamma.c' || echo '$(srcdir)/'`wrf_gamma.c - -lib_a-wrf_gamma.obj: wrf_gamma.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wrf_gamma.obj `if test -f 'wrf_gamma.c'; then $(CYGPATH_W) 'wrf_gamma.c'; else $(CYGPATH_W) '$(srcdir)/wrf_gamma.c'; fi` - lib_a-wf_hypot.o: wf_hypot.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wf_hypot.o `test -f 'wf_hypot.c' || echo '$(srcdir)/'`wf_hypot.c diff --git a/newlib/libm/math/er_gamma.c b/newlib/libm/math/er_gamma.c index 3c0e241e5..9252e2d04 100644 --- a/newlib/libm/math/er_gamma.c +++ b/newlib/libm/math/er_gamma.c @@ -22,11 +22,15 @@ #include "fdlibm.h" #ifdef __STDC__ - double __ieee754_gamma_r(double x, int *signgamp) + double __ieee754_gamma(double x) #else - double __ieee754_gamma_r(x,signgamp) - double x; int *signgamp; + double __ieee754_gamma(x) + double x; #endif { - return __ieee754_exp (__ieee754_lgamma_r(x,signgamp)); + int local_signgam = 1; + double y = __ieee754_exp (__ieee754_lgamma_r(x, &local_signgam)); + if (local_signgam < 0) + y = -y; + return y; } diff --git a/newlib/libm/math/erf_gamma.c b/newlib/libm/math/erf_gamma.c index 9e529dce0..bddac60c7 100644 --- a/newlib/libm/math/erf_gamma.c +++ b/newlib/libm/math/erf_gamma.c @@ -24,11 +24,15 @@ #include "fdlibm.h" #ifdef __STDC__ - float __ieee754_gammaf_r(float x, int *signgamp) + float __ieee754_gammaf(float x) #else - float __ieee754_gammaf_r(x,signgamp) - float x; int *signgamp; + float __ieee754_gammaf(x) + float x; #endif { - return __ieee754_expf (__ieee754_lgammaf_r(x,signgamp)); + int local_signgam = 1; + float y = __ieee754_expf (__ieee754_lgammaf_r(x,&local_signgam)); + if (local_signgam < 0) + y = -y; + return y; } diff --git a/newlib/libm/math/w_gamma.c b/newlib/libm/math/w_gamma.c index b65d5cc4b..bb47fab31 100644 --- a/newlib/libm/math/w_gamma.c +++ b/newlib/libm/math/w_gamma.c @@ -148,18 +148,7 @@ in terms of the base return values, although the <[signgam]> global for double x; #endif { -#ifdef _IEEE_LIBM - return __ieee754_gamma_r(x,&(_REENT_SIGNGAM(_REENT))); -#else - double y; - y = __ieee754_gamma_r(x,&(_REENT_SIGNGAM(_REENT))); - if(_LIB_VERSION == _IEEE_) return y; - if(!finite(y)&&finite(x)) { - /* gamma(finite) overflow */ - errno = ERANGE; - } - return y; -#endif -} + return tgamma(x); +} #endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_tgamma.c b/newlib/libm/math/w_tgamma.c index c0c011dd0..cbb3e7f7f 100644 --- a/newlib/libm/math/w_tgamma.c +++ b/newlib/libm/math/w_tgamma.c @@ -27,9 +27,7 @@ #endif { double y; - int local_signgam; - y = __ieee754_gamma_r(x,&local_signgam); - if (local_signgam < 0) y = -y; + y = __ieee754_gamma(x); #ifdef _IEEE_LIBM return y; #else diff --git a/newlib/libm/math/wf_gamma.c b/newlib/libm/math/wf_gamma.c index f0284a282..4e961c864 100644 --- a/newlib/libm/math/wf_gamma.c +++ b/newlib/libm/math/wf_gamma.c @@ -25,19 +25,8 @@ float x; #endif { -#ifdef _IEEE_LIBM - return __ieee754_gammaf_r(x,&(_REENT_SIGNGAM(_REENT))); -#else - float y; - y = __ieee754_gammaf_r(x,&(_REENT_SIGNGAM(_REENT))); - if(_LIB_VERSION == _IEEE_) return y; - if(!finitef(y)&&finitef(x)) { - /* gammaf(finite) overflow */ - errno = ERANGE; - } - return y; -#endif -} + return tgammaf(x); +} #ifdef _DOUBLE_IS_32BITS diff --git a/newlib/libm/math/wf_tgamma.c b/newlib/libm/math/wf_tgamma.c index 92df39648..8f0c501b8 100644 --- a/newlib/libm/math/wf_tgamma.c +++ b/newlib/libm/math/wf_tgamma.c @@ -24,9 +24,7 @@ #endif { float y; - int local_signgam; - y = __ieee754_gammaf_r(x,&local_signgam); - if (local_signgam < 0) y = -y; + y = __ieee754_gammaf(x); #ifdef _IEEE_LIBM return y; #else diff --git a/newlib/libm/math/wr_gamma.c b/newlib/libm/math/wr_gamma.c deleted file mode 100644 index c4c2a829e..000000000 --- a/newlib/libm/math/wr_gamma.c +++ /dev/null @@ -1,49 +0,0 @@ - -/* @(#)wr_gamma.c 5.1 93/09/24 */ -/* - * ==================================================== - * 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. - * ==================================================== - */ - -/* - * wrapper double gamma_r(double x, int *signgamp) - */ - -#include "fdlibm.h" -#include - -#ifndef _DOUBLE_IS_32BITS - -#ifdef __STDC__ - double gamma_r(double x, int *signgamp) /* wrapper lgamma_r */ -#else - double gamma_r(x,signgamp) /* wrapper lgamma_r */ - double x; int *signgamp; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_gamma_r(x,signgamp); -#else - double y; - y = __ieee754_gamma_r(x,signgamp); - if(_LIB_VERSION == _IEEE_) return y; - if(!finite(y)&&finite(x)) { - if(floor(x)==x&&x<=0.0) - /* gamma(-integer) or gamma(0) */ - errno = EDOM; - else - /* gamma(finite) overflow */ - errno = ERANGE; - return HUGE_VALF; - } else - return y; -#endif -} - -#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wrf_gamma.c b/newlib/libm/math/wrf_gamma.c deleted file mode 100644 index d43c7f03d..000000000 --- a/newlib/libm/math/wrf_gamma.c +++ /dev/null @@ -1,48 +0,0 @@ -/* wrf_gamma.c -- float version of wr_gamma.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. - * ==================================================== - */ - -/* - * wrapper float gammaf_r(float x, int *signgamp) - */ - -#include "fdlibm.h" -#include - -#ifdef __STDC__ - float gammaf_r(float x, int *signgamp) /* wrapper lgammaf_r */ -#else - float gammaf_r(x,signgamp) /* wrapper lgammaf_r */ - float x; int *signgamp; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_gammaf_r(x,signgamp); -#else - float y; - y = __ieee754_gammaf_r(x,signgamp); - if(_LIB_VERSION == _IEEE_) return y; - if(!finitef(y)&&finitef(x)) { - if(floorf(x)==x&&x<=0.0f) { - /* gammaf(-integer) or gamma(0) */ - errno = EDOM; - } else { - /* gammaf(finite) overflow */ - errno = ERANGE; - } - return HUGE_VALF; - } else - return y; -#endif -} -- 2.28.0