diff options
Diffstat (limited to 'libgfortran/generated/norm2_r4.c')
-rw-r--r-- | libgfortran/generated/norm2_r4.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/libgfortran/generated/norm2_r4.c b/libgfortran/generated/norm2_r4.c index 78f28dc77fd0..83e034fa613d 100644 --- a/libgfortran/generated/norm2_r4.c +++ b/libgfortran/generated/norm2_r4.c @@ -29,7 +29,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include <assert.h> -#if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4) + +#if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4) && defined (HAVE_SQRTF) && defined (HAVE_FABSF) + +#define MATHFUNC(funcname) funcname ## f extern void norm2_r4 (gfc_array_r4 * const restrict, @@ -144,23 +147,23 @@ norm2_r4 (gfc_array_r4 * const restrict retarray, { GFC_REAL_4 scale; - result = 0.0F; - scale = 1.0F; + result = 0; + scale = 1; if (len <= 0) - *dest = 0.0F; + *dest = 0; else { for (n = 0; n < len; n++, src += delta) { - if (*src != 0.0F) + if (*src != 0) { GFC_REAL_4 absX, val; - absX = fabsf (*src); + absX = MATHFUNC(fabs) (*src); if (scale < absX) { val = scale / absX; - result = 1.0F + result * val * val; + result = 1 + result * val * val; scale = absX; } else @@ -170,7 +173,7 @@ norm2_r4 (gfc_array_r4 * const restrict retarray, } } } - result = scale * sqrtf (result); + result = scale * MATHFUNC(sqrt) (result); *dest = result; } } |