Mathematical tools (interpolation, dimensionality reduction, optimization, etc.) written in C++11 and Eigen.
rbf-interpolation: Radial basis function (RBF) interpolationgaussian-process-regression: Gaussian process regression (GPR)
backtracking-line-search: Backtracking line searchbayesian-optimization: Bayesian optimizationbfgs: BFGS methodgradient-descent: Gradient descent methodl-bfgs: Limited-memory BFGS methodstrong-wolfe-conditions-line-search: Strong Wolfe conditions line search
acquisition-functions: Acquisition functionsconstants: Constantsdata-normalization: Data normalizationkernel-functions: Kernel functionsprobability-distributions: Probability distributions
- Eigen http://eigen.tuxfamily.org/ (
brew install eigen/sudo apt install libeigen3-dev)
- pybind11 https://github.com/pybind/pybind11 (included as gitsubmodule)
- optimization-test-function https://github.com/yuki-koyama/optimization-test-functions (included as gitsubmodule)
- timer https://github.com/yuki-koyama/timer (included as gitsubmodule)
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
macOS:
brew install eigen
Ubuntu:
sudo apt install libeigen3-dev
pymathtoolbox is a (sub)set of Python bindings of mathtoolbox. Tested on Python 3.8, 3.9.
It can be installed via PyPI:
pip install git+https://github.com/yuki-koyama/mathtoolbox
macOS
brew install cmake eigen
Ubuntu 22.04
sudo apt install cmake libeigen3-dev
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.
- SelPh [CHI 2016] https://github.com/yuki-koyama/selph
classical-mds
- Sequential Line Search [SIGGRAPH 2017] https://github.com/yuki-koyama/sequential-line-search
acquisition-functions,data-normalization,kernel-functions,log-determinant, andprobability-distributions
- Sequential Gallery [SIGGRAPH 2020] https://github.com/yuki-koyama/sequential-gallery
acquisition-functionsandprobability-distributions
- elasty https://github.com/yuki-koyama/elasty
l-bfgs
Bug reports, suggestions, feature requests, and PRs are highly welcomed.
The MIT License.



