]> granicus.if.org Git - graphviz/commitdiff
replace hypotenuse calculation with call to hypot in various copies of GCarrow
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 5 May 2021 03:05:07 +0000 (20:05 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 12 May 2021 01:46:36 +0000 (18:46 -0700)
The function hypot is available in C99 and has the potential to compute the same
operation more efficiently and with greater precision.

cmd/lefty/ws/gtk/gcanvas.c
cmd/lefty/ws/mswin32/gcanvas.c
cmd/lefty/ws/mswin32/gpcanvas.c
cmd/lefty/ws/x11/gcanvas.c
cmd/lefty/ws/x11/gpcanvas.c

index 4d07718182fe214103b5592be7d4311a9e43ab81..5c1bdcbc63716ab5dc8a77aeaeb008d06cdcd3a5 100644 (file)
@@ -12,6 +12,7 @@
 #include "common.h"
 #include "g.h"
 #include "gcommon.h"
+#include <math.h>
 #include <string.h>
 
 #define WCU widget->u.c
@@ -426,7 +427,7 @@ int GCarrow(Gwidget_t * widget, Gpoint_t gp1, Gpoint_t gp2, Ggattr_t * ap)
     if (pd.x == 0 && pd.y == 0)
        return 0;
     tangent = atan2((double) pd.y, (double) pd.x);
-    if ((l = sqrt((double) (pd.x * pd.x + pd.y * pd.y))) > 30)
+    if ((l = hypot(pd.x, pd.y)) > 30)
        l = 30;
     pa.x = l * cos(tangent + M_PI / 7) + pp2.x;
     pa.y = l * sin(tangent + M_PI / 7) + pp2.y;
index 47f839c7d8bb76d2dc0d40d41a1e5818e962c94c..cb8aad8402f320c58118ffe4c2174f0670dcfa13 100644 (file)
@@ -14,6 +14,7 @@
 #include "g.h"
 #include "gcommon.h"
 #include "mem.h"
+#include <math.h>
 #include <string.h>
 
 #define WCU widget->u.c
@@ -464,7 +465,7 @@ int GCarrow (Gwidget_t *widget, Gpoint_t gp1, Gpoint_t gp2, Ggattr_t *ap) {
     if (pd.x == 0 && pd.y == 0)
         return 0;
     tangent = atan2 ((double) pd.y, (double) pd.x);
-    if ((l = sqrt ((double) (pd.x * pd.x + pd.y * pd.y))) > 30)
+    if ((l = hypot(pd.x, pd.y)) > 30)
         l = 30;
     pa.x = l * cos (tangent + M_PI / 7) + pp2.x;
     pa.y = l * sin (tangent + M_PI / 7) + pp2.y;
index d9bc1725ff0054fd006f987d60c3594f8067acf5..6c500d768cd0116f13dd2c20c14a04460bb030b5 100644 (file)
@@ -14,6 +14,7 @@
 #include "g.h"
 #include "gcommon.h"
 #include "mem.h"
+#include <math.h>
 #include <string.h>
 
 #define WPU widget->u.p
@@ -446,7 +447,7 @@ int GParrow (Gwidget_t *widget, Gpoint_t gp1, Gpoint_t gp2, Ggattr_t *ap) {
     if (pd.x == 0 && pd.y == 0)
         return 0;
     tangent = atan2 ((double) pd.y, (double) pd.x);
-    if ((l = sqrt ((double) (pd.x * pd.x + pd.y * pd.y))) > 30)
+    if ((l = hypot(pd.x, pd.y)) > 30)
         l = 30;
     pa.x = l * cos (tangent + M_PI / 7) + pp2.x;
     pa.y = l * sin (tangent + M_PI / 7) + pp2.y;
index 0466f982f58c4a44918649d1cefabe0593b7ae81..7215ffd98e373f9d48d401e81ec02745974f9b8e 100644 (file)
@@ -17,6 +17,7 @@
 #ifdef FEATURE_GMAP
 #include <gmap.h>
 #endif
+#include <math.h>
 #include <string.h>
 
 #define WCU widget->u.c
@@ -566,7 +567,7 @@ int GCarrow (Gwidget_t *widget, Gpoint_t gp1, Gpoint_t gp2, Ggattr_t *ap) {
     if (pd.x == 0 && pd.y == 0)
         return 0;
     tangent = atan2 ((double) pd.y, (double) pd.x);
-    if ((l = sqrt ((double) (pd.x * pd.x + pd.y * pd.y))) > 30)
+    if ((l = hypot(pd.x, pd.y)) > 30)
         l = 30;
     pa.x = l * cos (tangent + M_PI / 7) + pp2.x;
     pa.y = l * sin (tangent + M_PI / 7) + pp2.y;
index 876ad430535bdf10e36bfaf64476a32d1b6b9c38..a314b2ce2cf1b0368b7f40c71b92af3e03fccdd5 100644 (file)
@@ -14,6 +14,7 @@
 #include "g.h"
 #include "gcommon.h"
 #include "mem.h"
+#include <math.h>
 #include <string.h>
 
 #define PSDPI 300.0
@@ -355,7 +356,7 @@ int GParrow (Gwidget_t *widget, Gpoint_t gp1, Gpoint_t gp2, Ggattr_t *ap) {
     if (pd.x == 0 && pd.y == 0)
         return 0;
     tangent = atan2 ((double) pd.y, (double) pd.x);
-    if ((l = sqrt ((double) (pd.x * pd.x + pd.y * pd.y))) < 30)
+    if ((l = hypot(pd.x, pd.y)) < 30)
         l = 30;
     pa.x = l * cos (tangent + M_PI / 7) + pp2.x;
     pa.y = l * sin (tangent + M_PI / 7) + pp2.y;