summaryrefslogtreecommitdiff
path: root/libgfortran/generated/norm2_r4.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgfortran/generated/norm2_r4.c')
-rw-r--r--libgfortran/generated/norm2_r4.c19
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;
}
}