diff options
author | obrien <obrien@FreeBSD.org> | 2002-05-28 16:16:03 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-05-28 16:16:03 +0000 |
commit | 0895e1acb698e05d503c26bec5471de2e88b7d93 (patch) | |
tree | 7b14e1142a8f8cf48f311f5246aa3b355f2380b6 /contrib/libstdc++/libmath/stubs.c | |
parent | efbfe7b228c18b8cc364aabaefd6f8253bc6b5ad (diff) | |
download | FreeBSD-src-0895e1acb698e05d503c26bec5471de2e88b7d93.zip FreeBSD-src-0895e1acb698e05d503c26bec5471de2e88b7d93.tar.gz |
Gcc 3.1.0 pre-release's C++ support bits from the FSF anoncvs repo
on 9-May-2002 15:57:15 EDT.
Diffstat (limited to 'contrib/libstdc++/libmath/stubs.c')
-rw-r--r-- | contrib/libstdc++/libmath/stubs.c | 271 |
1 files changed, 271 insertions, 0 deletions
diff --git a/contrib/libstdc++/libmath/stubs.c b/contrib/libstdc++/libmath/stubs.c new file mode 100644 index 0000000..586fd6d --- /dev/null +++ b/contrib/libstdc++/libmath/stubs.c @@ -0,0 +1,271 @@ +/* Stub definitions for libmath subpart of libstdc++. */ + +/* Copyright (C) 2001, 2002 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 <math.h> +#include "config.h" + +/* 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) +{ + return (float) atan2(x, y); +} +#endif + +#ifndef HAVE_ATAN2L +long double +atan2l(long double x, long double y) +{ + return atan2((double) x, (double) y); +} +#endif + + +#ifndef HAVE_COSF +float +cosf(float x) +{ + return (float) cos(x); +} +#endif + +#ifndef HAVE_COSL +long double +cosl(long double x) +{ + return cos((double) x); +} +#endif + + +#ifndef HAVE_COSHF +float +coshf(float x) +{ + return (float) cosh(x); +} +#endif + +#ifndef HAVE_COSHL +long double +coshl(long double x) +{ + return cosh((double) x); +} +#endif + + +#ifndef HAVE_EXPF +float +expf(float x) +{ + return (float) exp(x); +} +#endif + +#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) +{ + return (float) log(x); +} +#endif + +#ifndef HAVE_LOGL +long double +logl(long double x) +{ + return log((double) x); +} +#endif + + +#ifndef HAVE_LOG10F +float +log10f(float x) +{ + return (float) log10(x); +} +#endif + +#ifndef HAVE_LOG10L +long double +log10l(long double x) +{ + return log10((double) x); +} +#endif + + +#ifndef HAVE_POWF +float +powf(float x, float y) +{ + return (float) pow(x, y); +} +#endif + +#ifndef HAVE_POWL +long double +powl(long double x, long double y) +{ + return pow((double) x, (double) y); +} +#endif + + +#ifndef HAVE_SINF +float +sinf(float x) +{ + return (float) sin(x); +} +#endif + +#ifndef HAVE_SINL +long double +sinl(long double x) +{ + return sin((double) x); +} +#endif + + +#ifndef HAVE_SINHF +float +sinhf(float x) +{ + return (float) sinh(x); +} +#endif + +#ifndef HAVE_SINHL +long double +sinhl(long double x) +{ + return sinh((double) x); +} +#endif + + +#ifndef HAVE_SQRTF +float +sqrtf(float x) +{ + return (float) sqrt(x); +} +#endif + +#ifndef HAVE_SQRTL +long double +sqrtl(long double x) +{ + return sqrt((double) x); +} +#endif + + +#ifndef HAVE_TANF +float +tanf(float x) +{ + return (float) tan(x); +} +#endif + +#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 |