2004-08-29 Steven G. Kargl <kargls@comcast.net> Paul Brook <paul@codesourcery.com> * check.c (gfc_check_besn, gfc_check_g77_math1): New functions. * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define. (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it. (build_builtin_fntypes): New function. (gfc_init_builtin_functions): Use it. * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N} and GFC_ISYM_ERF{,C}. (gfc_c_int_kind): Declare. * intrinsic.c (add_functions): Add [d]bes* and [d]erf*. * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn, gfc_resolve_g77_math1): Add prototypes. * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions. * mathbuiltins.def: Add comment. Change third argument. Use DEFINE_MATH_BUILTIN_C. Add bessel and error functions. * trans-intrinsic.c (BUILT_IN_FUNCTION): Define. (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it. * trans-types.c (gfc_c_int_kind): Declare. (gfc_init_kinds): Set it. testsuite/ * gfortran.dg/g77/README: Update. * gfortran.dg/g77/erfc.f: Copy from g77.f-torture. * gfortran.dg/g77/intrinsic-unix-bessel.f: Ditto. * gfortran.dg/g77/intrinsic-unix-erf.f: Ditto. libgfortran/ * 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. Co-Authored-By: Paul Brook <paul@codesourcery.com> From-SVN: r86727
30 lines
1.2 KiB
Modula-2
30 lines
1.2 KiB
Modula-2
/* DEFINE_MATH_BUILTIN (CODE, NAME, ARGTYPE)
|
|
NAME The name of the builtin
|
|
SNAME The name of the builtin as a string
|
|
ARGTYPE The type of the arguments. See f95-lang.c
|
|
|
|
Use DEFINE_MATH_BUILTIN_C if the complex versions of the builtin are
|
|
also available. */
|
|
DEFINE_MATH_BUILTIN_C (ACOS, "acos", 0)
|
|
DEFINE_MATH_BUILTIN_C (ASIN, "asin", 0)
|
|
DEFINE_MATH_BUILTIN_C (ATAN, "atan", 0)
|
|
DEFINE_MATH_BUILTIN (ATAN2, "atan2", 1)
|
|
DEFINE_MATH_BUILTIN_C (COS, "cos", 0)
|
|
DEFINE_MATH_BUILTIN_C (COSH, "cosh", 0)
|
|
DEFINE_MATH_BUILTIN_C (EXP, "exp", 0)
|
|
DEFINE_MATH_BUILTIN_C (LOG, "log", 0)
|
|
DEFINE_MATH_BUILTIN_C (LOG10, "log10", 0)
|
|
DEFINE_MATH_BUILTIN_C (SIN, "sin", 0)
|
|
DEFINE_MATH_BUILTIN_C (SINH, "sinh", 0)
|
|
DEFINE_MATH_BUILTIN_C (SQRT, "sqrt", 0)
|
|
DEFINE_MATH_BUILTIN_C (TAN, "tan", 0)
|
|
DEFINE_MATH_BUILTIN_C (TANH, "tanh", 0)
|
|
DEFINE_MATH_BUILTIN (J0, "j0", 0)
|
|
DEFINE_MATH_BUILTIN (J1, "j1", 0)
|
|
DEFINE_MATH_BUILTIN (JN, "jn", 2)
|
|
DEFINE_MATH_BUILTIN (Y0, "y0", 0)
|
|
DEFINE_MATH_BUILTIN (Y1, "y1", 0)
|
|
DEFINE_MATH_BUILTIN (YN, "yn", 2)
|
|
DEFINE_MATH_BUILTIN (ERF, "erf", 0)
|
|
DEFINE_MATH_BUILTIN (ERFC, "erfc", 0)
|