Improve speed · matplotlib/matplotlib@7b8fd5e · GitHub
Skip to content

Commit 7b8fd5e

Browse files
committed
Improve speed
1 parent 42b798c commit 7b8fd5e

5 files changed

Lines changed: 62 additions & 56 deletions

File tree

lib/matplotlib/cbook/__init__.py

Lines changed: 6 additions & 4 deletions

lib/matplotlib/markers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ def _set_pentagon(self):
677677
self._path = polypath
678678
else:
679679
verts = polypath.vertices
680-
y = (1 + np.sqrt(5)) / 4.
680+
y = (1 + 5 ** (1 / 2)) / 4.
681681
top = Path(verts[[0, 1, 4, 0]])
682682
bottom = Path(verts[[1, 2, 3, 4, 1]])
683683
left = Path([verts[0], verts[1], verts[2], [0, -y], verts[0]])
@@ -747,7 +747,7 @@ def _set_hexagon2(self):
747747
else:
748748
verts = polypath.vertices
749749
# not drawing inside lines
750-
x, y = np.sqrt(3) / 4, 3 / 4.
750+
x, y = 3 ** (1 / 2) / 4, 3 / 4.
751751
top = Path(verts[[1, 0, 5, 4, 1]])
752752
bottom = Path(verts[1:5])
753753
left = Path(np.concatenate([
@@ -772,7 +772,7 @@ def _set_octagon(self):
772772
self._transform.rotate_deg(22.5)
773773
self._path = polypath
774774
else:
775-
x = np.sqrt(2.) / 4.
775+
x = 2 ** (1 / 2) / 4.
776776
self._path = self._alt_path = Path(
777777
[[0, -1], [0, 1], [-x, 1], [-1, x],
778778
[-1, -x], [-x, -1], [0, -1]])

lib/matplotlib/path.py

Lines changed: 49 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -822,45 +822,48 @@ def circle(cls, center=(0., 0.), radius=1., readonly=False):
822822
Bezier Cubic Splines <https://www.tinaja.com/glib/ellipse4.pdf>`_.
823823
"""
824824
MAGIC = 0.2652031
825-
SQRTHALF = np.sqrt(0.5)
825+
SQRTHALF = (1 / 2) ** (1 / 2)
826826
MAGIC45 = SQRTHALF * MAGIC
827+
MAGICSUM = SQRTHALF + MAGIC45
828+
MAGICDIFF = SQRTHALF - MAGIC45
827829

828-
vertices = np.array([[0.0, -1.0],
830+
vertices = ((0.0, -1.0),
829831

830-
[MAGIC, -1.0],
831-
[SQRTHALF-MAGIC45, -SQRTHALF-MAGIC45],
832-
[SQRTHALF, -SQRTHALF],
832+
(MAGIC, -1.0),
833+
(MAGICDIFF, -MAGICSUM),
834+
(SQRTHALF, -SQRTHALF),
833835

834-
[SQRTHALF+MAGIC45, -SQRTHALF+MAGIC45],
835-
[1.0, -MAGIC],
836-
[1.0, 0.0],
836+
(MAGICSUM, -MAGICDIFF),
837+
(1.0, -MAGIC),
838+
(1.0, 0.0),
837839

838-
[1.0, MAGIC],
839-
[SQRTHALF+MAGIC45, SQRTHALF-MAGIC45],
840-
[SQRTHALF, SQRTHALF],
840+
(1.0, MAGIC),
841+
(MAGICSUM, MAGICDIFF),
842+
(SQRTHALF, SQRTHALF),
841843

842-
[SQRTHALF-MAGIC45, SQRTHALF+MAGIC45],
843-
[MAGIC, 1.0],
844-
[0.0, 1.0],
844+
(MAGICDIFF, MAGICSUM),
845+
(MAGIC, 1.0),
846+
(0.0, 1.0),
845847

846-
[-MAGIC, 1.0],
847-
[-SQRTHALF+MAGIC45, SQRTHALF+MAGIC45],
848-
[-SQRTHALF, SQRTHALF],
848+
(-MAGIC, 1.0),
849+
(-MAGICDIFF, MAGICSUM),
850+
(-SQRTHALF, SQRTHALF),
849851

850-
[-SQRTHALF-MAGIC45, SQRTHALF-MAGIC45],
851-
[-1.0, MAGIC],
852-
[-1.0, 0.0],
852+
(-MAGICSUM, MAGICDIFF),
853+
(-1.0, MAGIC),
854+
(-1.0, 0.0),
853855

854-
[-1.0, -MAGIC],
855-
[-SQRTHALF-MAGIC45, -SQRTHALF+MAGIC45],
856-
[-SQRTHALF, -SQRTHALF],
856+
(-1.0, -MAGIC),
857+
(-MAGICSUM, -MAGICDIFF),
858+
(-SQRTHALF, -SQRTHALF),
857859

858-
[-SQRTHALF+MAGIC45, -SQRTHALF-MAGIC45],
859-
[-MAGIC, -1.0],
860-
[0.0, -1.0],
860+
(-MAGICDIFF, -MAGICSUM),
861+
(-MAGIC, -1.0),
862+
(0.0, -1.0),
861863

862-
[0.0, -1.0]],
863-
dtype=float)
864+
(0.0, -1.0))
865+
866+
vertices = np.array(vertices, dtype=float)
864867

865868
codes = [cls.CURVE4] * 26
866869
codes[0] = cls.MOVETO
@@ -878,31 +881,32 @@ def unit_circle_righthalf(cls):
878881
"""
879882
if cls._unit_circle_righthalf is None:
880883
MAGIC = 0.2652031
881-
SQRTHALF = np.sqrt(0.5)
884+
SQRTHALF = (1 / 2) ** (1 / 2)
882885
MAGIC45 = SQRTHALF * MAGIC
886+
MAGICSUM = SQRTHALF + MAGIC45
887+
MAGICDIFF = SQRTHALF - MAGIC45
883888

884-
vertices = np.array(
885-
[[0.0, -1.0],
889+
vertices = ((0.0, -1.0),
886890

887-
[MAGIC, -1.0],
888-
[SQRTHALF-MAGIC45, -SQRTHALF-MAGIC45],
889-
[SQRTHALF, -SQRTHALF],
891+
(MAGIC, -1.0),
892+
(MAGICDIFF, -MAGICSUM),
893+
(SQRTHALF, -SQRTHALF),
890894

891-
[SQRTHALF+MAGIC45, -SQRTHALF+MAGIC45],
892-
[1.0, -MAGIC],
893-
[1.0, 0.0],
895+
(MAGICSUM, -MAGICDIFF),
896+
(1.0, -MAGIC),
897+
(1.0, 0.0),
894898

895-
[1.0, MAGIC],
896-
[SQRTHALF+MAGIC45, SQRTHALF-MAGIC45],
897-
[SQRTHALF, SQRTHALF],
899+
(1.0, MAGIC),
900+
(MAGICSUM, MAGICDIFF),
901+
(SQRTHALF, SQRTHALF),
898902

899-
[SQRTHALF-MAGIC45, SQRTHALF+MAGIC45],
900-
[MAGIC, 1.0],
901-
[0.0, 1.0],
903+
(MAGICDIFF, MAGICSUM),
904+
(MAGIC, 1.0),
905+
(0.0, 1.0),
902906

903-
[0.0, -1.0]],
907+
(0.0, -1.0))
904908

905-
float)
909+
vertices = np.array(vertices, dtype=float)
906910

907911
codes = np.full(14, cls.CURVE4, dtype=cls.code_type)
908912
codes[0] = cls.MOVETO

lib/matplotlib/patheffects.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -411,8 +411,8 @@ def __init__(self, offset=(0, 0),
411411
to your right, and 180 behind you.
412412
length : float, default: 1.414
413413
The length of the tick relative to spacing.
414-
Recommended length = 1.414 (sqrt(2)) when angle=45, length=1.0
415-
when angle=90 and length=2.0 when angle=60.
414+
Recommended length = 1.414 (:math:`\\sqrt{2}`) when angle=45,
415+
length=1.0 when angle=90 and length=2.0 when angle=60.
416416
**kwargs
417417
Extra keywords are stored and passed through to
418418
:meth:`AbstractPathEffect._update_gc`.

lib/matplotlib/projections/polar.py

Lines changed: 2 additions & 2 deletions

0 commit comments

Comments
 (0)