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.6
, 3.7
, and 3.8
.
It can be installed via PyPI:
pip install git+https://github.com/yuki-koyama/mathtoolbox
macOS
brew install cmake eigen
Ubuntu 16.04/18.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-functions
andprobability-distributions
- elasty https://github.com/yuki-koyama/elasty
l-bfgs
Bug reports, suggestions, feature requests, and PRs are highly welcomed.
The MIT License.