0.5.0
PyPI: https://pypi.org/project/bezier/0.5.0/
Docs: https://bezier.readthedocs.io/en/0.5.0/
Performance Optimizations
- Change
wiggle_interval
to returnsuccess
bool instead of raising an exception. This allows the implicitization approach to use it without having to use exceptions for flow-control. (Fixes #22.) - Switching Fortran speedups from
f2py
to Cython (this is becausef2py
artificially limits the feature set of Fortran, i.e. user defined types) - Moving some more code to Fortran (e.g.
bbox_line_intersect()
3dcf640
)
New Features
- Making Fortran features available outside of Python (see Native Libraries)
- C headers for each Fortran module (via
bezier.get_include()
) - Cython
.pxd
declarations for all Fortran modules libbezier
static library (viabezier.get_lib()
)
- C headers for each Fortran module (via
- Implementing
bezier_roots()
polynomial root solver for polynomials written in Bernstein basis. (0dd6369
)
Miscellany
- Getting
bezier
published in the Journal of Open Source Science (JOSS). See review. (e6c4536
and975ac6b
) - Updating error message for
locate()
methods and adding a note thatlocate()
/evaluate*()
are (essentially) inverses. H/T to @pdknsk #36 - Using Fortran-contiguous arrays in
_check_non_simple()
. (b06c78e
) - Moving most of
Curve.subdivide()
andSurface.subdivide()
logic into helpers. This is part of an effort to make all helpers take low-level data types rather thanCurve
s,Surface
s, etc. (34515bd
and1fc80e5
) - Split
speedup.f90
into submodulescurve.f90
,surface.f90
, etc. (75349b7
,dfd6bba
,7096a9d
,c326c00
) - Adding
BEZIER_JOURNAL
option tosetup.py
. This stores a record of compiler commands invoked during installation. See Native Libraries for more details. (3d832e7
andc64a97a
)