bezier icon indicating copy to clipboard operation
bezier copied to clipboard

Consider caching Curve hodograph() and concavity()

Open dhermes opened this issue 7 years ago • 1 comments

This way we can avoid re-computing the first and second node differences if they will be used many times.

(I am leaning heavily on not doing this.)

Places that could benefit:

dhermes avatar Jan 04 '18 18:01 dhermes

To evaluate usage we can add non-caching private Curve._hodograph/_concavity as in the code removed in 1f3ec1a724306610b3fba918406aab086db63ad8:

commit 1f3ec1a724306610b3fba918406aab086db63ad8
Author: Danny Hermes <[email protected]>
Date:   Fri Jan 13 00:57:32 2017 -0800

    Removing accidentally added code from last commit.

diff --git a/src/bezier/curve.py b/src/bezier/curve.py
index e9334df..94e8c7f 100644
--- a/src/bezier/curve.py
+++ b/src/bezier/curve.py
@@ -114,7 +114,6 @@ class Curve(_base.Base):
         '_degree', '_start', '_end', '_root',  # From constructor
         '_length', '_edge_index', '_next_edge',  # Empty defaults
         '_previous_edge',  # Empty defaults
-        '_calls',  # TEMP
     )
 
     def __init__(self, nodes, degree, start=0.0, end=1.0,
@@ -130,7 +129,6 @@ class Curve(_base.Base):
         self._edge_index = None
         self._next_edge = None
         self._previous_edge = None
-        self._calls = 0  # TEMP
 
     @classmethod
     def from_nodes(cls, nodes, start=0.0, end=1.0, root=None, _copy=True):
@@ -772,9 +770,3 @@ class Curve(_base.Base):
                              point, 'Shape expected:', (1, self._dimension))
 
         return _curve_helpers.locate_point(self, point)
-
-    def _hodograph(self, s):
-        self._calls += 1
-        print('::: Calls - {} :::'.format(self._calls))
-        return _curve_helpers.evaluate_hodograph(
-            self._nodes, self._degree, s)

dhermes avatar Jan 04 '18 18:01 dhermes