Blame math/bits/math-finite.h

Packit 6c4009
/* Entry points to finite-math-only compiler runs.
Packit 6c4009
   Copyright (C) 2011-2018 Free Software Foundation, Inc.
Packit 6c4009
   This file is part of the GNU C Library.
Packit 6c4009
Packit 6c4009
   The GNU C Library is free software; you can redistribute it and/or
Packit 6c4009
   modify it under the terms of the GNU Lesser General Public
Packit 6c4009
   License as published by the Free Software Foundation; either
Packit 6c4009
   version 2.1 of the License, or (at your option) any later version.
Packit 6c4009
Packit 6c4009
   The GNU C Library is distributed in the hope that it will be useful,
Packit 6c4009
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6c4009
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 6c4009
   Lesser General Public License for more details.
Packit 6c4009
Packit 6c4009
   You should have received a copy of the GNU Lesser General Public
Packit 6c4009
   License along with the GNU C Library; if not, see
Packit 6c4009
   <http://www.gnu.org/licenses/>.  */
Packit 6c4009
Packit 6c4009
#ifndef _MATH_H
Packit 6c4009
# error "Never use <bits/math-finite.h> directly; include <math.h> instead."
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
#define __REDIRFROM(...) __REDIRFROM_X(__VA_ARGS__)
Packit 6c4009
Packit 6c4009
#define __REDIRTO(...) __REDIRTO_X(__VA_ARGS__)
Packit 6c4009
Packit 6c4009
#define __MATH_REDIRCALL_X(from, args, to) \
Packit 6c4009
  extern _Mdouble_ __REDIRECT_NTH (from, args, to)
Packit 6c4009
#define __MATH_REDIRCALL(function, reentrant, args) \
Packit 6c4009
  __MATH_REDIRCALL_X \
Packit 6c4009
   (__REDIRFROM (function, reentrant), args, \
Packit 6c4009
    __REDIRTO (function, reentrant))
Packit 6c4009
#define __MATH_REDIRCALL_2(from, reentrant, args, to) \
Packit 6c4009
  __MATH_REDIRCALL_X \
Packit 6c4009
   (__REDIRFROM (from, reentrant), args, \
Packit 6c4009
    __REDIRTO (to, reentrant))
Packit 6c4009
Packit 6c4009
#define __MATH_REDIRCALL_INTERNAL(function, reentrant, args) \
Packit 6c4009
  __MATH_REDIRCALL_X \
Packit 6c4009
   (__REDIRFROM (__CONCAT (__, function), \
Packit 6c4009
		 __CONCAT (reentrant, _finite)), \
Packit 6c4009
    args, __REDIRTO (function, _r))
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* acos.  */
Packit 6c4009
__MATH_REDIRCALL (acos, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
Packit 6c4009
/* acosh.  */
Packit 6c4009
__MATH_REDIRCALL (acosh, , (_Mdouble_));
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* asin.  */
Packit 6c4009
__MATH_REDIRCALL (asin, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
/* atan2.  */
Packit 6c4009
__MATH_REDIRCALL (atan2, , (_Mdouble_, _Mdouble_));
Packit 6c4009
Packit 6c4009
#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
Packit 6c4009
/* atanh.  */
Packit 6c4009
__MATH_REDIRCALL (atanh, , (_Mdouble_));
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* cosh.  */
Packit 6c4009
__MATH_REDIRCALL (cosh, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
/* exp.  */
Packit 6c4009
__MATH_REDIRCALL (exp, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
#if __GLIBC_USE (IEC_60559_FUNCS_EXT)
Packit 6c4009
/* exp10.  */
Packit 6c4009
__MATH_REDIRCALL (exp10, , (_Mdouble_));
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
#ifdef __USE_ISOC99
Packit 6c4009
/* exp2.  */
Packit 6c4009
__MATH_REDIRCALL (exp2, , (_Mdouble_));
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* fmod.  */
Packit 6c4009
__MATH_REDIRCALL (fmod, , (_Mdouble_, _Mdouble_));
Packit 6c4009
Packit 6c4009
#if defined __USE_XOPEN || defined __USE_ISOC99
Packit 6c4009
/* hypot.  */
Packit 6c4009
__MATH_REDIRCALL (hypot, , (_Mdouble_, _Mdouble_));
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
#if (__MATH_DECLARING_DOUBLE && (defined __USE_MISC || defined __USE_XOPEN)) \
Packit 6c4009
    || (!__MATH_DECLARING_DOUBLE && defined __USE_MISC)
Packit 6c4009
/* j0.  */
Packit 6c4009
__MATH_REDIRCALL (j0, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
/* y0.  */
Packit 6c4009
__MATH_REDIRCALL (y0, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
/* j1.  */
Packit 6c4009
__MATH_REDIRCALL (j1, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
/* y1.  */
Packit 6c4009
__MATH_REDIRCALL (y1, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
/* jn.  */
Packit 6c4009
__MATH_REDIRCALL (jn, , (int, _Mdouble_));
Packit 6c4009
Packit 6c4009
/* yn.  */
Packit 6c4009
__MATH_REDIRCALL (yn, , (int, _Mdouble_));
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
#ifdef __USE_MISC
Packit 6c4009
/* lgamma_r.  */
Packit 6c4009
__MATH_REDIRCALL (lgamma, _r, (_Mdouble_, int *));
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* Redirect __lgammal_r_finite to __lgamma_r_finite when __NO_LONG_DOUBLE_MATH
Packit 6c4009
   is set and to itself otherwise.  It also redirects __lgamma_r_finite and
Packit 6c4009
   __lgammaf_r_finite to themselves.  */
Packit 6c4009
__MATH_REDIRCALL_INTERNAL (lgamma, _r, (_Mdouble_, int *));
Packit 6c4009
Packit 6c4009
#if ((defined __USE_XOPEN || defined __USE_ISOC99) \
Packit 6c4009
     && defined __extern_always_inline)
Packit 6c4009
/* lgamma.  */
Packit 6c4009
__extern_always_inline _Mdouble_
Packit 6c4009
__NTH (__REDIRFROM (lgamma, ) (_Mdouble_ __d))
Packit 6c4009
{
Packit 6c4009
# if defined __USE_MISC || defined __USE_XOPEN
Packit 6c4009
  return __REDIRTO (lgamma, _r) (__d, &signgam);
Packit 6c4009
# else
Packit 6c4009
  int __local_signgam = 0;
Packit 6c4009
  return __REDIRTO (lgamma, _r) (__d, &__local_signgam);
Packit 6c4009
# endif
Packit 6c4009
}
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
#if ((defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)) \
Packit 6c4009
     && defined __extern_always_inline) && !__MATH_DECLARING_FLOATN
Packit 6c4009
/* gamma.  */
Packit 6c4009
__extern_always_inline _Mdouble_
Packit 6c4009
__NTH (__REDIRFROM (gamma, ) (_Mdouble_ __d))
Packit 6c4009
{
Packit 6c4009
  return __REDIRTO (lgamma, _r) (__d, &signgam);
Packit 6c4009
}
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* log.  */
Packit 6c4009
__MATH_REDIRCALL (log, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
/* log10.  */
Packit 6c4009
__MATH_REDIRCALL (log10, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
#ifdef __USE_ISOC99
Packit 6c4009
/* log2.  */
Packit 6c4009
__MATH_REDIRCALL (log2, , (_Mdouble_));
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* pow.  */
Packit 6c4009
__MATH_REDIRCALL (pow, , (_Mdouble_, _Mdouble_));
Packit 6c4009
Packit 6c4009
#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
Packit 6c4009
/* remainder.  */
Packit 6c4009
__MATH_REDIRCALL (remainder, , (_Mdouble_, _Mdouble_));
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
#if ((__MATH_DECLARING_DOUBLE \
Packit 6c4009
      && (defined __USE_MISC \
Packit 6c4009
	  || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8))) \
Packit 6c4009
     || (!defined __MATH_DECLARE_LDOUBLE && defined __USE_MISC)) \
Packit 6c4009
    && !__MATH_DECLARING_FLOATN
Packit 6c4009
/* scalb.  */
Packit 6c4009
__MATH_REDIRCALL (scalb, , (_Mdouble_, _Mdouble_));
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* sinh.  */
Packit 6c4009
__MATH_REDIRCALL (sinh, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
/* sqrt.  */
Packit 6c4009
__MATH_REDIRCALL (sqrt, , (_Mdouble_));
Packit 6c4009
Packit 6c4009
#if defined __USE_ISOC99 && defined __extern_always_inline
Packit 6c4009
/* tgamma.  */
Packit 6c4009
extern _Mdouble_
Packit 6c4009
__REDIRFROM (__gamma, _r_finite) (_Mdouble_, int *);
Packit 6c4009
Packit 6c4009
__extern_always_inline _Mdouble_
Packit 6c4009
__NTH (__REDIRFROM (tgamma, ) (_Mdouble_ __d))
Packit 6c4009
{
Packit 6c4009
  int __local_signgam = 0;
Packit 6c4009
  _Mdouble_ __res = __REDIRTO (gamma, _r) (__d, &__local_signgam);
Packit 6c4009
  return __local_signgam < 0 ? -__res : __res;
Packit 6c4009
}
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
#undef __REDIRFROM
Packit 6c4009
#undef __REDIRTO
Packit 6c4009
#undef __MATH_REDIRCALL
Packit 6c4009
#undef __MATH_REDIRCALL_2
Packit 6c4009
#undef __MATH_REDIRCALL_INTERNAL
Packit 6c4009
#undef __MATH_REDIRCALL_X