Introduction

NumCpp is a numerical C++ library, which allows to write numerical algorithms in a similar way as in Numpy or Matlab. It uses features of the new C++11 standard simplifying both the implementation of NumCpp and the external API. Here is a simple example of its usage:

#include <numcpp>
using namspace numcpp;

int main()
{
  Vector<double> x = ones(16);
  auto y = fft(x);
  auto z = reshape(y,4,4);

  print(z);
}

More complex examples can be found in the Tutorial.

Features

The features of NumCpp are

  • Simple API similar to Numpy/Matlab
  • Truely multidimensional array object
  • Clean implementation
  • High performance using expression templates
  • Mixing of datatypes in expressions

License

The core functionallity of NumCpp is licensed under the LGPL. However, some functionality requires to link against software that is licensed under the GPL GPL. For instance the fft function internally uses the FFTW library, which is licensed under the GPL. If you plan to use NumCpp in a closed source software, please contact us to obtain a version of NumCpp where all GPL modules are replaced by GPL-free modules.

Contact

For questions and discussions you can use the google group numcpp.

If you are missing functionality in NumCpp you can either contribute to the project, or request features on a consulting basis (please contact us)

Indices and tables