CyRK v0.8.0
Changes
New Features
- Added new interp functions that work with c pointers. These can only be cimported.
- Added new "CyRK.cy.common.pyx" file for functions that are used by both
cyrk_ode
andCySolver
.- Moved interpolation functionality into
CyRK.cy.common
. Restructuredcyrk_ode
andCySolver
to use this new function for interpolations.
- Moved interpolation functionality into
Changes:
- Refactored many
CySolver
internal attributes to reflect to change from memoryviews to pointers. The most important ones for the user are:CySolver.y_new_view
->CySolver.y_ptr
CySolver.dy_new_view
->CySolver.dy_ptr
CySolver.t_new
->CySolver.t_now
CySolver.arg_array_view
->CySolver.args_ptr
- Changed RK constants back to c arrays initialized with PyMem_Malloc. The memory for these arrays are setup in the cython-based solvers. Afterwards, there are helper functions in
CyRK.rk
to populate the arrays with correct values. - Moved to a more generalized scheme for compiling cython files. See "cython_extensions.json", "_build_cyrk.py", and "setup.py" for details.
Performance
- Transitioned many arrays from numpy to c arrays allocated with PyMem_Malloc, etc. These changes led to a significant performance boost for cython-based solvers.
- Copied some performance lessons that were learned from the cython-based solvers to the numba-based nbrk_ode.
GitHub Tracked Changes
- 0.8.0 by @jrenaud90 in #36
Full Changelog: v0.7.1...v0.8.0