Carma Versions Save

Converters between Armadillo matrices (C++) and Numpy arrays using Pybind11

v0.5.1

2 years ago

Changes

  • Fixes #78 where CARMA version was not set if not installed or build through CMake

v0.5.0

3 years ago

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

v0.4.0

3 years ago

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

v0.3.0

3 years ago

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.

v0.2.0

3 years ago

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.

v0.1.2

4 years ago

Patch release of Carma

Changes:

  • Functions to edit Numpy flags (OWNDATA, WRITEABLE)
  • Documentation example on how to take ownership of Numpy array

v0.1.1

4 years ago

Patch release of Carma

Changes:

  • Fix in CMakelists as interface lib
  • Fix in carma.h of non-template type

v0.1.0

4 years ago

Release of Carma v0.1.0