``0.11.0`` ========== |pypi| |docs| 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 ~~~~~~~~~~~~ - Loosened type constraints in ``Curve`` `constructor `__ and ``Surface`` `constructor `__; now any sequence type is accepted rather than **only** NumPy arrays (`68f7dc7 `__, `a8c68a3 `__, `f5c7869 `__). Fixed `#146 `__. - Added ``copy`` and ``verify`` arguments to ``Curve`` `constructor `__ and ``Surface`` `constructor `__ (`#163 `__). Fixed `#158 `__. - Added `SymPy `__-based helpers for "exact" representations (`#164 `__). Fixed `#157 `__. - ``Curve.implicitize()`` `function `__ - ``Curve.to_symbolic()`` `function `__ - ``Surface.implicitize()`` `function `__ - ``Surface.to_symbolic()`` `function `__ 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 :math:`\binom{n}{k + 1} = \frac{n - k}{k + 1} \binom{n}{k}` to update the value and :math:`(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 `__. .. |pypi| image:: https://img.shields.io/pypi/v/bezier/0.11.0.svg :target: https://pypi.org/project/bezier/0.11.0/ :alt: PyPI link to release 0.11.0 .. |docs| image:: https://readthedocs.org/projects/bezier/badge/?version=0.11.0 :target: https://bezier.readthedocs.io/en/0.11.0/ :alt: Documentation for release 0.11.0