From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15628 invoked by alias); 9 Nov 2016 18:41:32 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 15549 invoked by uid 89); 9 Nov 2016 18:41:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW,RCVD_IN_SEMBACKSCATTER autolearn=no version=3.3.2 spammy=murphy, 1199, 2411 X-HELO: mx0a-001b2d01.pphosted.com From: "Gabriel F. T. Gomes" To: libc-alpha@sourceware.org Subject: [PATCH 6/8] float128: Expose _Float128 finite math functions. Date: Wed, 09 Nov 2016 18:41:00 -0000 In-Reply-To: <1478716859-3246-1-git-send-email-gftg@linux.vnet.ibm.com> References: <1478716859-3246-1-git-send-email-gftg@linux.vnet.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16110918-0024-0000-0000-00000128EE3E X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 16110918-0025-0000-0000-000015EAAA4D Message-Id: <1478716859-3246-7-git-send-email-gftg@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-11-09_08:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1609300000 definitions=main-1611090343 X-SW-Source: 2016-11/txt/msg00357.txt.bz2 From: "Paul E. Murphy" Similar to the other types, entry points to dodge wrapper call for non-finite arguments. * math/bits/math-finite.h: (__acosf128_finite): New function declaration. (__acoshf128_finite): Likewise. (__asinf128_finite): Likewise. (__atan2f128_finite): Likewise. (__atanhf128_finite): Likewise. (__coshf128_finite): Likewise. (__expf128_finite): Likewise. (__exp10f128_finite): Likewise. (__exp2f128_finite): Likewise. (__fmodf128_finite): Likewise. (__hypotf128_finite): Likewise. (__j0f128_finite): Likewise. (__y0f128_finite): Likewise. (__j1f128_finite): Likewise. (__y1f128_finite): Likewise. (__jnf128_finite): Likewise. (__ynf128_finite): Likewise. (__logf128_finite): Likewise. (__log10f128_finite): Likewise. (__log2f128_finite): Likewise. (__powf128_finite): Likewise. (__remainderf128_finite): Likewise. (__sinhf128_finite): Likewise. (__sqrtf128_finite): Likewise. (__gammaf128_r_finite): Likewise. (__lgammaf128_r_finite): Likewise. (lgammaf128): Inline override of the same name. (tgammaf128): Likewise. --- math/bits/math-finite.h | 104 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/math/bits/math-finite.h b/math/bits/math-finite.h index adaad0e..0c6e2ff 100644 --- a/math/bits/math-finite.h +++ b/math/bits/math-finite.h @@ -32,6 +32,9 @@ extern long double __REDIRECT_NTH (acosl, (long double), __acosl_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (acosf128, (_Float128), __acosf128_finite); +#endif #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 /* acosh. */ @@ -47,6 +50,9 @@ extern long double __REDIRECT_NTH (acoshl, (long double), __acoshl_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (acoshf128, (_Float128), __acoshf128_finite); +#endif /* asin. */ extern double __REDIRECT_NTH (asin, (double), __asin_finite); @@ -60,6 +66,9 @@ extern long double __REDIRECT_NTH (asinl, (long double), __asinl_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (asinf128, (_Float128), __asinf128_finite); +#endif /* atan2. */ extern double __REDIRECT_NTH (atan2, (double, double), __atan2_finite); @@ -75,6 +84,10 @@ extern long double __REDIRECT_NTH (atan2l, (long double, long double), # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (atan2f128, (_Float128, _Float128), + __atan2f128_finite); +#endif #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 /* atanh. */ @@ -90,6 +103,9 @@ extern long double __REDIRECT_NTH (atanhl, (long double), __atanhl_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (atanhf128, (_Float128), __atanhf128_finite); +#endif /* cosh. */ extern double __REDIRECT_NTH (cosh, (double), __cosh_finite); @@ -103,6 +119,9 @@ extern long double __REDIRECT_NTH (coshl, (long double), __coshl_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (coshf128, (_Float128), __coshf128_finite); +#endif /* exp. */ extern double __REDIRECT_NTH (exp, (double), __exp_finite); @@ -116,6 +135,9 @@ extern long double __REDIRECT_NTH (expl, (long double), __expl_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (expf128, (_Float128), __expf128_finite); +#endif #ifdef __USE_GNU /* exp10. */ @@ -128,6 +150,9 @@ extern long double __REDIRECT_NTH (exp10l, (long double), __exp10_finite); extern long double __REDIRECT_NTH (exp10l, (long double), __exp10l_finite); # endif # endif +# if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (exp10f128, (_Float128), __exp10f128_finite); +# endif /* pow10. */ extern double __REDIRECT_NTH (pow10, (double), __exp10_finite); @@ -153,6 +178,9 @@ extern long double __REDIRECT_NTH (exp2l, (long double), __exp2l_finite); # endif # endif #endif +# if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (exp2f128, (_Float128), __exp2f128_finite); +# endif /* fmod. */ extern double __REDIRECT_NTH (fmod, (double, double), __fmod_finite); @@ -168,6 +196,10 @@ extern long double __REDIRECT_NTH (fmodl, (long double, long double), # endif # endif #endif +# if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (fmodf128, (_Float128, _Float128), + __fmodf128_finite); +# endif #if defined __USE_XOPEN || defined __USE_ISOC99 /* hypot. */ @@ -185,6 +217,10 @@ extern long double __REDIRECT_NTH (hypotl, (long double, long double), # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (hypotf128, (_Float128, _Float128), + __hypotf128_finite); +#endif #if defined __USE_MISC || defined __USE_XOPEN /* j0. */ @@ -199,6 +235,9 @@ extern long double __REDIRECT_NTH (j0l, (long double), __j0_finite); extern long double __REDIRECT_NTH (j0l, (long double), __j0l_finite); # endif # endif +# if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (j0f128, (_Float128), __j0f128_finite); +# endif #endif #if defined __USE_MISC || defined __USE_XOPEN @@ -214,6 +253,9 @@ extern long double __REDIRECT_NTH (y0l, (long double), __y0_finite); extern long double __REDIRECT_NTH (y0l, (long double), __y0l_finite); # endif # endif +# if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (y0f128, (_Float128), __y0f128_finite); +# endif #endif #if defined __USE_MISC || defined __USE_XOPEN @@ -229,6 +271,9 @@ extern long double __REDIRECT_NTH (j1l, (long double), __j1_finite); extern long double __REDIRECT_NTH (j1l, (long double), __j1l_finite); # endif # endif +# if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (j1f128, (_Float128), __j1f128_finite); +# endif #endif #if defined __USE_MISC || defined __USE_XOPEN @@ -244,6 +289,9 @@ extern long double __REDIRECT_NTH (y1l, (long double), __y1_finite); extern long double __REDIRECT_NTH (y1l, (long double), __y1l_finite); # endif # endif +# if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (y1f128, (_Float128), __y1f128_finite); +# endif #endif #if defined __USE_MISC || defined __USE_XOPEN @@ -259,6 +307,9 @@ extern long double __REDIRECT_NTH (jnl, (int, long double), __jn_finite); extern long double __REDIRECT_NTH (jnl, (int, long double), __jnl_finite); # endif # endif +# if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (jnf128, (int, _Float128), __jnf128_finite); +# endif #endif #if defined __USE_MISC || defined __USE_XOPEN @@ -274,6 +325,9 @@ extern long double __REDIRECT_NTH (ynl, (int, long double), __yn_finite); extern long double __REDIRECT_NTH (ynl, (int, long double), __ynl_finite); # endif # endif +# if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (ynf128, (int, _Float128), __ynf128_finite); +# endif #endif #ifdef __USE_MISC @@ -291,6 +345,10 @@ extern long double __REDIRECT_NTH (lgammal_r, (long double, int *), # endif # endif # endif +# if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (lgammaf128_r, (_Float128, int *), + __lgammaf128_r_finite); +# endif #endif extern double __lgamma_r_finite (double, int *); @@ -301,6 +359,9 @@ extern long double __REDIRECT_NTH (__lgammal_r_finite, (long double, int *), #else extern long double __lgammal_r_finite (long double, int *); #endif +#if __USE_FLOAT128 +extern _Float128 __lgammaf128_r_finite (_Float128, int *); +#endif #if ((defined __USE_XOPEN || defined __USE_ISOC99) \ && defined __extern_always_inline) @@ -336,6 +397,17 @@ __extern_always_inline long double __NTH (lgammal (long double __d)) # endif } # endif +# if __USE_FLOAT128 +__extern_always_inline _Float128 __NTH (lgammaf128 (_Float128 __d)) +{ +# if defined __USE_MISC || defined __USE_XOPEN + return __lgammaf128_r_finite (__d, &signgam); +# else + int __local_signgam = 0; + return __lgammaf128_r_finite (__d, &__local_signgam); +# endif +} +# endif #endif #if ((defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)) \ @@ -371,6 +443,9 @@ extern long double __REDIRECT_NTH (logl, (long double), __logl_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (logf128, (_Float128), __logf128_finite); +#endif /* log10. */ extern double __REDIRECT_NTH (log10, (double), __log10_finite); @@ -384,6 +459,9 @@ extern long double __REDIRECT_NTH (log10l, (long double), __log10l_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (log10f128, (_Float128), __log10f128_finite); +#endif #ifdef __USE_ISOC99 /* log2. */ @@ -397,6 +475,9 @@ extern long double __REDIRECT_NTH (log2l, (long double), __log2l_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (log2f128, (_Float128), __log2f128_finite); +#endif /* pow. */ extern double __REDIRECT_NTH (pow, (double, double), __pow_finite); @@ -412,6 +493,10 @@ extern long double __REDIRECT_NTH (powl, (long double, long double), # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (powf128, (_Float128, _Float128), + __powf128_finite); +#endif #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 /* remainder. */ @@ -429,6 +514,10 @@ extern long double __REDIRECT_NTH (remainderl, (long double, long double), # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (remainderf128, (_Float128, _Float128), + __remainderf128_finite); +#endif #if (defined __USE_MISC \ || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8)) @@ -460,6 +549,9 @@ extern long double __REDIRECT_NTH (sinhl, (long double), __sinhl_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (sinhf128, (_Float128), __sinhf128_finite); +#endif /* sqrt. */ extern double __REDIRECT_NTH (sqrt, (double), __sqrt_finite); @@ -473,6 +565,9 @@ extern long double __REDIRECT_NTH (sqrtl, (long double), __sqrtl_finite); # endif # endif #endif +#if __USE_FLOAT128 +extern _Float128 __REDIRECT_NTH (sqrtf128, (_Float128), __sqrtf128_finite); +#endif #if defined __USE_ISOC99 && defined __extern_always_inline /* tgamma. */ @@ -503,4 +598,13 @@ __extern_always_inline long double __NTH (tgammal (long double __d)) return __local_signgam < 0 ? -__res : __res; } # endif +# if __USE_FLOAT128 +extern _Float128 __gammaf128_r_finite (_Float128, int *); +__extern_always_inline _Float128 __NTH (tgammaf128 (_Float128 __d)) +{ + int __local_signgam = 0; + _Float128 __res = __gammaf128_r_finite (__d, &__local_signgam); + return __local_signgam < 0 ? -__res : __res; +} +# endif #endif -- 2.4.11