Cyrk

Latest version: v0.12.2

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 7

0.6.1

New Features
- Added top level parameters (like `MAX_STEP`) used in `CySolver` to `cysolver.pxd` so they can be cimported.
- Added new argument to `array.interp` and `array.interp_complex`: `provided_j` the user can provide a `j` index,
allowing the functions to skip the binary search.
- Added new function `interpj` to array module that outputs the interpolation result as well as the `j` index that was found.

Bug Fixes
- Fixed issue with array tests not actually checking values.

Other Changes
- Reordered tests since numba tests take the longest.
- Added `initializedcheck=False` to the array module compile arguments.

0.6.0

New Features
- `CyRK` now works with python 3.11.
- Created the `CySolver` class which is more efficient than the `cyrk_ode` function.
- Solves [issue 28](https://github.com/jrenaud90/CyRK/issues/28)
- New functions in `CyRK.cy.cysolvertest` to help test and check performance of `CySolver`.

Performance
- Removed python lists from `cyrk_ode` leading to an increase in performance of 15--20%.
- Solves [issue 27](https://github.com/jrenaud90/CyRK/issues/27)

Bug Fixes:
- Fixed compile error with `cyrk_ode` "complex types are unordered".
- This was not a problem before so likely something has changed in newer cython versions.
- Fixed missing declarations for variables in `cyrk_ode`.
- Fixed potential problems during installation where paths may be incorrect depending on OS.

0.5.3

Performance
- Removed dynamic optional arguments from `cyrk_ode`. Now it checks if those arguments are set to None.

Other Changes
- Changed `cyrk_ode` arguments to const to avoid memoryview buffer problems. (Change made by [David Meyer](https://github.com/dihm))

0.5.1

- Fixed issues with MacOS wheel build during CI.

0.5.0

New Features
- `cyrk_ode` now supports both float and complex-typed y and dydt functions.
- Resolves [issue 3](https://github.com/jrenaud90/CyRK/issues/3)). (Feature added by [David Meyer](https://github.com/dihm))

Performance
- Converted various ints to `short`s, `char`s, 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](https://github.com/jrenaud90/CyRK/issues/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](https://github.com/jrenaud90/CyRK/issues/20)).

0.4.0

New Features
- Added the ability to save intermediate (non-dependent y) results during integration for `nbrk` and `cyrk` ode solver.
- See `Documentation/Extra Output.md` for more information.

Performance
- Minor performance improvements to `cyrk_ode` (switch to c++ compiler and some related functionality)
- The new feature that saves intermediate results during integration had a minor impact on performance (even when not using the feature). However, it is within most tests margin of error.

Page 5 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.