RationaleΒΆ
This library provides a multi-dimensionnal array library for numerical computations with the following characteristics/goals:
Simplicity of use :
Arrays must be as simple to use as in python (numpy) or fortran. This library is designed to be used by physicists, not by professionnal programmers. We do a lot of array manipulations, and we want to maintain readable codes.
Genericity, abstraction and performance:
We want to have simple, readeable code, with the same (or better) speed than documentation/manually written low-level code. Most optimisations should be delegated to the library and the compiler. (Some) LAPACK and BLAS operations are interfaced.
Complete interoperability with python numpy arrays.
This library is used a lot with mixed C++/python codes. It handles quick conversion between the C++ and python world, e.g. :
- work on a view of a numpy,
- create a array in C++, and return it as a numpy.
- mix the various kind of arrays transparently in C++ expressions.
HDF5: simple interface to hdf5 library to ease storing/retrieving into/from HDF5 files.
MPI: compatibility with boost::mpi interface.