CyRK v0.5.0
Changes
New Features
cyrk_ode
now supports both float and complex-typed y and dydt functions.- Resolves issue 3. (Fix made by David Meyer)
Performance
- Converted various ints to
short
s,char
s, orPy_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
fornbrk_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
andcyrk_ode
tests to use pytest parameterization. - Changed the accuracy test for both
nbrk_ode
andcyrk_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 moduleCyRK.rk
.
Bug Fixes:
- Fixed issue (for
nbrk_ode
andcyrk_ode
) where incorrect step size could be used due to bad minimum step check (see issue 20).
GitHub Generated Change Log
- 0.5.0 by @jrenaud90 and @dihm in #25
Full Changelog: v0.4.0...v0.5.0