- Explicit support for Python 3.8 has been added
(#161). On Windows this
required using the
os.add_dll_directory()
function to loadbezier.dll
(in earlier Python versions, the DLL directory was added by modifying%PATH%
).
- Loosened type constraints in
Curve
constructor andSurface
constructor; now any sequence type is accepted rather than only NumPy arrays (68f7dc7, a8c68a3, f5c7869). Fixed #146. - Added
copy
andverify
arguments toCurve
constructor andSurface
constructor (#163). Fixed #158. - Added SymPy-based helpers for "exact" representations (#164). Fixed #157.
- Re-factored non-public modules so that algorithms implemented in pure Python only invoke other algorithms written in pure Python (#160). Previously these algorithms invoked the equivalent Fortran speedup if present for a given function. Fixed #159.
- Moved
*.f90
Fortran files out of Python source tree (#152).
- Explicitly handle length 0 curves (with an error) in the
compute_length()
Fortran subroutine that is used by theCurve.length
property (a24368f). Fixed #148. - Fixed high-degree error in the
Curve.evaluate()
method, via theevaluate_curve_barycentric()
Fortran subroutine (5768824). Fixed #156. The code uses \binom{n}{k + 1} = \frac{n - k}{k + 1} \binom{n}{k} to update the value and (30 - 14) \binom{30}{14} overflows a 32-bit signed integer.