diff options
-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 |