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
This commit is contained in:
Steven G. Kargl 2004-08-29 16:31:16 +00:00 committed by Paul Brook
parent e8525382d9
commit 048c989961
2 changed files with 111 additions and 0 deletions

View File

@ -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

View File

@ -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