Releases: RUrlus/carma
Release CARMA v0.5.1
Changes
- Fixes #78 where CARMA version was not set if not installed or build through CMake
Release CARMA v0.5.0
New release of CARMA that has better interoperability with Armadillo.
Changes
Wrappers around Numpy (de)allocator included
The wrappers round Numpy's (de)allocator that were used in the forked version of Armadillo have been moved to CARMA.
This header is pre-compiled to remove any include order dependency between CARMA and Armadillo
Armadillo version check during compilation
Added separate definitions for major, minor and patch version of CARMA
Updated documentation
Release CARMA v0.4.0
Release 0.4.0 features almost complete rewrite of CARMA and can be considered the release candidate for 1.0.0.
Note this release is breaking but fixes a number of underlying issues in the old versions
Breaking changes
Default branch renamed to stable
Include is now carma
The nested structure in the include directory has been flattened. Users only require #include carma
rather than carma/carma.h
Minimum requirements updated
- Pybind11 version is 2.6.x
- Armadillo version is 10.4.x
Default copy behaviour for Cube, Col and Row is now identical to Mat
Previous versions were not always able to correctly take ownership of the memory underlying Armadillo objects.
This has been resolved with the new version.
Update functions have been removed
The update functions have been removed as they no longer fit in the design pattern and were quite fragile.
Borrowed arrays no longer need update as they have strict parameter enforced. Stolen or copied arrays can be safely returned.
Strict parameter to arr_to_*
has been removed
The new behaviour sets the auxiliary memory for Armadillo objects to strict
when borrowing and not when copying or stealing the memory.
In-place swap when borrowing and ill-behaved arrays
On the conversion from Numpy to Armadillo we copy arrays that are not well-behaved to a well-behaved array and swap it in the place of the input array
Changes
Requires fork of Armadillo
v0.4.0 requires a fork of Armadillo that provides the Numpy allocator/de-allocator, we support Armadillo v1.14.x and v1.15.x
See build documentation for details.
Armadillo and Pybind11 are no longer submodules but are provided at runtime when not present
Introduced arr_to_*_view
The view functions returns a constant Armadillo object based on a const input that does not require writeable memory.
new overloads for arr_to_*
We now provide const &
, &
, &&
overloads for arr_to_*
and to_arma
new overloads to *_to_arr
and to_numpy
We now provide const &
, &
, &&
overloads for *_to_arr
and to_numpy
Moved CI/CD to Github actions
Release Carma 0.3.0
Fixed
- Fix deallocation bug
A bug existed where the memory was deallocated with free
rather than the deallocator matching the allocator.
Added
- CI/CD support for Windows, MacOS
- Test support with ctest
Changed
- Armadillo and Pybind11 as submodules
Armadillo and Pybind11 are no longer shipped with CARMA in the test directory but have been included as submodules.
- Enable use of Armadillo and Pybind11 out of carma repository
This enables CARMA to be used in an existing project with different versions that included as submodules.
- Clang format
All source files have been formatted using clang format.
- Typos
Multiple typos have been correct in the comments and tests.
This change has no influence on API.
Release Carma 0.2.0
Changes:
- Fix spelling of
writeable
- Restructure include directory
Features:
ArrayStore
A class for holding the memory of a Numpy array as an Armadillo matrix in C++ and creating views on the memory as Numpy arrays.
An example use-case would be a C++ class that does not return all data computed, say a Hessian, but should do so on request.
The memory of the views is tied to lifetime of the class.
Release Carma v0.1.2
Patch release of Carma
Changes:
- Functions to edit Numpy flags (OWNDATA, WRITEABLE)
- Documentation example on how to take ownership of Numpy array
Release Carma v0.1.1
Patch release of Carma
Changes:
- Fix in CMakelists as interface lib
- Fix in carma.h of non-template type