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 the
bezier.get_include()
function)- Cython
.pxd
declarations for all Fortran modules libbezier
static library (via thebezier.get_lib()
function)
- Cython
- 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 and 975ac6b) - 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 and 1fc80e5) - 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 and c64a97a)