0.5.0
Performance Optimizations
- Change
wiggle_intervalto returnsuccessbool 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
f2pyto Cython (this is becausef2pyartificially 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
.pxddeclarations for all Fortran modules libbezierstatic library (via thebezier.get_lib()function)
- Cython
- Implementing
bezier_roots()polynomial root solver for polynomials written in Bernstein basis. (0dd6369)
Miscellany
- Getting
bezierpublished 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 thanCurves,Surfaces, etc. (34515bd and 1fc80e5) - Split
speedup.f90into submodulescurve.f90,surface.f90, etc. (75349b7, dfd6bba, 7096a9d, c326c00) - Adding
BEZIER_JOURNALoption tosetup.py. This stores a record of compiler commands invoked during installation. See Native Libraries for more details. (3d832e7 and c64a97a)