0.11.0

PyPI link to release 0.11.0 Documentation for release 0.11.0

Python Changes

Packaging

  • Explicit support for Python 3.8 has been added (#161). On Windows this required using the os.add_dll_directory() function to load bezier.dll (in earlier Python versions, the DLL directory was added by modifying %PATH%).

New Features

Internals

  • 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.

Miscellany

  • Moved *.f90 Fortran files out of Python source tree (#152).

ABI Changes

Breaking Changes

  • Added BEZ_ prefix for exported ABI names (#167). Fixed #166.

Additive Changes

  • Changed all [in] arguments in C headers to const pointers (#169). Fixed #168.

Bug Fixes

  • Explicitly handle length 0 curves (with an error) in the compute_length() Fortran subroutine that is used by the Curve.length property (a24368f). Fixed #148.
  • Fixed high-degree error in the Curve.evaluate() method, via the evaluate_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.

Documentation

  • Updated install instructions to show how to disable the binary extension via BEZIER_NO_EXTENSION (6262594, 00c1e61). Fixed #147.
  • Added “Citation” section to landing page (9885063). Fixed #150.