Skip to content

CyRK v0.5.0

Compare
Choose a tag to compare
@jrenaud90 jrenaud90 released this 29 Mar 01:01
· 464 commits to main since this release

Changes

New Features

  • cyrk_ode now supports both float and complex-typed y and dydt functions.

Performance

  • Converted various ints to shorts, chars, or Py_ssize_t. Py_ssize_t is recommended by Cython for loop integers to better support 64-bit architecture.
  • Added custom interpolation functions which, depending on the size of the array, can be up to 10x faster than numpys.
  • Removed unnecessarily variables from cyrk_ode.
  • Had to turn off fastmath for nbrk_ode. See issue 24. This negatively impacted the numba integrator's performance by around 5%.

Other Changes:

  • Refactored, cleaned up, and added comments and docstrings to cyrk_ode.
  • Changed both nbrk_ode and cyrk_ode tests to use pytest parameterization.
  • Changed the accuracy test for both nbrk_ode and cyrk_ode to check against a known function.
  • Added openmp dependence during compile time to allow for the use of prange.
  • Moved cyrk_ode's Runge-Kutta constants to a separate module CyRK.rk.

Bug Fixes:

  • Fixed issue (for nbrk_ode and cyrk_ode) where incorrect step size could be used due to bad minimum step check (see issue 20).

GitHub Generated Change Log

Full Changelog: v0.4.0...v0.5.0