re PR libfortran/19308 (I/O library should support more real and integer kinds)

	PR libfortran/19308
	PR fortran/20120
	PR libfortran/22437

	* Makefile.am: Add generated files for large real and integers
	kinds. Add a rule to create the kinds.inc c99_protos.inc files.
	Use kinds.inc to preprocess Fortran generated files.
	* libgfortran.h: Add macro definitions for GFC_INTEGER_16_HUGE,
	GFC_REAL_10_HUGE and GFC_REAL_16_HUGE. Add types gfc_array_i16,
	gfc_array_r10, gfc_array_r16, gfc_array_c10, gfc_array_c16,
	gfc_array_l16.
	* mk-kinds-h.sh: Define macros HAVE_GFC_LOGICAL_* and
	HAVE_GFC_COMPLEX_* when these types are available.
	* intrinsics/ishftc.c (ishftc16): New function for GFC_INTEGER_16.
	* m4/all.m4, m4/any.m4, m4/count.m4, m4/cshift1.m4, m4/dotprod.m4,
	m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
	m4/exponent.m4, m4/fraction.m4, m4/in_pack.m4, m4/in_unpack.m4,
	m4/matmul.m4, m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4,
	m4/maxval.m4, m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/mtype.m4,
	m4/nearest.m4, m4/pow.m4, m4/product.m4, m4/reshape.m4,
	m4/set_exponent.m4, m4/shape.m4, m4/specific.m4, m4/specific2.m4,
	m4/sum.m4, m4/transpose.m4: Protect generated functions with
	appropriate "#if defined (HAVE_GFC_type_kind)" preprocessor directives.
	* Makefile.in: Regenerate.
	* all files in generated/: Regenerate.

	* f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long
	double builtin function.
	(gfc_init_builtin_functions): Add mfunc_longdouble,
	mfunc_clongdouble and func_clongdouble_longdouble trees. Build
	them for round, trunc, cabs, copysign and pow functions.
	* iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add
	case for kind 10 and 16.
	* trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16,
	exponent10 and exponent16.
	(gfc_build_intrinsic_function_decls): Build nodes for int16,
	real10, real16, complex10 and complex16 types. Build all possible
	combinations for function _gfortran_pow_?n_?n. Build function
	calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16.
	* trans-expr.c (gfc_conv_power_op): Add case for integer(16),
	real(10) and real(16).
	* trans-intrinsic.c: Add suppport for long double builtin
	functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION
	macros.
	(gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and
	real(16) kinds.
	(gfc_build_intrinsic_lib_fndecls): Add support for real10_decl
	and real16_decl in library functions.
	(gfc_get_intrinsic_lib_fndecl): Add cases for real and complex
	kinds 10 and 16.
	(gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16)
	kinds.
	(gfc_conv_intrinsic_sign): Likewise.
	(gfc_conv_intrinsic_ishftc): Add case for integer(16) kind.
	* trans-types.c (gfc_get_int_type, gfc_get_real_type,
	gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in
	the case of kinds not available.
	* trans.h: Declare trees for cpowl10, cpowl16, ishftc16,
	exponent10 and exponent16.

	* gfortran.dg/large_real_kind_2.F90: New test.
	* gfortran.dg/large_integer_kind_2.f90: New test.

From-SVN: r104889
parent 41a182c6
2005-10-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR fortran/20120
* f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long
double builtin function.
(gfc_init_builtin_functions): Add mfunc_longdouble,
mfunc_clongdouble and func_clongdouble_longdouble trees. Build
them for round, trunc, cabs, copysign and pow functions.
* iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add
case for kind 10 and 16.
* trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16,
exponent10 and exponent16.
(gfc_build_intrinsic_function_decls): Build nodes for int16,
real10, real16, complex10 and complex16 types. Build all possible
combinations for function _gfortran_pow_?n_?n. Build function
calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16.
* trans-expr.c (gfc_conv_power_op): Add case for integer(16),
real(10) and real(16).
* trans-intrinsic.c: Add suppport for long double builtin
functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION
macros.
(gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and
real(16) kinds.
(gfc_build_intrinsic_lib_fndecls): Add support for real10_decl
and real16_decl in library functions.
(gfc_get_intrinsic_lib_fndecl): Add cases for real and complex
kinds 10 and 16.
(gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16)
kinds.
(gfc_conv_intrinsic_sign): Likewise.
(gfc_conv_intrinsic_ishftc): Add case for integer(16) kind.
* trans-types.c (gfc_get_int_type, gfc_get_real_type,
gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in
the case of kinds not available.
* trans.h: Declare trees for cpowl10, cpowl16, ishftc16,
exponent10 and exponent16.
2005-10-01 Paul Thomas <pault@gcc.gnu.org> 2005-10-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/16404 PR fortran/16404
......
...@@ -718,6 +718,8 @@ gfc_define_builtin (const char * name, ...@@ -718,6 +718,8 @@ gfc_define_builtin (const char * name,
#define DO_DEFINE_MATH_BUILTIN(code, name, argtype, tbase) \ #define DO_DEFINE_MATH_BUILTIN(code, name, argtype, tbase) \
gfc_define_builtin ("__builtin_" name "l", tbase##longdouble[argtype], \
BUILT_IN_ ## code ## L, name "l", true); \
gfc_define_builtin ("__builtin_" name, tbase##double[argtype], \ gfc_define_builtin ("__builtin_" name, tbase##double[argtype], \
BUILT_IN_ ## code, name, true); \ BUILT_IN_ ## code, name, true); \
gfc_define_builtin ("__builtin_" name "f", tbase##float[argtype], \ gfc_define_builtin ("__builtin_" name "f", tbase##float[argtype], \
...@@ -726,11 +728,9 @@ gfc_define_builtin (const char * name, ...@@ -726,11 +728,9 @@ gfc_define_builtin (const char * name,
#define DEFINE_MATH_BUILTIN(code, name, argtype) \ #define DEFINE_MATH_BUILTIN(code, name, argtype) \
DO_DEFINE_MATH_BUILTIN (code, name, argtype, mfunc_) DO_DEFINE_MATH_BUILTIN (code, name, argtype, mfunc_)
/* The middle-end is missing builtins for some complex math functions, so
we don't use them yet. */
#define DEFINE_MATH_BUILTIN_C(code, name, argtype) \ #define DEFINE_MATH_BUILTIN_C(code, name, argtype) \
DO_DEFINE_MATH_BUILTIN (code, name, argtype, mfunc_) DO_DEFINE_MATH_BUILTIN (code, name, argtype, mfunc_) \
/* DO_DEFINE_MATH_BUILTIN (C##code, "c" name, argtype, mfunc_c)*/ DO_DEFINE_MATH_BUILTIN (C##code, "c" name, argtype, mfunc_c)
/* Create function types for builtin functions. */ /* Create function types for builtin functions. */
...@@ -760,17 +760,22 @@ gfc_init_builtin_functions (void) ...@@ -760,17 +760,22 @@ gfc_init_builtin_functions (void)
{ {
tree mfunc_float[3]; tree mfunc_float[3];
tree mfunc_double[3]; tree mfunc_double[3];
tree mfunc_longdouble[3];
tree mfunc_cfloat[3]; tree mfunc_cfloat[3];
tree mfunc_cdouble[3]; tree mfunc_cdouble[3];
tree mfunc_clongdouble[3];
tree func_cfloat_float; tree func_cfloat_float;
tree func_cdouble_double; tree func_cdouble_double;
tree func_clongdouble_longdouble;
tree ftype; tree ftype;
tree tmp; tree tmp;
build_builtin_fntypes (mfunc_float, float_type_node); build_builtin_fntypes (mfunc_float, float_type_node);
build_builtin_fntypes (mfunc_double, double_type_node); build_builtin_fntypes (mfunc_double, double_type_node);
build_builtin_fntypes (mfunc_longdouble, long_double_type_node);
build_builtin_fntypes (mfunc_cfloat, complex_float_type_node); build_builtin_fntypes (mfunc_cfloat, complex_float_type_node);
build_builtin_fntypes (mfunc_cdouble, complex_double_type_node); build_builtin_fntypes (mfunc_cdouble, complex_double_type_node);
build_builtin_fntypes (mfunc_clongdouble, complex_long_double_type_node);
tmp = tree_cons (NULL_TREE, complex_float_type_node, void_list_node); tmp = tree_cons (NULL_TREE, complex_float_type_node, void_list_node);
func_cfloat_float = build_function_type (float_type_node, tmp); func_cfloat_float = build_function_type (float_type_node, tmp);
...@@ -778,30 +783,45 @@ gfc_init_builtin_functions (void) ...@@ -778,30 +783,45 @@ gfc_init_builtin_functions (void)
tmp = tree_cons (NULL_TREE, complex_double_type_node, void_list_node); tmp = tree_cons (NULL_TREE, complex_double_type_node, void_list_node);
func_cdouble_double = build_function_type (double_type_node, tmp); func_cdouble_double = build_function_type (double_type_node, tmp);
tmp = tree_cons (NULL_TREE, complex_long_double_type_node, void_list_node);
func_clongdouble_longdouble =
build_function_type (long_double_type_node, tmp);
#include "mathbuiltins.def" #include "mathbuiltins.def"
/* We define these separately as the fortran versions have different /* We define these separately as the fortran versions have different
semantics (they return an integer type) */ semantics (they return an integer type) */
gfc_define_builtin ("__builtin_roundl", mfunc_longdouble[0],
BUILT_IN_ROUNDL, "roundl", true);
gfc_define_builtin ("__builtin_round", mfunc_double[0], gfc_define_builtin ("__builtin_round", mfunc_double[0],
BUILT_IN_ROUND, "round", true); BUILT_IN_ROUND, "round", true);
gfc_define_builtin ("__builtin_roundf", mfunc_float[0], gfc_define_builtin ("__builtin_roundf", mfunc_float[0],
BUILT_IN_ROUNDF, "roundf", true); BUILT_IN_ROUNDF, "roundf", true);
gfc_define_builtin ("__builtin_truncl", mfunc_longdouble[0],
BUILT_IN_TRUNCL, "truncl", true);
gfc_define_builtin ("__builtin_trunc", mfunc_double[0], gfc_define_builtin ("__builtin_trunc", mfunc_double[0],
BUILT_IN_TRUNC, "trunc", true); BUILT_IN_TRUNC, "trunc", true);
gfc_define_builtin ("__builtin_truncf", mfunc_float[0], gfc_define_builtin ("__builtin_truncf", mfunc_float[0],
BUILT_IN_TRUNCF, "truncf", true); BUILT_IN_TRUNCF, "truncf", true);
gfc_define_builtin ("__builtin_cabsl", func_clongdouble_longdouble,
BUILT_IN_CABSL, "cabsl", true);
gfc_define_builtin ("__builtin_cabs", func_cdouble_double, gfc_define_builtin ("__builtin_cabs", func_cdouble_double,
BUILT_IN_CABS, "cabs", true); BUILT_IN_CABS, "cabs", true);
gfc_define_builtin ("__builtin_cabsf", func_cfloat_float, gfc_define_builtin ("__builtin_cabsf", func_cfloat_float,
BUILT_IN_CABSF, "cabsf", true); BUILT_IN_CABSF, "cabsf", true);
gfc_define_builtin ("__builtin_copysignl", mfunc_longdouble[1],
BUILT_IN_COPYSIGNL, "copysignl", true);
gfc_define_builtin ("__builtin_copysign", mfunc_double[1], gfc_define_builtin ("__builtin_copysign", mfunc_double[1],
BUILT_IN_COPYSIGN, "copysign", true); BUILT_IN_COPYSIGN, "copysign", true);
gfc_define_builtin ("__builtin_copysignf", mfunc_float[1], gfc_define_builtin ("__builtin_copysignf", mfunc_float[1],
BUILT_IN_COPYSIGNF, "copysignf", true); BUILT_IN_COPYSIGNF, "copysignf", true);
/* These are used to implement the ** operator. */ /* These are used to implement the ** operator. */
gfc_define_builtin ("__builtin_powl", mfunc_longdouble[1],
BUILT_IN_POWL, "powl", true);
gfc_define_builtin ("__builtin_pow", mfunc_double[1], gfc_define_builtin ("__builtin_pow", mfunc_double[1],
BUILT_IN_POW, "pow", true); BUILT_IN_POW, "pow", true);
gfc_define_builtin ("__builtin_powf", mfunc_float[1], gfc_define_builtin ("__builtin_powf", mfunc_float[1],
......
...@@ -1217,7 +1217,8 @@ gfc_resolve_reshape (gfc_expr * f, gfc_expr * source, gfc_expr * shape, ...@@ -1217,7 +1217,8 @@ gfc_resolve_reshape (gfc_expr * f, gfc_expr * source, gfc_expr * shape,
{ {
case 4: case 4:
case 8: case 8:
/* case 16: */ case 10:
case 16:
if (source->ts.type == BT_COMPLEX) if (source->ts.type == BT_COMPLEX)
f->value.function.name = f->value.function.name =
gfc_get_string (PREFIX("reshape_%c%d"), gfc_get_string (PREFIX("reshape_%c%d"),
...@@ -1538,6 +1539,8 @@ gfc_resolve_transpose (gfc_expr * f, gfc_expr * matrix) ...@@ -1538,6 +1539,8 @@ gfc_resolve_transpose (gfc_expr * f, gfc_expr * matrix)
{ {
case 4: case 4:
case 8: case 8:
case 10:
case 16:
switch (matrix->ts.type) switch (matrix->ts.type)
{ {
case BT_COMPLEX: case BT_COMPLEX:
......
...@@ -94,13 +94,18 @@ tree gfor_fndecl_associated; ...@@ -94,13 +94,18 @@ tree gfor_fndecl_associated;
/* Math functions. Many other math functions are handled in /* Math functions. Many other math functions are handled in
trans-intrinsic.c. */ trans-intrinsic.c. */
gfc_powdecl_list gfor_fndecl_math_powi[3][2]; gfc_powdecl_list gfor_fndecl_math_powi[4][3];
tree gfor_fndecl_math_cpowf; tree gfor_fndecl_math_cpowf;
tree gfor_fndecl_math_cpow; tree gfor_fndecl_math_cpow;
tree gfor_fndecl_math_cpowl10;
tree gfor_fndecl_math_cpowl16;
tree gfor_fndecl_math_ishftc4; tree gfor_fndecl_math_ishftc4;
tree gfor_fndecl_math_ishftc8; tree gfor_fndecl_math_ishftc8;
tree gfor_fndecl_math_ishftc16;
tree gfor_fndecl_math_exponent4; tree gfor_fndecl_math_exponent4;
tree gfor_fndecl_math_exponent8; tree gfor_fndecl_math_exponent8;
tree gfor_fndecl_math_exponent10;
tree gfor_fndecl_math_exponent16;
/* String functions. */ /* String functions. */
...@@ -1691,11 +1696,16 @@ gfc_build_intrinsic_function_decls (void) ...@@ -1691,11 +1696,16 @@ gfc_build_intrinsic_function_decls (void)
{ {
tree gfc_int4_type_node = gfc_get_int_type (4); tree gfc_int4_type_node = gfc_get_int_type (4);
tree gfc_int8_type_node = gfc_get_int_type (8); tree gfc_int8_type_node = gfc_get_int_type (8);
tree gfc_int16_type_node = gfc_get_int_type (16);
tree gfc_logical4_type_node = gfc_get_logical_type (4); tree gfc_logical4_type_node = gfc_get_logical_type (4);
tree gfc_real4_type_node = gfc_get_real_type (4); tree gfc_real4_type_node = gfc_get_real_type (4);
tree gfc_real8_type_node = gfc_get_real_type (8); tree gfc_real8_type_node = gfc_get_real_type (8);
tree gfc_real10_type_node = gfc_get_real_type (10);
tree gfc_real16_type_node = gfc_get_real_type (16);
tree gfc_complex4_type_node = gfc_get_complex_type (4); tree gfc_complex4_type_node = gfc_get_complex_type (4);
tree gfc_complex8_type_node = gfc_get_complex_type (8); tree gfc_complex8_type_node = gfc_get_complex_type (8);
tree gfc_complex10_type_node = gfc_get_complex_type (10);
tree gfc_complex16_type_node = gfc_get_complex_type (16);
/* String functions. */ /* String functions. */
gfor_fndecl_copy_string = gfor_fndecl_copy_string =
...@@ -1793,37 +1803,56 @@ gfc_build_intrinsic_function_decls (void) ...@@ -1793,37 +1803,56 @@ gfc_build_intrinsic_function_decls (void)
/* Power functions. */ /* Power functions. */
{ {
tree type; tree ctype, rtype, itype, jtype;
tree itype; int rkind, ikind, jkind;
int kind; #define NIKINDS 3
int ikind; #define NRKINDS 4
static int kinds[2] = {4, 8}; static int ikinds[NIKINDS] = {4, 8, 16};
char name[PREFIX_LEN + 10]; /* _gfortran_pow_?n_?n */ static int rkinds[NRKINDS] = {4, 8, 10, 16};
char name[PREFIX_LEN + 12]; /* _gfortran_pow_?n_?n */
for (ikind=0; ikind < 2; ikind++)
for (ikind=0; ikind < NIKINDS; ikind++)
{ {
itype = gfc_get_int_type (kinds[ikind]); itype = gfc_get_int_type (ikinds[ikind]);
for (kind = 0; kind < 2; kind ++)
for (jkind=0; jkind < NIKINDS; jkind++)
{
jtype = gfc_get_int_type (ikinds[jkind]);
if (itype && jtype)
{
sprintf(name, PREFIX("pow_i%d_i%d"), ikinds[ikind],
ikinds[jkind]);
gfor_fndecl_math_powi[jkind][ikind].integer =
gfc_build_library_function_decl (get_identifier (name),
jtype, 2, jtype, itype);
}
}
for (rkind = 0; rkind < NRKINDS; rkind ++)
{ {
type = gfc_get_int_type (kinds[kind]); rtype = gfc_get_real_type (rkinds[rkind]);
sprintf(name, PREFIX("pow_i%d_i%d"), kinds[kind], kinds[ikind]); if (rtype && itype)
gfor_fndecl_math_powi[kind][ikind].integer = {
gfc_build_library_function_decl (get_identifier (name), sprintf(name, PREFIX("pow_r%d_i%d"), rkinds[rkind],
type, 2, type, itype); ikinds[ikind]);
gfor_fndecl_math_powi[rkind][ikind].real =
type = gfc_get_real_type (kinds[kind]); gfc_build_library_function_decl (get_identifier (name),
sprintf(name, PREFIX("pow_r%d_i%d"), kinds[kind], kinds[ikind]); rtype, 2, rtype, itype);
gfor_fndecl_math_powi[kind][ikind].real = }
gfc_build_library_function_decl (get_identifier (name),
type, 2, type, itype); ctype = gfc_get_complex_type (rkinds[rkind]);
if (ctype && itype)
type = gfc_get_complex_type (kinds[kind]); {
sprintf(name, PREFIX("pow_c%d_i%d"), kinds[kind], kinds[ikind]); sprintf(name, PREFIX("pow_c%d_i%d"), rkinds[rkind],
gfor_fndecl_math_powi[kind][ikind].cmplx = ikinds[ikind]);
gfc_build_library_function_decl (get_identifier (name), gfor_fndecl_math_powi[rkind][ikind].cmplx =
type, 2, type, itype); gfc_build_library_function_decl (get_identifier (name),
ctype, 2,ctype, itype);
}
} }
} }
#undef NIKINDS
#undef NRKINDS
} }
gfor_fndecl_math_cpowf = gfor_fndecl_math_cpowf =
...@@ -1834,6 +1863,17 @@ gfc_build_intrinsic_function_decls (void) ...@@ -1834,6 +1863,17 @@ gfc_build_intrinsic_function_decls (void)
gfc_build_library_function_decl (get_identifier ("cpow"), gfc_build_library_function_decl (get_identifier ("cpow"),
gfc_complex8_type_node, gfc_complex8_type_node,
1, gfc_complex8_type_node); 1, gfc_complex8_type_node);
if (gfc_complex10_type_node)
gfor_fndecl_math_cpowl10 =
gfc_build_library_function_decl (get_identifier ("cpowl"),
gfc_complex10_type_node, 1,
gfc_complex10_type_node);
if (gfc_complex16_type_node)
gfor_fndecl_math_cpowl16 =
gfc_build_library_function_decl (get_identifier ("cpowl"),
gfc_complex16_type_node, 1,
gfc_complex16_type_node);
gfor_fndecl_math_ishftc4 = gfor_fndecl_math_ishftc4 =
gfc_build_library_function_decl (get_identifier (PREFIX("ishftc4")), gfc_build_library_function_decl (get_identifier (PREFIX("ishftc4")),
gfc_int4_type_node, gfc_int4_type_node,
...@@ -1843,7 +1883,15 @@ gfc_build_intrinsic_function_decls (void) ...@@ -1843,7 +1883,15 @@ gfc_build_intrinsic_function_decls (void)
gfc_build_library_function_decl (get_identifier (PREFIX("ishftc8")), gfc_build_library_function_decl (get_identifier (PREFIX("ishftc8")),
gfc_int8_type_node, gfc_int8_type_node,
3, gfc_int8_type_node, 3, gfc_int8_type_node,
gfc_int8_type_node, gfc_int8_type_node); gfc_int4_type_node, gfc_int4_type_node);
if (gfc_int16_type_node)
gfor_fndecl_math_ishftc16 =
gfc_build_library_function_decl (get_identifier (PREFIX("ishftc16")),
gfc_int16_type_node, 3,
gfc_int16_type_node,
gfc_int4_type_node,
gfc_int4_type_node);
gfor_fndecl_math_exponent4 = gfor_fndecl_math_exponent4 =
gfc_build_library_function_decl (get_identifier (PREFIX("exponent_r4")), gfc_build_library_function_decl (get_identifier (PREFIX("exponent_r4")),
gfc_int4_type_node, gfc_int4_type_node,
...@@ -1852,6 +1900,16 @@ gfc_build_intrinsic_function_decls (void) ...@@ -1852,6 +1900,16 @@ gfc_build_intrinsic_function_decls (void)
gfc_build_library_function_decl (get_identifier (PREFIX("exponent_r8")), gfc_build_library_function_decl (get_identifier (PREFIX("exponent_r8")),
gfc_int4_type_node, gfc_int4_type_node,
1, gfc_real8_type_node); 1, gfc_real8_type_node);
if (gfc_real10_type_node)
gfor_fndecl_math_exponent10 =
gfc_build_library_function_decl (get_identifier (PREFIX("exponent_r10")),
gfc_int4_type_node, 1,
gfc_real10_type_node);
if (gfc_real16_type_node)
gfor_fndecl_math_exponent16 =
gfc_build_library_function_decl (get_identifier (PREFIX("exponent_r16")),
gfc_int4_type_node, 1,
gfc_real16_type_node);
/* Other functions. */ /* Other functions. */
gfor_fndecl_size0 = gfor_fndecl_size0 =
......
...@@ -691,6 +691,10 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) ...@@ -691,6 +691,10 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
ikind = 1; ikind = 1;
break; break;
case 16:
ikind = 2;
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
...@@ -712,6 +716,14 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) ...@@ -712,6 +716,14 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
kind = 1; kind = 1;
break; break;
case 10:
kind = 2;
break;
case 16:
kind = 3;
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
...@@ -719,6 +731,8 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) ...@@ -719,6 +731,8 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
switch (expr->value.op.op1->ts.type) switch (expr->value.op.op1->ts.type)
{ {
case BT_INTEGER: case BT_INTEGER:
if (kind == 3) /* Case 16 was not handled properly above. */
kind = 2;
fndecl = gfor_fndecl_math_powi[kind][ikind].integer; fndecl = gfor_fndecl_math_powi[kind][ikind].integer;
break; break;
...@@ -744,6 +758,10 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) ...@@ -744,6 +758,10 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
case 8: case 8:
fndecl = built_in_decls[BUILT_IN_POW]; fndecl = built_in_decls[BUILT_IN_POW];
break; break;
case 10:
case 16:
fndecl = built_in_decls[BUILT_IN_POWL];
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
...@@ -758,6 +776,12 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr) ...@@ -758,6 +776,12 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
case 8: case 8:
fndecl = gfor_fndecl_math_cpow; fndecl = gfor_fndecl_math_cpow;
break; break;
case 10:
fndecl = gfor_fndecl_math_cpowl10;
break;
case 16:
fndecl = gfor_fndecl_math_cpowl16;
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
......
...@@ -52,14 +52,18 @@ typedef struct gfc_intrinsic_map_t GTY(()) ...@@ -52,14 +52,18 @@ typedef struct gfc_intrinsic_map_t GTY(())
/* Enum value from the "language-independent", aka C-centric, part /* Enum value from the "language-independent", aka C-centric, part
of gcc, or END_BUILTINS of no such value set. */ of gcc, or END_BUILTINS of no such value set. */
/* ??? There are now complex variants in builtins.def, though we enum built_in_function code_r4;
don't currently do anything with them. */ enum built_in_function code_r8;
enum built_in_function code4; enum built_in_function code_r10;
enum built_in_function code8; enum built_in_function code_r16;
enum built_in_function code_c4;
enum built_in_function code_c8;
enum built_in_function code_c10;
enum built_in_function code_c16;
/* True if the naming pattern is to prepend "c" for complex and /* True if the naming pattern is to prepend "c" for complex and
append "f" for kind=4. False if the naming pattern is to append "f" for kind=4. False if the naming pattern is to
prepend "_gfortran_" and append "[rc][48]". */ prepend "_gfortran_" and append "[rc](4|8|10|16)". */
bool libm_name; bool libm_name;
/* True if a complex version of the function exists. */ /* True if a complex version of the function exists. */
...@@ -74,32 +78,42 @@ typedef struct gfc_intrinsic_map_t GTY(()) ...@@ -74,32 +78,42 @@ typedef struct gfc_intrinsic_map_t GTY(())
/* Cache decls created for the various operand types. */ /* Cache decls created for the various operand types. */
tree real4_decl; tree real4_decl;
tree real8_decl; tree real8_decl;
tree real10_decl;
tree real16_decl;
tree complex4_decl; tree complex4_decl;
tree complex8_decl; tree complex8_decl;
tree complex10_decl;
tree complex16_decl;
} }
gfc_intrinsic_map_t; gfc_intrinsic_map_t;
/* ??? The NARGS==1 hack here is based on the fact that (c99 at least) /* ??? The NARGS==1 hack here is based on the fact that (c99 at least)
defines complex variants of all of the entries in mathbuiltins.def defines complex variants of all of the entries in mathbuiltins.def
except for atan2. */ except for atan2. */
#define BUILT_IN_FUNCTION(ID, NAME, HAVE_COMPLEX) \ #define DEFINE_MATH_BUILTIN(ID, NAME, ARGTYPE) \
{ GFC_ISYM_ ## ID, BUILT_IN_ ## ID ## F, BUILT_IN_ ## ID, true, \ { GFC_ISYM_ ## ID, BUILT_IN_ ## ID ## F, BUILT_IN_ ## ID, \
HAVE_COMPLEX, true, NAME, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE}, BUILT_IN_ ## ID ## L, BUILT_IN_ ## ID ## L, 0, 0, 0, 0, true, \
false, true, NAME, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE, \
#define DEFINE_MATH_BUILTIN(id, name, argtype) \ NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE},
BUILT_IN_FUNCTION (id, name, false)
#define DEFINE_MATH_BUILTIN_C(ID, NAME, ARGTYPE) \
/* TODO: Use builtin function for complex intrinsics. */ { GFC_ISYM_ ## ID, BUILT_IN_ ## ID ## F, BUILT_IN_ ## ID, \
#define DEFINE_MATH_BUILTIN_C(id, name, argtype) \ BUILT_IN_ ## ID ## L, BUILT_IN_ ## ID ## L, BUILT_IN_C ## ID ## F, \
BUILT_IN_FUNCTION (id, name, true) BUILT_IN_C ## ID, BUILT_IN_C ## ID ## L, BUILT_IN_C ## ID ## L, true, \
true, true, NAME, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE, \
NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE},
#define LIBM_FUNCTION(ID, NAME, HAVE_COMPLEX) \ #define LIBM_FUNCTION(ID, NAME, HAVE_COMPLEX) \
{ GFC_ISYM_ ## ID, END_BUILTINS, END_BUILTINS, true, HAVE_COMPLEX, true, \ { GFC_ISYM_ ## ID, END_BUILTINS, END_BUILTINS, END_BUILTINS, END_BUILTINS, \
NAME, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE } END_BUILTINS, END_BUILTINS, END_BUILTINS, END_BUILTINS, \
true, HAVE_COMPLEX, true, NAME, NULL_TREE, NULL_TREE, NULL_TREE, \
NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE }
#define LIBF_FUNCTION(ID, NAME, HAVE_COMPLEX) \ #define LIBF_FUNCTION(ID, NAME, HAVE_COMPLEX) \
{ GFC_ISYM_ ## ID, END_BUILTINS, END_BUILTINS, false, HAVE_COMPLEX, true, \ { GFC_ISYM_ ## ID, END_BUILTINS, END_BUILTINS, END_BUILTINS, END_BUILTINS, \
NAME, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE } END_BUILTINS, END_BUILTINS, END_BUILTINS, END_BUILTINS, \
false, HAVE_COMPLEX, true, NAME, NULL_TREE, NULL_TREE, NULL_TREE, \
NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE }
static GTY(()) gfc_intrinsic_map_t gfc_intrinsic_map[] = static GTY(()) gfc_intrinsic_map_t gfc_intrinsic_map[] =
{ {
...@@ -122,7 +136,6 @@ static GTY(()) gfc_intrinsic_map_t gfc_intrinsic_map[] = ...@@ -122,7 +136,6 @@ static GTY(()) gfc_intrinsic_map_t gfc_intrinsic_map[] =
}; };
#undef DEFINE_MATH_BUILTIN #undef DEFINE_MATH_BUILTIN
#undef DEFINE_MATH_BUILTIN_C #undef DEFINE_MATH_BUILTIN_C
#undef BUILT_IN_FUNCTION
#undef LIBM_FUNCTION #undef LIBM_FUNCTION
#undef LIBF_FUNCTION #undef LIBF_FUNCTION
...@@ -336,6 +349,11 @@ gfc_conv_intrinsic_aint (gfc_se * se, gfc_expr * expr, enum tree_code op) ...@@ -336,6 +349,11 @@ gfc_conv_intrinsic_aint (gfc_se * se, gfc_expr * expr, enum tree_code op)
case 8: case 8:
n = BUILT_IN_ROUND; n = BUILT_IN_ROUND;
break; break;
case 10:
case 16:
n = BUILT_IN_ROUNDL;
break;
} }
break; break;
...@@ -349,6 +367,11 @@ gfc_conv_intrinsic_aint (gfc_se * se, gfc_expr * expr, enum tree_code op) ...@@ -349,6 +367,11 @@ gfc_conv_intrinsic_aint (gfc_se * se, gfc_expr * expr, enum tree_code op)
case 8: case 8:
n = BUILT_IN_TRUNC; n = BUILT_IN_TRUNC;
break; break;
case 10:
case 16:
n = BUILT_IN_TRUNCL;
break;
} }
break; break;
...@@ -469,10 +492,22 @@ gfc_build_intrinsic_lib_fndecls (void) ...@@ -469,10 +492,22 @@ gfc_build_intrinsic_lib_fndecls (void)
/* Add GCC builtin functions. */ /* Add GCC builtin functions. */
for (m = gfc_intrinsic_map; m->id != GFC_ISYM_NONE; m++) for (m = gfc_intrinsic_map; m->id != GFC_ISYM_NONE; m++)
{ {
if (m->code4 != END_BUILTINS) if (m->code_r4 != END_BUILTINS)
m->real4_decl = built_in_decls[m->code4]; m->real4_decl = built_in_decls[m->code_r4];
if (m->code8 != END_BUILTINS) if (m->code_r8 != END_BUILTINS)
m->real8_decl = built_in_decls[m->code8]; m->real8_decl = built_in_decls[m->code_r8];
if (m->code_r10 != END_BUILTINS)
m->real10_decl = built_in_decls[m->code_r10];
if (m->code_r16 != END_BUILTINS)
m->real16_decl = built_in_decls[m->code_r16];
if (m->code_c4 != END_BUILTINS)
m->complex4_decl = built_in_decls[m->code_c4];
if (m->code_c8 != END_BUILTINS)
m->complex8_decl = built_in_decls[m->code_c8];
if (m->code_c10 != END_BUILTINS)
m->complex10_decl = built_in_decls[m->code_c10];
if (m->code_c16 != END_BUILTINS)
m->complex16_decl = built_in_decls[m->code_c16];
} }
} }
...@@ -501,6 +536,12 @@ gfc_get_intrinsic_lib_fndecl (gfc_intrinsic_map_t * m, gfc_expr * expr) ...@@ -501,6 +536,12 @@ gfc_get_intrinsic_lib_fndecl (gfc_intrinsic_map_t * m, gfc_expr * expr)
case 8: case 8:
pdecl = &m->real8_decl; pdecl = &m->real8_decl;
break; break;
case 10:
pdecl = &m->real10_decl;
break;
case 16:
pdecl = &m->real16_decl;
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
...@@ -517,6 +558,12 @@ gfc_get_intrinsic_lib_fndecl (gfc_intrinsic_map_t * m, gfc_expr * expr) ...@@ -517,6 +558,12 @@ gfc_get_intrinsic_lib_fndecl (gfc_intrinsic_map_t * m, gfc_expr * expr)
case 8: case 8:
pdecl = &m->complex8_decl; pdecl = &m->complex8_decl;
break; break;
case 10:
pdecl = &m->complex10_decl;
break;
case 16:
pdecl = &m->complex16_decl;
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
...@@ -529,7 +576,8 @@ gfc_get_intrinsic_lib_fndecl (gfc_intrinsic_map_t * m, gfc_expr * expr) ...@@ -529,7 +576,8 @@ gfc_get_intrinsic_lib_fndecl (gfc_intrinsic_map_t * m, gfc_expr * expr)
if (m->libm_name) if (m->libm_name)
{ {
gcc_assert (ts->kind == 4 || ts->kind == 8); gcc_assert (ts->kind == 4 || ts->kind == 8 || ts->kind == 10
|| ts->kind == 16);
snprintf (name, sizeof (name), "%s%s%s", snprintf (name, sizeof (name), "%s%s%s",
ts->type == BT_COMPLEX ? "c" : "", ts->type == BT_COMPLEX ? "c" : "",
m->name, m->name,
...@@ -615,6 +663,12 @@ gfc_conv_intrinsic_exponent (gfc_se * se, gfc_expr * expr) ...@@ -615,6 +663,12 @@ gfc_conv_intrinsic_exponent (gfc_se * se, gfc_expr * expr)
case 8: case 8:
fndecl = gfor_fndecl_math_exponent8; fndecl = gfor_fndecl_math_exponent8;
break; break;
case 10:
fndecl = gfor_fndecl_math_exponent10;
break;
case 16:
fndecl = gfor_fndecl_math_exponent16;
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
...@@ -734,6 +788,10 @@ gfc_conv_intrinsic_abs (gfc_se * se, gfc_expr * expr) ...@@ -734,6 +788,10 @@ gfc_conv_intrinsic_abs (gfc_se * se, gfc_expr * expr)
case 8: case 8:
n = BUILT_IN_CABS; n = BUILT_IN_CABS;
break; break;
case 10:
case 16:
n = BUILT_IN_CABSL;
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
...@@ -896,6 +954,10 @@ gfc_conv_intrinsic_sign (gfc_se * se, gfc_expr * expr) ...@@ -896,6 +954,10 @@ gfc_conv_intrinsic_sign (gfc_se * se, gfc_expr * expr)
case 8: case 8:
tmp = built_in_decls[BUILT_IN_COPYSIGN]; tmp = built_in_decls[BUILT_IN_COPYSIGN];
break; break;
case 10:
case 16:
tmp = built_in_decls[BUILT_IN_COPYSIGNL];
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
...@@ -1861,6 +1923,9 @@ gfc_conv_intrinsic_ishftc (gfc_se * se, gfc_expr * expr) ...@@ -1861,6 +1923,9 @@ gfc_conv_intrinsic_ishftc (gfc_se * se, gfc_expr * expr)
case 8: case 8:
tmp = gfor_fndecl_math_ishftc8; tmp = gfor_fndecl_math_ishftc8;
break; break;
case 16:
tmp = gfor_fndecl_math_ishftc16;
break;
default: default:
gcc_unreachable (); gcc_unreachable ();
} }
......
...@@ -566,29 +566,29 @@ gfc_init_types (void) ...@@ -566,29 +566,29 @@ gfc_init_types (void)
tree tree
gfc_get_int_type (int kind) gfc_get_int_type (int kind)
{ {
int index = gfc_validate_kind (BT_INTEGER, kind, false); int index = gfc_validate_kind (BT_INTEGER, kind, true);
return gfc_integer_types[index]; return index < 0 ? 0 : gfc_integer_types[index];
} }
tree tree
gfc_get_real_type (int kind) gfc_get_real_type (int kind)
{ {
int index = gfc_validate_kind (BT_REAL, kind, false); int index = gfc_validate_kind (BT_REAL, kind, true);
return gfc_real_types[index]; return index < 0 ? 0 : gfc_real_types[index];
} }
tree tree
gfc_get_complex_type (int kind) gfc_get_complex_type (int kind)
{ {
int index = gfc_validate_kind (BT_COMPLEX, kind, false); int index = gfc_validate_kind (BT_COMPLEX, kind, true);
return gfc_complex_types[index]; return index < 0 ? 0 : gfc_complex_types[index];
} }
tree tree
gfc_get_logical_type (int kind) gfc_get_logical_type (int kind)
{ {
int index = gfc_validate_kind (BT_LOGICAL, kind, false); int index = gfc_validate_kind (BT_LOGICAL, kind, true);
return gfc_logical_types[index]; return index < 0 ? 0 : gfc_logical_types[index];
} }
/* Create a character type with the given kind and length. */ /* Create a character type with the given kind and length. */
......
...@@ -471,13 +471,18 @@ typedef struct gfc_powdecl_list GTY(()) ...@@ -471,13 +471,18 @@ typedef struct gfc_powdecl_list GTY(())
} }
gfc_powdecl_list; gfc_powdecl_list;
extern GTY(()) gfc_powdecl_list gfor_fndecl_math_powi[3][2]; extern GTY(()) gfc_powdecl_list gfor_fndecl_math_powi[4][3];
extern GTY(()) tree gfor_fndecl_math_cpowf; extern GTY(()) tree gfor_fndecl_math_cpowf;
extern GTY(()) tree gfor_fndecl_math_cpow; extern GTY(()) tree gfor_fndecl_math_cpow;
extern GTY(()) tree gfor_fndecl_math_cpowl10;
extern GTY(()) tree gfor_fndecl_math_cpowl16;
extern GTY(()) tree gfor_fndecl_math_ishftc4; extern GTY(()) tree gfor_fndecl_math_ishftc4;
extern GTY(()) tree gfor_fndecl_math_ishftc8; extern GTY(()) tree gfor_fndecl_math_ishftc8;
extern GTY(()) tree gfor_fndecl_math_ishftc16;
extern GTY(()) tree gfor_fndecl_math_exponent4; extern GTY(()) tree gfor_fndecl_math_exponent4;
extern GTY(()) tree gfor_fndecl_math_exponent8; extern GTY(()) tree gfor_fndecl_math_exponent8;
extern GTY(()) tree gfor_fndecl_math_exponent10;
extern GTY(()) tree gfor_fndecl_math_exponent16;
/* String functions. */ /* String functions. */
extern GTY(()) tree gfor_fndecl_copy_string; extern GTY(()) tree gfor_fndecl_copy_string;
......
2005-10-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR libfortran/19308
* gfortran.dg/large_real_kind_2.F90: New test.
* gfortran.dg/large_integer_kind_2.f90: New test.
2005-10-03 Uros Bizjak <uros@kss-loka.si> 2005-10-03 Uros Bizjak <uros@kss-loka.si>
* lib/target-supports.exp (check_effective_target_vect_shift): * lib/target-supports.exp (check_effective_target_vect_shift):
! { dg-do run }
! { dg-require-effective-target fortran_large_int }
! Testing library calls on large integer kinds (larger than kind=8)
implicit none
integer,parameter :: k = selected_int_kind (range (0_8) + 1)
integer(kind=k) :: i, j
integer(8) :: a, b
i = 0; j = 1; a = i; b = j
if (i ** j /= a ** b) call abort
end
! { dg-do run }
! { dg-require-effective-target fortran_large_real }
! Testing library calls on large real kinds (larger than kind=8)
implicit none
integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
real(8),parameter :: eps = 1e-8
real(kind=k) :: x, x1
real(8) :: y, y1
complex(kind=k) :: z, z1
complex(8) :: w, w1
#define TEST_FUNCTION(func,val) \
x = val ;\
y = x ;\
x = func (x) ;\
y = func (y) ;\
if (abs((y - x) / y) > eps) call abort
#define CTEST_FUNCTION(func,valc) \
z = valc ;\
w = z ;\
z = func (z) ;\
w = func (w) ;\
if (abs((z - w) / w) > eps) call abort
TEST_FUNCTION(cos,17.456)
TEST_FUNCTION(sin,17.456)
TEST_FUNCTION(tan,1.456)
TEST_FUNCTION(cosh,-2.45)
TEST_FUNCTION(sinh,7.1)
TEST_FUNCTION(tanh,12.7)
TEST_FUNCTION(acos,0.78)
TEST_FUNCTION(asin,-0.24)
TEST_FUNCTION(atan,-17.123)
TEST_FUNCTION(acosh,0.2)
TEST_FUNCTION(asinh,0.3)
TEST_FUNCTION(atanh,0.4)
TEST_FUNCTION(exp,1.74)
TEST_FUNCTION(log,0.00178914)
TEST_FUNCTION(log10,123789.123)
TEST_FUNCTION(sqrt,789.1356)
TEST_FUNCTION(erf,1.45123231)
TEST_FUNCTION(erfc,-0.123789)
CTEST_FUNCTION(cos,(17.456,-1.123))
CTEST_FUNCTION(sin,(17.456,-7.6))
CTEST_FUNCTION(exp,(1.74,-1.01))
CTEST_FUNCTION(log,(0.00178914,-1.207))
CTEST_FUNCTION(sqrt,(789.1356,2.4))
#define TEST_POWER(val1,val2) \
x = val1 ; \
y = x ; \
x1 = val2 ; \
y1 = x1; \
if (abs((x**x1 - y**y1)/(y**y1)) > eps) call abort
#define CTEST_POWER(val1,val2) \
z = val1 ; \
w = z ; \
z1 = val2 ; \
w1 = z1; \
if (abs((z**z1 - w**w1)/(w**w1)) > eps) call abort
CTEST_POWER (1.0,1.0)
CTEST_POWER (1.0,5.4)
CTEST_POWER (1.0,-5.4)
CTEST_POWER (1.0,0.0)
CTEST_POWER (-1.0,1.0)
CTEST_POWER (-1.0,5.4)
CTEST_POWER (-1.0,-5.4)
CTEST_POWER (-1.0,0.0)
CTEST_POWER (0.0,1.0)
CTEST_POWER (0.0,5.4)
CTEST_POWER (0.0,-5.4)
CTEST_POWER (0.0,0.0)
CTEST_POWER (7.6,1.0)
CTEST_POWER (7.6,5.4)
CTEST_POWER (7.6,-5.4)
CTEST_POWER (7.6,0.0)
CTEST_POWER (-7.6,1.0)
CTEST_POWER (-7.6,5.4)
CTEST_POWER (-7.6,-5.4)
CTEST_POWER (-7.6,0.0)
CTEST_POWER ((10.78,123.213),(14.123,13279.5))
CTEST_POWER ((-10.78,123.213),(14.123,13279.5))
CTEST_POWER ((10.78,-123.213),(14.123,13279.5))
CTEST_POWER ((10.78,123.213),(-14.123,13279.5))
CTEST_POWER ((10.78,123.213),(14.123,-13279.5))
CTEST_POWER ((-10.78,-123.213),(14.123,13279.5))
CTEST_POWER ((-10.78,123.213),(-14.123,13279.5))
CTEST_POWER ((-10.78,123.213),(14.123,-13279.5))
CTEST_POWER ((10.78,-123.213),(-14.123,13279.5))
CTEST_POWER ((10.78,-123.213),(14.123,-13279.5))
CTEST_POWER ((10.78,123.213),(-14.123,-13279.5))
CTEST_POWER ((-10.78,-123.213),(-14.123,13279.5))
CTEST_POWER ((-10.78,-123.213),(14.123,-13279.5))
CTEST_POWER ((-10.78,123.213),(-14.123,-13279.5))
CTEST_POWER ((10.78,-123.213),(-14.123,-13279.5))
CTEST_POWER ((-10.78,-123.213),(-14.123,-13279.5))
end
2005-10-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR libfortran/19308
PR libfortran/22437
* Makefile.am: Add generated files for large real and integers
kinds. Add a rule to create the kinds.inc c99_protos.inc files.
Use kinds.inc to preprocess Fortran generated files.
* libgfortran.h: Add macro definitions for GFC_INTEGER_16_HUGE,
GFC_REAL_10_HUGE and GFC_REAL_16_HUGE. Add types gfc_array_i16,
gfc_array_r10, gfc_array_r16, gfc_array_c10, gfc_array_c16,
gfc_array_l16.
* mk-kinds-h.sh: Define macros HAVE_GFC_LOGICAL_* and
HAVE_GFC_COMPLEX_* when these types are available.
* intrinsics/ishftc.c (ishftc16): New function for GFC_INTEGER_16.
* m4/all.m4, m4/any.m4, m4/count.m4, m4/cshift1.m4, m4/dotprod.m4,
m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
m4/exponent.m4, m4/fraction.m4, m4/in_pack.m4, m4/in_unpack.m4,
m4/matmul.m4, m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4,
m4/maxval.m4, m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/mtype.m4,
m4/nearest.m4, m4/pow.m4, m4/product.m4, m4/reshape.m4,
m4/set_exponent.m4, m4/shape.m4, m4/specific.m4, m4/specific2.m4,
m4/sum.m4, m4/transpose.m4: Protect generated functions with
appropriate "#if defined (HAVE_GFC_type_kind)" preprocessor directives.
* Makefile.in: Regenerate.
* all files in generated/: Regenerate.
2005-10-01 Jakub Jelinek <jakub@redhat.com> 2005-10-01 Jakub Jelinek <jakub@redhat.com>
* runtime/memory.c (malloc_t): Remove. * runtime/memory.c (malloc_t): Remove.
...@@ -65,7 +91,7 @@ ...@@ -65,7 +91,7 @@
* config.h.in: Regenerate. * config.h.in: Regenerate.
* libgfortan.h (isfinite): undef if broken, set if needed. * libgfortan.h (isfinite): undef if broken, set if needed.
(isnan): undef if broken, set if needed. (isnan): undef if broken, set if needed.
(fpclassify): undef if broken, set if needed. (fpclassify): undef if broken, set if needed.
* io/write.c: Remove TODO comment about working isfinite. * io/write.c: Remove TODO comment about working isfinite.
* intrinsics/c99_functions.c (round): Use isfinite instead * intrinsics/c99_functions.c (round): Use isfinite instead
of fpclassify. of fpclassify.
......
This source diff could not be displayed because it is too large. You can view the blob instead.
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_10)
#ifdef HAVE_CABSL
elemental function specific__abs_c10 (parm)
complex (kind=10), intent (in) :: parm
complex (kind=10) :: specific__abs_c10
specific__abs_c10 = abs (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_16)
#ifdef HAVE_CABSL
elemental function specific__abs_c16 (parm)
complex (kind=16), intent (in) :: parm
complex (kind=16) :: specific__abs_c16
specific__abs_c16 = abs (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_4)
#ifdef HAVE_CABSF
elemental function specific__abs_c4 (parm) elemental function specific__abs_c4 (parm)
complex (kind=4), intent (in) :: parm complex (kind=4), intent (in) :: parm
complex (kind=4) :: specific__abs_c4 complex (kind=4) :: specific__abs_c4
specific__abs_c4 = abs (parm) specific__abs_c4 = abs (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_8)
#ifdef HAVE_CABS
elemental function specific__abs_c8 (parm) elemental function specific__abs_c8 (parm)
complex (kind=8), intent (in) :: parm complex (kind=8), intent (in) :: parm
complex (kind=8) :: specific__abs_c8 complex (kind=8) :: specific__abs_c8
specific__abs_c8 = abs (parm) specific__abs_c8 = abs (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_16)
elemental function specific__abs_i16 (parm)
integer (kind=16), intent (in) :: parm
integer (kind=16) :: specific__abs_i16
specific__abs_i16 = abs (parm)
end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_4)
elemental function specific__abs_i4 (parm) elemental function specific__abs_i4 (parm)
integer (kind=4), intent (in) :: parm integer (kind=4), intent (in) :: parm
integer (kind=4) :: specific__abs_i4 integer (kind=4) :: specific__abs_i4
specific__abs_i4 = abs (parm) specific__abs_i4 = abs (parm)
end function end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_8)
elemental function specific__abs_i8 (parm) elemental function specific__abs_i8 (parm)
integer (kind=8), intent (in) :: parm integer (kind=8), intent (in) :: parm
integer (kind=8) :: specific__abs_i8 integer (kind=8) :: specific__abs_i8
specific__abs_i8 = abs (parm) specific__abs_i8 = abs (parm)
end function end function
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_FABSL
elemental function specific__abs_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__abs_r10
specific__abs_r10 = abs (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_FABSL
elemental function specific__abs_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__abs_r16
specific__abs_r16 = abs (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_FABSF
elemental function specific__abs_r4 (parm) elemental function specific__abs_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__abs_r4 real (kind=4) :: specific__abs_r4
specific__abs_r4 = abs (parm) specific__abs_r4 = abs (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_FABS
elemental function specific__abs_r8 (parm) elemental function specific__abs_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__abs_r8 real (kind=8) :: specific__abs_r8
specific__abs_r8 = abs (parm) specific__abs_r8 = abs (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_ACOSL
elemental function specific__acos_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__acos_r10
specific__acos_r10 = acos (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_ACOSL
elemental function specific__acos_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__acos_r16
specific__acos_r16 = acos (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_ACOSF
elemental function specific__acos_r4 (parm) elemental function specific__acos_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__acos_r4 real (kind=4) :: specific__acos_r4
specific__acos_r4 = acos (parm) specific__acos_r4 = acos (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_ACOS
elemental function specific__acos_r8 (parm) elemental function specific__acos_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__acos_r8 real (kind=8) :: specific__acos_r8
specific__acos_r8 = acos (parm) specific__acos_r8 = acos (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_TRUNCL
elemental function specific__aint_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__aint_r10
specific__aint_r10 = aint (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_TRUNCL
elemental function specific__aint_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__aint_r16
specific__aint_r16 = aint (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_TRUNCF
elemental function specific__aint_r4 (parm) elemental function specific__aint_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__aint_r4 real (kind=4) :: specific__aint_r4
specific__aint_r4 = aint (parm) specific__aint_r4 = aint (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_TRUNC
elemental function specific__aint_r8 (parm) elemental function specific__aint_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__aint_r8 real (kind=8) :: specific__aint_r8
specific__aint_r8 = aint (parm) specific__aint_r8 = aint (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_ROUNDL
elemental function specific__anint_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__anint_r10
specific__anint_r10 = anint (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_ROUNDL
elemental function specific__anint_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__anint_r16
specific__anint_r16 = anint (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_ROUNDF
elemental function specific__anint_r4 (parm) elemental function specific__anint_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__anint_r4 real (kind=4) :: specific__anint_r4
specific__anint_r4 = anint (parm) specific__anint_r4 = anint (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_ROUND
elemental function specific__anint_r8 (parm) elemental function specific__anint_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__anint_r8 real (kind=8) :: specific__anint_r8
specific__anint_r8 = anint (parm) specific__anint_r8 = anint (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_ASINL
elemental function specific__asin_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__asin_r10
specific__asin_r10 = asin (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_ASINL
elemental function specific__asin_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__asin_r16
specific__asin_r16 = asin (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_ASINF
elemental function specific__asin_r4 (parm) elemental function specific__asin_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__asin_r4 real (kind=4) :: specific__asin_r4
specific__asin_r4 = asin (parm) specific__asin_r4 = asin (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_ASIN
elemental function specific__asin_r8 (parm) elemental function specific__asin_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__asin_r8 real (kind=8) :: specific__asin_r8
specific__asin_r8 = asin (parm) specific__asin_r8 = asin (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_ATAN2L
elemental function specific__atan2_r10 (p1, p2)
real (kind=10), intent (in) :: p1, p2
real (kind=10) :: specific__atan2_r10
specific__atan2_r10 = atan2 (p1, p2)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_ATAN2L
elemental function specific__atan2_r16 (p1, p2)
real (kind=16), intent (in) :: p1, p2
real (kind=16) :: specific__atan2_r16
specific__atan2_r16 = atan2 (p1, p2)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_ATAN2F
elemental function specific__atan2_r4 (p1, p2) elemental function specific__atan2_r4 (p1, p2)
real (kind=4), intent (in) :: p1, p2 real (kind=4), intent (in) :: p1, p2
real (kind=4) :: specific__atan2_r4 real (kind=4) :: specific__atan2_r4
specific__atan2_r4 = atan2 (p1, p2) specific__atan2_r4 = atan2 (p1, p2)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_ATAN2
elemental function specific__atan2_r8 (p1, p2) elemental function specific__atan2_r8 (p1, p2)
real (kind=8), intent (in) :: p1, p2 real (kind=8), intent (in) :: p1, p2
real (kind=8) :: specific__atan2_r8 real (kind=8) :: specific__atan2_r8
specific__atan2_r8 = atan2 (p1, p2) specific__atan2_r8 = atan2 (p1, p2)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_ATANL
elemental function specific__atan_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__atan_r10
specific__atan_r10 = atan (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_ATANL
elemental function specific__atan_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__atan_r16
specific__atan_r16 = atan (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_ATANF
elemental function specific__atan_r4 (parm) elemental function specific__atan_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__atan_r4 real (kind=4) :: specific__atan_r4
specific__atan_r4 = atan (parm) specific__atan_r4 = atan (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_ATAN
elemental function specific__atan_r8 (parm) elemental function specific__atan_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__atan_r8 real (kind=8) :: specific__atan_r8
specific__atan_r8 = atan (parm) specific__atan_r8 = atan (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_10)
elemental function specific__conjg_c10 (parm)
complex (kind=10), intent (in) :: parm
complex (kind=10) :: specific__conjg_c10
specific__conjg_c10 = conjg (parm)
end function
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_16)
elemental function specific__conjg_c16 (parm)
complex (kind=16), intent (in) :: parm
complex (kind=16) :: specific__conjg_c16
specific__conjg_c16 = conjg (parm)
end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_4)
elemental function specific__conjg_c4 (parm) elemental function specific__conjg_c4 (parm)
complex (kind=4), intent (in) :: parm complex (kind=4), intent (in) :: parm
complex (kind=4) :: specific__conjg_c4 complex (kind=4) :: specific__conjg_c4
specific__conjg_c4 = conjg (parm) specific__conjg_c4 = conjg (parm)
end function end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_8)
elemental function specific__conjg_c8 (parm) elemental function specific__conjg_c8 (parm)
complex (kind=8), intent (in) :: parm complex (kind=8), intent (in) :: parm
complex (kind=8) :: specific__conjg_c8 complex (kind=8) :: specific__conjg_c8
specific__conjg_c8 = conjg (parm) specific__conjg_c8 = conjg (parm)
end function end function
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_10)
#ifdef HAVE_CCOSL
elemental function specific__cos_c10 (parm)
complex (kind=10), intent (in) :: parm
complex (kind=10) :: specific__cos_c10
specific__cos_c10 = cos (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_16)
#ifdef HAVE_CCOSL
elemental function specific__cos_c16 (parm)
complex (kind=16), intent (in) :: parm
complex (kind=16) :: specific__cos_c16
specific__cos_c16 = cos (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_4)
#ifdef HAVE_CCOSF
elemental function specific__cos_c4 (parm) elemental function specific__cos_c4 (parm)
complex (kind=4), intent (in) :: parm complex (kind=4), intent (in) :: parm
complex (kind=4) :: specific__cos_c4 complex (kind=4) :: specific__cos_c4
specific__cos_c4 = cos (parm) specific__cos_c4 = cos (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_8)
#ifdef HAVE_CCOS
elemental function specific__cos_c8 (parm) elemental function specific__cos_c8 (parm)
complex (kind=8), intent (in) :: parm complex (kind=8), intent (in) :: parm
complex (kind=8) :: specific__cos_c8 complex (kind=8) :: specific__cos_c8
specific__cos_c8 = cos (parm) specific__cos_c8 = cos (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_COSL
elemental function specific__cos_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__cos_r10
specific__cos_r10 = cos (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_COSL
elemental function specific__cos_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__cos_r16
specific__cos_r16 = cos (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_COSF
elemental function specific__cos_r4 (parm) elemental function specific__cos_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__cos_r4 real (kind=4) :: specific__cos_r4
specific__cos_r4 = cos (parm) specific__cos_r4 = cos (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_COS
elemental function specific__cos_r8 (parm) elemental function specific__cos_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__cos_r8 real (kind=8) :: specific__cos_r8
specific__cos_r8 = cos (parm) specific__cos_r8 = cos (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_COSHL
elemental function specific__cosh_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__cosh_r10
specific__cosh_r10 = cosh (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_COSHL
elemental function specific__cosh_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__cosh_r16
specific__cosh_r16 = cosh (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_COSHF
elemental function specific__cosh_r4 (parm) elemental function specific__cosh_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__cosh_r4 real (kind=4) :: specific__cosh_r4
specific__cosh_r4 = cosh (parm) specific__cosh_r4 = cosh (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_COSH
elemental function specific__cosh_r8 (parm) elemental function specific__cosh_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__cosh_r8 real (kind=8) :: specific__cosh_r8
specific__cosh_r8 = cosh (parm) specific__cosh_r8 = cosh (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_16)
elemental function specific__dim_i16 (p1, p2)
integer (kind=16), intent (in) :: p1, p2
integer (kind=16) :: specific__dim_i16
specific__dim_i16 = dim (p1, p2)
end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_4)
elemental function specific__dim_i4 (p1, p2) elemental function specific__dim_i4 (p1, p2)
integer (kind=4), intent (in) :: p1, p2 integer (kind=4), intent (in) :: p1, p2
integer (kind=4) :: specific__dim_i4 integer (kind=4) :: specific__dim_i4
specific__dim_i4 = dim (p1, p2) specific__dim_i4 = dim (p1, p2)
end function end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_8)
elemental function specific__dim_i8 (p1, p2) elemental function specific__dim_i8 (p1, p2)
integer (kind=8), intent (in) :: p1, p2 integer (kind=8), intent (in) :: p1, p2
integer (kind=8) :: specific__dim_i8 integer (kind=8) :: specific__dim_i8
specific__dim_i8 = dim (p1, p2) specific__dim_i8 = dim (p1, p2)
end function end function
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
elemental function specific__dim_r10 (p1, p2)
real (kind=10), intent (in) :: p1, p2
real (kind=10) :: specific__dim_r10
specific__dim_r10 = dim (p1, p2)
end function
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
elemental function specific__dim_r16 (p1, p2)
real (kind=16), intent (in) :: p1, p2
real (kind=16) :: specific__dim_r16
specific__dim_r16 = dim (p1, p2)
end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
elemental function specific__dim_r4 (p1, p2) elemental function specific__dim_r4 (p1, p2)
real (kind=4), intent (in) :: p1, p2 real (kind=4), intent (in) :: p1, p2
real (kind=4) :: specific__dim_r4 real (kind=4) :: specific__dim_r4
specific__dim_r4 = dim (p1, p2) specific__dim_r4 = dim (p1, p2)
end function end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
elemental function specific__dim_r8 (p1, p2) elemental function specific__dim_r8 (p1, p2)
real (kind=8), intent (in) :: p1, p2 real (kind=8), intent (in) :: p1, p2
real (kind=8) :: specific__dim_r8 real (kind=8) :: specific__dim_r8
specific__dim_r8 = dim (p1, p2) specific__dim_r8 = dim (p1, p2)
end function end function
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_10)
#ifdef HAVE_CEXPL
elemental function specific__exp_c10 (parm)
complex (kind=10), intent (in) :: parm
complex (kind=10) :: specific__exp_c10
specific__exp_c10 = exp (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_16)
#ifdef HAVE_CEXPL
elemental function specific__exp_c16 (parm)
complex (kind=16), intent (in) :: parm
complex (kind=16) :: specific__exp_c16
specific__exp_c16 = exp (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_4)
#ifdef HAVE_CEXPF
elemental function specific__exp_c4 (parm) elemental function specific__exp_c4 (parm)
complex (kind=4), intent (in) :: parm complex (kind=4), intent (in) :: parm
complex (kind=4) :: specific__exp_c4 complex (kind=4) :: specific__exp_c4
specific__exp_c4 = exp (parm) specific__exp_c4 = exp (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_8)
#ifdef HAVE_CEXP
elemental function specific__exp_c8 (parm) elemental function specific__exp_c8 (parm)
complex (kind=8), intent (in) :: parm complex (kind=8), intent (in) :: parm
complex (kind=8) :: specific__exp_c8 complex (kind=8) :: specific__exp_c8
specific__exp_c8 = exp (parm) specific__exp_c8 = exp (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_EXPL
elemental function specific__exp_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__exp_r10
specific__exp_r10 = exp (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_EXPL
elemental function specific__exp_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__exp_r16
specific__exp_r16 = exp (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_EXPF
elemental function specific__exp_r4 (parm) elemental function specific__exp_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__exp_r4 real (kind=4) :: specific__exp_r4
specific__exp_r4 = exp (parm) specific__exp_r4 = exp (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_EXP
elemental function specific__exp_r8 (parm) elemental function specific__exp_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__exp_r8 real (kind=8) :: specific__exp_r8
specific__exp_r8 = exp (parm) specific__exp_r8 = exp (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_LOG10L
elemental function specific__log10_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__log10_r10
specific__log10_r10 = log10 (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_LOG10L
elemental function specific__log10_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__log10_r16
specific__log10_r16 = log10 (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_LOG10F
elemental function specific__log10_r4 (parm) elemental function specific__log10_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__log10_r4 real (kind=4) :: specific__log10_r4
specific__log10_r4 = log10 (parm) specific__log10_r4 = log10 (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_LOG10
elemental function specific__log10_r8 (parm) elemental function specific__log10_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__log10_r8 real (kind=8) :: specific__log10_r8
specific__log10_r8 = log10 (parm) specific__log10_r8 = log10 (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_10)
#ifdef HAVE_CLOGL
elemental function specific__log_c10 (parm)
complex (kind=10), intent (in) :: parm
complex (kind=10) :: specific__log_c10
specific__log_c10 = log (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_16)
#ifdef HAVE_CLOGL
elemental function specific__log_c16 (parm)
complex (kind=16), intent (in) :: parm
complex (kind=16) :: specific__log_c16
specific__log_c16 = log (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_4)
#ifdef HAVE_CLOGF
elemental function specific__log_c4 (parm) elemental function specific__log_c4 (parm)
complex (kind=4), intent (in) :: parm complex (kind=4), intent (in) :: parm
complex (kind=4) :: specific__log_c4 complex (kind=4) :: specific__log_c4
specific__log_c4 = log (parm) specific__log_c4 = log (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_COMPLEX_8)
#ifdef HAVE_CLOG
elemental function specific__log_c8 (parm) elemental function specific__log_c8 (parm)
complex (kind=8), intent (in) :: parm complex (kind=8), intent (in) :: parm
complex (kind=8) :: specific__log_c8 complex (kind=8) :: specific__log_c8
specific__log_c8 = log (parm) specific__log_c8 = log (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_10)
#ifdef HAVE_LOGL
elemental function specific__log_r10 (parm)
real (kind=10), intent (in) :: parm
real (kind=10) :: specific__log_r10
specific__log_r10 = log (parm)
end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_16)
#ifdef HAVE_LOGL
elemental function specific__log_r16 (parm)
real (kind=16), intent (in) :: parm
real (kind=16) :: specific__log_r16
specific__log_r16 = log (parm)
end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
#ifdef HAVE_LOGF
elemental function specific__log_r4 (parm) elemental function specific__log_r4 (parm)
real (kind=4), intent (in) :: parm real (kind=4), intent (in) :: parm
real (kind=4) :: specific__log_r4 real (kind=4) :: specific__log_r4
specific__log_r4 = log (parm) specific__log_r4 = log (parm)
end function end function
#endif
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
#ifdef HAVE_LOG
elemental function specific__log_r8 (parm) elemental function specific__log_r8 (parm)
real (kind=8), intent (in) :: parm real (kind=8), intent (in) :: parm
real (kind=8) :: specific__log_r8 real (kind=8) :: specific__log_r8
specific__log_r8 = log (parm) specific__log_r8 = log (parm)
end function end function
#endif
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_16)
elemental function specific__mod_i16 (p1, p2)
integer (kind=16), intent (in) :: p1, p2
integer (kind=16) :: specific__mod_i16
specific__mod_i16 = mod (p1, p2)
end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_4)
elemental function specific__mod_i4 (p1, p2) elemental function specific__mod_i4 (p1, p2)
integer (kind=4), intent (in) :: p1, p2 integer (kind=4), intent (in) :: p1, p2
integer (kind=4) :: specific__mod_i4 integer (kind=4) :: specific__mod_i4
specific__mod_i4 = mod (p1, p2) specific__mod_i4 = mod (p1, p2)
end function end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_8)
elemental function specific__mod_i8 (p1, p2) elemental function specific__mod_i8 (p1, p2)
integer (kind=8), intent (in) :: p1, p2 integer (kind=8), intent (in) :: p1, p2
integer (kind=8) :: specific__mod_i8 integer (kind=8) :: specific__mod_i8
specific__mod_i8 = mod (p1, p2) specific__mod_i8 = mod (p1, p2)
end function end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_4)
elemental function specific__mod_r4 (p1, p2) elemental function specific__mod_r4 (p1, p2)
real (kind=4), intent (in) :: p1, p2 real (kind=4), intent (in) :: p1, p2
real (kind=4) :: specific__mod_r4 real (kind=4) :: specific__mod_r4
specific__mod_r4 = mod (p1, p2) specific__mod_r4 = mod (p1, p2)
end function end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_REAL_8)
elemental function specific__mod_r8 (p1, p2) elemental function specific__mod_r8 (p1, p2)
real (kind=8), intent (in) :: p1, p2 real (kind=8), intent (in) :: p1, p2
real (kind=8) :: specific__mod_r8 real (kind=8) :: specific__mod_r8
specific__mod_r8 = mod (p1, p2) specific__mod_r8 = mod (p1, p2)
end function end function
#endif
! Copyright 2002 Free Software Foundation, Inc.
! Contributed by Paul Brook <paul@nowt.org>
!
!This file is part of the GNU Fortran 95 runtime library (libgfortran).
!
!GNU libgfortran is free software; you can redistribute it and/or
!modify it under the terms of the GNU General Public
!License as published by the Free Software Foundation; either
!version 2 of the License, or (at your option) any later version.
!In addition to the permissions in the GNU General Public License, the
!Free Software Foundation gives you unlimited permission to link the
!compiled version of this file into combinations with other programs,
!and to distribute those combinations without any restriction coming
!from the use of this file. (The General Public License restrictions
!do apply in other respects; for example, they cover modification of
!the file, and distribution when not linked into a combine
!executable.)
!
!GNU 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 General Public License for more details.
!
!You should have received a copy of the GNU General Public
!License along with libgfortran; see the file COPYING. If not,
!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
!Boston, MA 02110-1301, USA.
!
!This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_16)
elemental function specific__sign_i16 (p1, p2)
integer (kind=16), intent (in) :: p1, p2
integer (kind=16) :: specific__sign_i16
specific__sign_i16 = sign (p1, p2)
end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_4)
elemental function specific__sign_i4 (p1, p2) elemental function specific__sign_i4 (p1, p2)
integer (kind=4), intent (in) :: p1, p2 integer (kind=4), intent (in) :: p1, p2
integer (kind=4) :: specific__sign_i4 integer (kind=4) :: specific__sign_i4
specific__sign_i4 = sign (p1, p2) specific__sign_i4 = sign (p1, p2)
end function end function
#endif
...@@ -30,9 +30,22 @@ ...@@ -30,9 +30,22 @@
!This file is machine generated. !This file is machine generated.
#include "config.h"
#include "kinds.inc"
#include "c99_protos.inc"
#if defined (HAVE_GFC_INTEGER_8)
elemental function specific__sign_i8 (p1, p2) elemental function specific__sign_i8 (p1, p2)
integer (kind=8), intent (in) :: p1, p2 integer (kind=8), intent (in) :: p1, p2
integer (kind=8) :: specific__sign_i8 integer (kind=8) :: specific__sign_i8
specific__sign_i8 = sign (p1, p2) specific__sign_i8 = sign (p1, p2)
end function end function
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment