Mathtoolbox Save

Mathematical tools (interpolation, dimensionality reduction, optimization, etc.) written in C++11 with Eigen

Project README

mathtoolbox

GitHub

Mathematical tools (interpolation, dimensionality reduction, optimization, etc.) written in C++11 and Eigen.

Algorithms

Scattered Data Interpolation and Function Approximation

Dimensionality Reduction and Low-Dimensional Embedding

Numerical Optimization

Linear Algebra

Utilities

Dependencies

Main Library

Python Bindings

Examples

Use as a C++ Library

mathtoolbox uses CMake https://cmake.org/ for building source codes. This library can be built, for example, by

git clone https://github.com/yuki-koyama/mathtoolbox.git --recursive
cd mathtoolbox
mkdir build
cd build
cmake ../
make

and optionally it can be installed to the system by

make install

When the CMake parameter MATHTOOLBOX_BUILD_EXAMPLES is set ON, the example applications are also built. (The default setting is OFF.) This is done by

cmake ../ -DMATHTOOLBOX_BUILD_EXAMPLES=ON
make

When the CMake parameter MATHTOOLBOX_PYTHON_BINDINGS is set ON, the example applications are also built. (The default setting is OFF.) This is done by

cmake ../ -DMATHTOOLBOX_PYTHON_BINDINGS=ON
make

Prerequisites

macOS:

brew install eigen

Ubuntu:

sudo apt install libeigen3-dev

Use as a Python Library

pymathtoolbox is a (sub)set of Python bindings of mathtoolbox. Tested on Python 3.8 and 3.9.

It can be installed via PyPI:

pip install git+https://github.com/yuki-koyama/mathtoolbox

Prerequisites

macOS

brew install cmake eigen

Ubuntu 16.04/18.04

sudo apt install cmake libeigen3-dev

Examples

See python-examples.

Bayesian optimization (bayesian-optimization) solves a one-dimensional optimization problem using only a small number of function-evaluation queries.

Classical multi-dimensional scaling (classical-mds) is applied to pixel RGB values of a target image to embed them into a two-dimensional space.

Self-organizing map (som) is also applicable to pixel RGB values of a target image to learn a two-dimensional color manifold.

Projects Using mathtoolbox

Contributing

Bug reports, suggestions, feature requests, and PRs are highly welcomed.

Licensing

The MIT License.

Open Source Agenda is not affiliated with "Mathtoolbox" Project. README Source: yuki-koyama/mathtoolbox

Open Source Agenda Badge

Open Source Agenda Rating