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.