All Projects → yuki-koyama → Mathtoolbox

yuki-koyama / Mathtoolbox

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

Projects that are alternatives of or similar to Mathtoolbox

qpmad
ROS-compatible Eigen-based Goldfarb-Idnani quadratic programming solver
Stars: ✭ 41 (-76.16%)
Mutual labels:  optimization, eigen
Ojalgo
oj! Algorithms
Stars: ✭ 336 (+95.35%)
Mutual labels:  algorithm, optimization
Peroxide
Rust numeric library with R, MATLAB & Python syntax
Stars: ✭ 191 (+11.05%)
Mutual labels:  optimization, interpolation
Ifopt
An Eigen-based, light-weight C++ Interface to Nonlinear Programming Solvers (Ipopt, Snopt)
Stars: ✭ 372 (+116.28%)
Mutual labels:  eigen, optimization
Cppnumericalsolvers
a lightweight C++17 library of numerical optimization methods for nonlinear functions (Including L-BFGS-B for TensorFlow)
Stars: ✭ 638 (+270.93%)
Mutual labels:  eigen, optimization
Advisor
Open-source implementation of Google Vizier for hyper parameters tuning
Stars: ✭ 1,359 (+690.12%)
Mutual labels:  algorithm, optimization
Platypus
A Free and Open Source Python Library for Multiobjective Optimization
Stars: ✭ 313 (+81.98%)
Mutual labels:  algorithm, optimization
Optim
OptimLib: a lightweight C++ library of numerical optimization methods for nonlinear functions
Stars: ✭ 411 (+138.95%)
Mutual labels:  eigen, optimization
Solid
🎯 A comprehensive gradient-free optimization framework written in Python
Stars: ✭ 546 (+217.44%)
Mutual labels:  algorithm, optimization
Pyswarms
A research toolkit for particle swarm optimization in Python
Stars: ✭ 742 (+331.4%)
Mutual labels:  algorithm, optimization
Fast zlib
Heavily optimized zlib compression algorithm
Stars: ✭ 105 (-38.95%)
Mutual labels:  algorithm, optimization
Leetcode Js
用 JS 刷 LeetCode
Stars: ✭ 165 (-4.07%)
Mutual labels:  algorithm
Rl Baselines3 Zoo
A collection of pre-trained RL agents using Stable Baselines3, training and hyperparameter optimization included.
Stars: ✭ 161 (-6.4%)
Mutual labels:  optimization
Go Jump Consistent Hash
⚡️ Fast, minimal memory, consistent hash algorithm
Stars: ✭ 163 (-5.23%)
Mutual labels:  algorithm
Algorithm
The repository algorithms implemented on the Go
Stars: ✭ 163 (-5.23%)
Mutual labels:  algorithm
Modernroboticscpp
Modern Robotics: Mechanics, Planning, and Control C++ Library --- The primary purpose of the provided software is to be easy to read and educational, reinforcing the concepts in the book. The code is optimized neither for efficiency nor robustness. http://modernrobotics.org/
Stars: ✭ 170 (-1.16%)
Mutual labels:  eigen
Nashpy
A library for the computation of Nash equilibria in two player games
Stars: ✭ 164 (-4.65%)
Mutual labels:  algorithm
Mathoptinterface.jl
An abstraction layer for mathematical optimization solvers.
Stars: ✭ 163 (-5.23%)
Mutual labels:  optimization
Internet Recruiting Algorithm Problems
《程序员代码面试指南》、公司招聘笔试题、《剑指Offer》、算法、数据结构
Stars: ✭ 163 (-5.23%)
Mutual labels:  algorithm
Svgsort
svg path sorter for more efficient (pen)plotting.
Stars: ✭ 162 (-5.81%)
Mutual labels:  optimization

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.6, 3.7, and 3.8.

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.

Gallery

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].