From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- libstdc++-v3/src/math_stubs_float.cc | 224 +++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 libstdc++-v3/src/math_stubs_float.cc (limited to 'libstdc++-v3/src/math_stubs_float.cc') diff --git a/libstdc++-v3/src/math_stubs_float.cc b/libstdc++-v3/src/math_stubs_float.cc new file mode 100644 index 000000000..a226ce46f --- /dev/null +++ b/libstdc++-v3/src/math_stubs_float.cc @@ -0,0 +1,224 @@ +// Stub definitions for float math. + +// Copyright (C) 2001, 2002, 2003, 2009 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 3, 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. + +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. + +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + +#include + +// For targets which do not have support for float versions, +// we use the following crude approximations. We keep saying that we'll do +// better later, but never do. + +extern "C" +{ +#ifndef _GLIBCXX_HAVE_FABSF + float + fabsf(float x) + { + return (float) fabs(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_ACOSF + float + acosf(float x) + { + return (float) acos(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_ASINF + float + asinf(float x) + { + return (float) asin(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_ATANF + float + atanf(float x) + { + return (float) atan(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_ATAN2F + float + atan2f(float x, float y) + { + return (float) atan2(x, y); + } +#endif + +#ifndef _GLIBCXX_HAVE_CEILF + float + ceilf(float x) + { + return (float) ceil(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_COSF + float + cosf(float x) + { + return (float) cos(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_COSHF + float + coshf(float x) + { + return (float) cosh(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_EXPF + float + expf(float x) + { + return (float) exp(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_FLOORF + float + floorf(float x) + { + return (float) floor(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_FMODF + float + fmodf(float x, float y) + { + return (float) fmod(x, y); + } +#endif + +#ifndef _GLIBCXX_HAVE_FREXPF + float + frexpf(float x, int *exp) + { + return (float) frexp(x, exp); + } +#endif + +#ifndef _GLIBCXX_HAVE_SQRTF + float + sqrtf(float x) + { + return (float) sqrt(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_HYPOTF + float + hypotf(float x, float y) + { + float s = fabsf(x) + fabsf(y); + if (s == 0.0F) + return s; + x /= s; y /= s; + return s * sqrtf(x * x + y * y); + } +#endif + +#ifndef _GLIBCXX_HAVE_LDEXPF + float + ldexpf(float x, int exp) + { + return (float) ldexp(x, exp); + } +#endif + +#ifndef _GLIBCXX_HAVE_LOGF + float + logf(float x) + { + return (float) log(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_LOG10F + float + log10f(float x) + { + return (float) log10(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_MODFF + float + modff(float x, float *iptr) + { + double result, temp; + + result = modf(x, &temp); + *iptr = (float) temp; + return (float) result; + } +#endif + +#ifndef _GLIBCXX_HAVE_POWF + float + powf(float x, float y) + { + return (float) pow(x, y); + } +#endif + +#ifndef _GLIBCXX_HAVE_SINF + float + sinf(float x) + { + return (float) sin(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_SINHF + float + sinhf(float x) + { + return (float) sinh(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_TANF + float + tanf(float x) + { + return (float) tan(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_TANHF + float + tanhf(float x) + { + return (float) tanh(x); + } +#endif +} // extern "C" -- cgit v1.2.3