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 moduleslibbezier
static library (via thebezier.get_lib()
function)
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 #36Using 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)