mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-22 15:00:55 +08:00
acinclude.m4: CHECK_MATH_DECL_AND_LINKAGE for hypot, hypotf, hypotl, atan2f, atan2l.
* acinclude.m4: CHECK_MATH_DECL_AND_LINKAGE for hypot, hypotf, hypotl, atan2f, atan2l. Remove from REPLACE_MATHFUNCS list. * aclocal.m4: Regenerate. * config.h.in: Likewise. * configure: Likewise. * libmath/Makefile.am (EXTRA_LONG_DOUBLE_yes): Remove hypotl.c (EXTRA_DIST): Remove hypot.c hypotf.c. * libmath/Makefile.am: Regenerate. * libmath/hypotf.c: Remove. * libmath/hypot.c: Likewise. * libmath/hypotl.c: Likewise. * libmath/stubs.c: The macros seen here are HAVE_xxx, not _GLIBCPP_HAVE_xxx. Add long double versions. From-SVN: r44334
This commit is contained in:
parent
40a25731d6
commit
d38cd8ae50
@ -1,3 +1,19 @@
|
||||
2001-07-25 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
|
||||
|
||||
* acinclude.m4: CHECK_MATH_DECL_AND_LINKAGE for hypot, hypotf,
|
||||
hypotl, atan2f, atan2l. Remove from REPLACE_MATHFUNCS list.
|
||||
* aclocal.m4: Regenerate.
|
||||
* config.h.in: Likewise.
|
||||
* configure: Likewise.
|
||||
* libmath/Makefile.am (EXTRA_LONG_DOUBLE_yes): Remove hypotl.c
|
||||
(EXTRA_DIST): Remove hypot.c hypotf.c.
|
||||
* libmath/Makefile.am: Regenerate.
|
||||
* libmath/hypotf.c: Remove.
|
||||
* libmath/hypot.c: Likewise.
|
||||
* libmath/hypotl.c: Likewise.
|
||||
* libmath/stubs.c: The macros seen here are HAVE_xxx, not
|
||||
_GLIBCPP_HAVE_xxx. Add long double versions.
|
||||
|
||||
2001-07-23 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* include/bits/limits_generic.h (int): Set digits and digits10
|
||||
|
@ -643,6 +643,7 @@ AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincos)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypot)
|
||||
|
||||
dnl Check to see if basic C math functions have float versions.
|
||||
GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float trig,
|
||||
@ -655,9 +656,11 @@ AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
|
||||
ceilf floorf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinff)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10f)
|
||||
@ -684,6 +687,7 @@ AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10l)
|
||||
@ -728,23 +732,22 @@ dnl Check to see if there is native support for complex
|
||||
dnl
|
||||
dnl Don't compile bits in math/* if native support exits.
|
||||
dnl
|
||||
dnl Define USE_COMPLEX_LONG_DOUBLE etc if "atan2l/copysignl" is found.
|
||||
dnl Define USE_COMPLEX_LONG_DOUBLE etc if "copysignl" is found.
|
||||
dnl
|
||||
dnl GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
|
||||
AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
|
||||
dnl Check for complex versions of math functions of platform.
|
||||
AC_CHECK_LIB(m, main)
|
||||
AC_REPLACE_MATHFUNCS(nan hypot hypotf copysignf)
|
||||
AC_REPLACE_MATHFUNCS(nan copysignf)
|
||||
|
||||
dnl Compile the long double complex functions only if the function
|
||||
dnl provides the non-complex long double functions that are needed.
|
||||
dnl Currently this includes copysignl and atan2l, which should be
|
||||
dnl Currently this includes copysignl, which should be
|
||||
dnl cached from the GLIBCPP_CHECK_MATH_SUPPORT macro, above.
|
||||
USE_COMPLEX_LONG_DOUBLE=no
|
||||
if test x$ac_cv_func_atan2l = x"yes" &&
|
||||
test x$ac_cv_func_copysignl = x"yes"; then
|
||||
if test x$ac_cv_func_copysignl = x"yes"; then
|
||||
USE_COMPLEX_LONG_DOUBLE=yes
|
||||
AC_REPLACE_MATHFUNCS(hypotl signbitl)
|
||||
AC_REPLACE_MATHFUNCS(signbitl)
|
||||
fi
|
||||
|
||||
AC_SUBST(USE_COMPLEX_LONG_DOUBLE)
|
||||
|
15
libstdc++-v3/aclocal.m4
vendored
15
libstdc++-v3/aclocal.m4
vendored
@ -655,6 +655,7 @@ AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincos)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypot)
|
||||
|
||||
dnl Check to see if basic C math functions have float versions.
|
||||
GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float trig,
|
||||
@ -667,9 +668,11 @@ AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
|
||||
ceilf floorf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinff)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logf)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10f)
|
||||
@ -696,6 +699,7 @@ AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logl)
|
||||
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10l)
|
||||
@ -740,23 +744,22 @@ dnl Check to see if there is native support for complex
|
||||
dnl
|
||||
dnl Don't compile bits in math/* if native support exits.
|
||||
dnl
|
||||
dnl Define USE_COMPLEX_LONG_DOUBLE etc if "atan2l/copysignl" is found.
|
||||
dnl Define USE_COMPLEX_LONG_DOUBLE etc if "copysignl" is found.
|
||||
dnl
|
||||
dnl GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
|
||||
AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
|
||||
dnl Check for complex versions of math functions of platform.
|
||||
AC_CHECK_LIB(m, main)
|
||||
AC_REPLACE_MATHFUNCS(nan hypot hypotf copysignf)
|
||||
AC_REPLACE_MATHFUNCS(nan copysignf)
|
||||
|
||||
dnl Compile the long double complex functions only if the function
|
||||
dnl provides the non-complex long double functions that are needed.
|
||||
dnl Currently this includes copysignl and atan2l, which should be
|
||||
dnl Currently this includes copysignl, which should be
|
||||
dnl cached from the GLIBCPP_CHECK_MATH_SUPPORT macro, above.
|
||||
USE_COMPLEX_LONG_DOUBLE=no
|
||||
if test x$ac_cv_func_atan2l = x"yes" &&
|
||||
test x$ac_cv_func_copysignl = x"yes"; then
|
||||
if test x$ac_cv_func_copysignl = x"yes"; then
|
||||
USE_COMPLEX_LONG_DOUBLE=yes
|
||||
AC_REPLACE_MATHFUNCS(hypotl signbitl)
|
||||
AC_REPLACE_MATHFUNCS(signbitl)
|
||||
fi
|
||||
|
||||
AC_SUBST(USE_COMPLEX_LONG_DOUBLE)
|
||||
|
@ -87,6 +87,9 @@
|
||||
/* Define if you have the _asinl function. */
|
||||
#undef HAVE__ASINL
|
||||
|
||||
/* Define if you have the _atan2f function. */
|
||||
#undef HAVE__ATAN2F
|
||||
|
||||
/* Define if you have the _atan2l function. */
|
||||
#undef HAVE__ATAN2L
|
||||
|
||||
@ -159,6 +162,15 @@
|
||||
/* Define if you have the _frexpl function. */
|
||||
#undef HAVE__FREXPL
|
||||
|
||||
/* Define if you have the _hypot function. */
|
||||
#undef HAVE__HYPOT
|
||||
|
||||
/* Define if you have the _hypotf function. */
|
||||
#undef HAVE__HYPOTF
|
||||
|
||||
/* Define if you have the _hypotl function. */
|
||||
#undef HAVE__HYPOTL
|
||||
|
||||
/* Define if you have the _isinf function. */
|
||||
#undef HAVE__ISINF
|
||||
|
||||
@ -261,6 +273,9 @@
|
||||
/* Define if you have the asinl function. */
|
||||
#undef HAVE_ASINL
|
||||
|
||||
/* Define if you have the atan2f function. */
|
||||
#undef HAVE_ATAN2F
|
||||
|
||||
/* Define if you have the atan2l function. */
|
||||
#undef HAVE_ATAN2L
|
||||
|
||||
|
2238
libstdc++-v3/configure
vendored
2238
libstdc++-v3/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -27,12 +27,9 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
|
||||
|
||||
noinst_LTLIBRARIES = libmath.la
|
||||
|
||||
EXTRA_LONG_DOUBLE_yes = \
|
||||
hypotl.c signbitl.c
|
||||
EXTRA_LONG_DOUBLE_yes = signbitl.c
|
||||
|
||||
EXTRA_DIST = \
|
||||
hypot.c hypotf.c \
|
||||
$(EXTRA_LONG_DOUBLE_yes)
|
||||
EXTRA_DIST = $(EXTRA_LONG_DOUBLE_yes)
|
||||
|
||||
libmath_la_LIBADD = \
|
||||
@LIBMATHOBJS@ \
|
||||
|
@ -129,11 +129,9 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
|
||||
|
||||
noinst_LTLIBRARIES = libmath.la
|
||||
|
||||
EXTRA_LONG_DOUBLE_yes = hypotl.c signbitl.c
|
||||
|
||||
|
||||
EXTRA_DIST = hypot.c hypotf.c $(EXTRA_LONG_DOUBLE_yes)
|
||||
EXTRA_LONG_DOUBLE_yes = signbitl.c
|
||||
|
||||
EXTRA_DIST = $(EXTRA_LONG_DOUBLE_yes)
|
||||
|
||||
libmath_la_LIBADD = @LIBMATHOBJS@ $(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE))
|
||||
|
||||
@ -278,7 +276,7 @@ distdir: $(DISTFILES)
|
||||
@for file in $(DISTFILES); do \
|
||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||
cp -pr $$/$$file $(distdir)/$$file; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||
|
@ -1,38 +0,0 @@
|
||||
/* Compute hypothenuse. */
|
||||
|
||||
/* Copyright (C) 1997-1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU ISO C++ Library. This library is free
|
||||
software; you can redistribute it and/or modify it under the
|
||||
terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this library; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
USA.
|
||||
|
||||
As a special exception, you may use this file as part of a free software
|
||||
library without restriction. Specifically, if other files instantiate
|
||||
templates or use macros or inline functions from this file, or you compile
|
||||
this file and link it with other files to produce an executable, this
|
||||
file does not by itself cause the resulting executable to be covered by
|
||||
the GNU General Public License. This exception does not however
|
||||
invalidate any other reasons why the executable file might be covered by
|
||||
the GNU General Public License. */
|
||||
|
||||
/* If the platform is so pathetic that is has no hypot function it does
|
||||
not deserve it better than getting this version. */
|
||||
extern double sqrt (double);
|
||||
|
||||
double
|
||||
hypot (double x, double y)
|
||||
{
|
||||
return sqrt (x * x + y * y);
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
/* Compute hypothenuse. */
|
||||
|
||||
/* Copyright (C) 1997-1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU ISO C++ Library. This library is free
|
||||
software; you can redistribute it and/or modify it under the
|
||||
terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this library; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
USA.
|
||||
|
||||
As a special exception, you may use this file as part of a free software
|
||||
library without restriction. Specifically, if other files instantiate
|
||||
templates or use macros or inline functions from this file, or you compile
|
||||
this file and link it with other files to produce an executable, this
|
||||
file does not by itself cause the resulting executable to be covered by
|
||||
the GNU General Public License. This exception does not however
|
||||
invalidate any other reasons why the executable file might be covered by
|
||||
the GNU General Public License. */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* If there is a `double' version use it. Otherwise make it simply and
|
||||
stupid. */
|
||||
extern double hypot (double, double);
|
||||
extern double sqrt (double);
|
||||
extern float sqrtf (float);
|
||||
|
||||
float
|
||||
hypotf (float x, float y)
|
||||
{
|
||||
#ifdef HAVE_HYPOT
|
||||
return hypot (x, y);
|
||||
#elif HAVE_SQRTF
|
||||
return sqrtf (x * x + y * y);
|
||||
#else
|
||||
return sqrt (x * x + y * y);
|
||||
#endif
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
/* Compute hypothenuse. */
|
||||
|
||||
/* Copyright (C) 1997-1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU ISO C++ Library. This library is free
|
||||
software; you can redistribute it and/or modify it under the
|
||||
terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this library; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
USA.
|
||||
|
||||
As a special exception, you may use this file as part of a free software
|
||||
library without restriction. Specifically, if other files instantiate
|
||||
templates or use macros or inline functions from this file, or you compile
|
||||
this file and link it with other files to produce an executable, this
|
||||
file does not by itself cause the resulting executable to be covered by
|
||||
the GNU General Public License. This exception does not however
|
||||
invalidate any other reasons why the executable file might be covered by
|
||||
the GNU General Public License. */
|
||||
|
||||
/* The platform supports some long double functions but not hypotl. Blarg. */
|
||||
extern long double sqrtl (long double);
|
||||
|
||||
long double
|
||||
hypotl (long double x, long double y)
|
||||
{
|
||||
return sqrtl (x * x + y * y);
|
||||
}
|
@ -28,9 +28,13 @@
|
||||
the GNU General Public License. */
|
||||
|
||||
#include <math.h>
|
||||
#include <config.h>
|
||||
#include "config.h"
|
||||
|
||||
#ifndef _GLIBCPP_HAVE_ATAN2F
|
||||
/* For targets which do not have support for long double versions,
|
||||
we use the crude approximation. We'll do better later. */
|
||||
|
||||
|
||||
#ifndef HAVE_ATAN2F
|
||||
float
|
||||
atan2f(float x, float y)
|
||||
{
|
||||
@ -38,7 +42,16 @@ atan2f(float x, float y)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(_GLIBCPP_HAVE_COSF) && !defined(_GLIBCPP_HAVE___BUILTIN_COSF)
|
||||
#ifndef HAVE_ATAN2L
|
||||
long double
|
||||
atan2l(long double x, long double y)
|
||||
{
|
||||
return atan2((double) x, (double) y);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined(HAVE_COSF) && !defined(HAVE___BUILTIN_COSF)
|
||||
float
|
||||
cosf(float x)
|
||||
{
|
||||
@ -46,7 +59,16 @@ cosf(float x)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCPP_HAVE_COSHF
|
||||
#ifndef HAVE_COSL
|
||||
long double
|
||||
cosl(long double x)
|
||||
{
|
||||
return cos((double) x);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HAVE_COSHF
|
||||
float
|
||||
coshf(float x)
|
||||
{
|
||||
@ -54,7 +76,16 @@ coshf(float x)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCPP_HAVE_EXPF
|
||||
#ifndef HAVE_COSHL
|
||||
long double
|
||||
coshl(long double x)
|
||||
{
|
||||
return cosh((double) x);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HAVE_EXPF
|
||||
float
|
||||
expf(float x)
|
||||
{
|
||||
@ -62,7 +93,49 @@ expf(float x)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCPP_HAVE_LOGF
|
||||
#ifndef HAVE_EXPL
|
||||
long double
|
||||
expl(long double x)
|
||||
{
|
||||
return exp((double) x);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* Compute the hypothenuse of a right triangle with side x and y. */
|
||||
#ifndef HAVE_HYPOTF
|
||||
float
|
||||
hypotf(float x, float y)
|
||||
{
|
||||
float s = fabsf(x) + fabsf(y);
|
||||
x /= s; y /= s;
|
||||
return s * sqrtf(x * x + y * y);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_HYPOT
|
||||
double
|
||||
hypot(double x, double y)
|
||||
{
|
||||
double s = fabs(x) + fabs(y);
|
||||
x /= s; y /= s;
|
||||
return s * sqrt(x * x + y * y);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_HYPOTL
|
||||
long double
|
||||
hypotl(long double x, long double y)
|
||||
{
|
||||
long double s = fabsl(x) + fabsl(y);
|
||||
x /= s; y /= s;
|
||||
return s * sqrtl(x * x + y * y);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef HAVE_LOGF
|
||||
float
|
||||
logf(float x)
|
||||
{
|
||||
@ -70,7 +143,16 @@ logf(float x)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCPP_HAVE_LOG10F
|
||||
#ifndef _GBLICPP_HAVE_LOGL
|
||||
long double
|
||||
logl(long double x)
|
||||
{
|
||||
return log((double) x);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HAVE_LOG10F
|
||||
float
|
||||
log10f(float x)
|
||||
{
|
||||
@ -78,7 +160,16 @@ log10f(float x)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCPP_HAVE_POWF
|
||||
#ifndef HAVE_LOG10L
|
||||
long double
|
||||
log10l(long double x)
|
||||
{
|
||||
return log10((double) x);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HAVE_POWF
|
||||
float
|
||||
powf(float x, float y)
|
||||
{
|
||||
@ -86,7 +177,16 @@ powf(float x, float y)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(_GLIBCPP_HAVE_SINF) && !defined(_GLIBCPP_HAVE___BUILTIN_SINF)
|
||||
#ifndef HAVE_POWL
|
||||
long double
|
||||
powl(long double x, long double y)
|
||||
{
|
||||
return pow((double) x, (double) y);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined(HAVE_SINF) && !defined(HAVE___BUILTIN_SINF)
|
||||
float
|
||||
sinf(float x)
|
||||
{
|
||||
@ -94,7 +194,16 @@ sinf(float x)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCPP_HAVE_SINHF
|
||||
#ifndef HAVE_SINL
|
||||
long double
|
||||
sinl(long double x)
|
||||
{
|
||||
return sin((double) x);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HAVE_SINHF
|
||||
float
|
||||
sinhf(float x)
|
||||
{
|
||||
@ -102,7 +211,16 @@ sinhf(float x)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCPP_HAVE_SQRTF
|
||||
#ifndef HAVE_SINHL
|
||||
long double
|
||||
sinhl(long double x)
|
||||
{
|
||||
return sinh((double) x);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HAVE_SQRTF
|
||||
float
|
||||
sqrtf(float x)
|
||||
{
|
||||
@ -110,7 +228,16 @@ sqrtf(float x)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCPP_HAVE_TANF
|
||||
#ifndef HAVE_SQRTL
|
||||
long double
|
||||
sqrtl(long double x)
|
||||
{
|
||||
return sqrt((double) x);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HAVE_TANF
|
||||
float
|
||||
tanf(float x)
|
||||
{
|
||||
@ -118,10 +245,27 @@ tanf(float x)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCPP_HAVE_TANHF
|
||||
#ifndef HAVE_TANL
|
||||
long double
|
||||
tanl(long double x)
|
||||
{
|
||||
return tan((double) x);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HAVE_TANHF
|
||||
float
|
||||
tanhf(float x)
|
||||
{
|
||||
return (float) tanh(x);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_TANHL
|
||||
long double
|
||||
tanhl(long double x)
|
||||
{
|
||||
return tanh((double) x);
|
||||
}
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user