Cyrk

Latest version: v0.8.7

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

Scan your dependencies

Page 1 of 5

0.8.7

Updated manifest and rebuilt wheels.

0.8.6

Major Changes:
- Added support for Python 3.12.
- Converted `CySolver`'s `rk_step` method into a pure-c implementation to allow for further optimizations.
- Changed all files to compile with c rather than c++.
- Had to change cpp_bools to bints to make this change.

Bug Fixes:
- Fixed issue where CyRK was not installing on MacOS due to issue with LLVM and OpenMP.
- Have opted to go to gcc for macOS install due to issues with OpenMP and clang.
- Fixed incorrect type for rk method in CySolver (should eliminate some compile warnings).
- Fixed issue in benchmark where incorrect results were being displayed for CySolver.

2023

0.8.5

Other Changes:
- Improved t-eval setter and resetter in `CySolver`

Bug Fixes:
- Fixed bug where incorrect memory was being accessed whenever `CySolver` integration failed (leading to seg fault).

0.8.4

Performance:
- Removed some try/finally blocks, they were largely not needed in `CySolver` as allocated memory is released on the class destruction.
- Cleaned up unused variables in cython-based solvers.

Other Changes:
- Added "force_fail" parameter to `CySolver` to force the integrator to fail to test if memory is released properly.
- `CySolver` class pointers now initialize to NULL at the start of init.
- `CySolver` now owns all data that is heap-allocated (via class attributes). This allows better management of data in the event of crashes or integration failures.

Bug Fixes:
- Max number of steps was being performed before extra_output was parsed in `CySolver` which could lead to incorrect max num steps.
- Fixed incorrect type for `CySolver.user_provided_max_num_steps`.

0.8.3

New Features:
- Added tests to check if memory access violations can occur when `CySolver` is resolved many times.
- Added new cdef methods to `CySolver` for more efficient changes of parameters:
- `CySolver.change_y0_pointer` - Changes the y0 pointer without having to pass memoryviews.
- `CySolver.change_t_eval_pointer` - Changes the t_eval pointer without having to pass memoryviews.
- Added way for user to limit RAM usage for cython-bases solvers. This also changed how max number of steps was calculated.

Performance:
- Changing RK variables back to stack-allocated c-arrays rather than malloc arrays.
- Improved how `CySolver` and `cyrk_ode` expected size is calculated and how much it grows with each concat.
- Files now compile across multiple threads during installation.

Other Changes:
- Moved some common constants for both `CySolver` and `cyrk_ode` out of their files and into `cy.common`.
- Added more meaningful memory error messages to cython files.
- Memory allocations (or reallocations) are now performed by helper functions in CyRK.utils.
- Better future-proofed package structure (mainifests, gitignores, etc.).
- Converted most Py_ssize_t to size_t.
- Cleaned up a lot of unused variables and imports.

Bug Fixes:
- Fixed potential memory leaks in cython-based solvers when exceptions are raised.
- The new safe guards (likely the try/finally blocks) did cause a somewhat sizable hit to performance.

0.8.2

New Features:
- Added a helper flag to control if `CySolver.reset_state` is called at the end of initialization.

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.