diff options
author | Steven G. Kargl <kargls@comcast.net> | 2004-08-29 16:31:16 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2004-08-29 16:31:16 +0000 |
commit | 048c989961b261b522d1af001cec42518361e36b (patch) | |
tree | 98816e2c470c363d195f4b7076300817b615708f | |
parent | e8525382d986350f38193ca20504631bfadc43ba (diff) | |
download | gcc-048c989961b261b522d1af001cec42518361e36b.zip gcc-048c989961b261b522d1af001cec42518361e36b.tar.gz gcc-048c989961b261b522d1af001cec42518361e36b.tar.bz2 |
bessel.c: New file.
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.
From-SVN: r86728
-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 0000000..ed74242 --- /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 0000000..93329de --- /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 |