diff options
author | pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-29 16:31:16 +0000 |
---|---|---|
committer | pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-29 16:31:16 +0000 |
commit | f0d56abfe8389789fa00ce60027cfe8247bcd3b2 (patch) | |
tree | 98816e2c470c363d195f4b7076300817b615708f /libgfortran/intrinsics | |
parent | 158e0e64456930a3a1d439043a9c27d6a8057d2d (diff) | |
download | gcc-f0d56abfe8389789fa00ce60027cfe8247bcd3b2.tar.gz |
2004-08-29 Steven G. Kargl <kargls@comcast.net>
Paul Brook <paul@codesourcery.com>
* intrinsics/bessel.c: New file.
* intrinsics/erf.c: New file.
* Makefie.am: Add intrinsics/bessel.c and intrinsics/erf.c.
* configure.ac: Test for C99 Bessel and Error functions.
* Makefile.in: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86728 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/intrinsics')
-rw-r--r-- | libgfortran/intrinsics/bessel.c | 72 | ||||
-rw-r--r-- | libgfortran/intrinsics/erf.c | 39 |
2 files changed, 111 insertions, 0 deletions
diff --git a/libgfortran/intrinsics/bessel.c b/libgfortran/intrinsics/bessel.c new file mode 100644 index 00000000000..ed7424215c6 --- /dev/null +++ b/libgfortran/intrinsics/bessel.c @@ -0,0 +1,72 @@ +/* Wrapper for systems without the various C99 single precision Bessel + functions. + Copyright (C) 2004 Free Software Foundation, Inc. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +Libgfortran 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 Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with libgfortran; see the file COPYING.LIB. If not, +write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "config.h" +#include <math.h> +#include "libgfortran.h" + +/* Assume we have all or none of these. */ +#if HAVE_J0 && !HAVE_J0F +float +j0f (float x) +{ + return (float) j0 ((double) x); +} +#endif + +#if HAVE_J1 && !HAVE_J1F +float j1f (float x) +{ + return (float) j1 ((double) x); +} +#endif + +#if HAVE_JN && !HAVE_JNF +float +jnf (int n, float x) +{ + return (float) jn (n, (double) x); +} +#endif + +#if HAVE_Y0 && !HAVE_Y0F +float +y0f (float x) +{ + return (float) y0 ((double) x); +} +#endif + +#if HAVE_Y1 && !HAVE_Y1F +float +y1f (float x) +{ + return (float) y1 ((double) x); +} +#endif + +#if HAVE_YN && !HAVE_YNF +float +ynf (int n, float x) +{ + return (float) yn (n, (double) x); +} +#endif diff --git a/libgfortran/intrinsics/erf.c b/libgfortran/intrinsics/erf.c new file mode 100644 index 00000000000..93329de4de3 --- /dev/null +++ b/libgfortran/intrinsics/erf.c @@ -0,0 +1,39 @@ +/* Wrapper for systems without the C99 erff() and erfcf() functions + Copyright (C) 2004 Free Software Foundation, Inc. + +This file is part of the GNU Fortran 95 runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +Libgfortran 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 Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with libgfortran; see the file COPYING.LIB. If not, +write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "config.h" +#include <math.h> +#include "libgfortran.h" + +#if HAVE_ERF && !HAVE_ERFF +float +erff (float x) +{ + return (float) erf ((double) x); +} +#endif + +#if HAVE_ERFC && !HAVE_ERFCF +float +erfcf (float x) +{ + return (float) erfc ((double) x); +} +#endif |