]> granicus.if.org Git - graphviz/commitdiff
work around a bug in GCC: It generates a call to "sqrtf" for "(float)sqrt(d)"
authorellson <devnull@localhost>
Mon, 3 Jul 2006 12:05:11 +0000 (12:05 +0000)
committerellson <devnull@localhost>
Mon, 3 Jul 2006 12:05:11 +0000 (12:05 +0000)
but sqrtf doesn't exist in libm.a.
reported by: Aaron Digulla <digulla@hepe.com>

lib/neatogen/matrix_ops.c

index 5c85f56ba3355f88880a12c9144404c44de9fb33..1fce7fb4ce83f87a14c5020b0173436d10167d30 100644 (file)
@@ -726,8 +726,11 @@ void invert_vec(int n, float *vec)
 void sqrt_vec(int n, float *vec)
 {
     int i;
+    double d;
     for (i = 0; i < n; i++) {
-       vec[i] = (float) sqrt(vec[i]);
+       /* do this in two steps to avoid a bug in gcc-4.00 on AIX */
+       d = sqrt(vec[i]);
+       vec[i] = (float) d;
     }
 }