All Projects → andrewssobral → dtt

andrewssobral / dtt

Licence: MIT license
A C++ header-only for data transfer between linear algebra libraries (Eigen, Armadillo, OpenCV, ArrayFire, LibTorch).

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to dtt

numerics
library of numerical methods using Armadillo
Stars: ✭ 17 (-77.03%)
Mutual labels:  linear-algebra, armadillo
URT
Fast Unit Root Tests and OLS regression in C++ with wrappers for R and Python
Stars: ✭ 70 (-5.41%)
Mutual labels:  eigen, armadillo
eigen
Owl's OCaml Interface to Eigen3 C++ Library
Stars: ✭ 30 (-59.46%)
Mutual labels:  linear-algebra, eigen
bandicoot-code
Bandicoot: GPU accelerator add-on for the Armadillo C++ linear algebra library
Stars: ✭ 21 (-71.62%)
Mutual labels:  linear-algebra, armadillo
eigen-js
⚡ Eigen-js is a port of the Eigen C++ linear algebra library
Stars: ✭ 78 (+5.41%)
Mutual labels:  linear-algebra, eigen
ign-math
General purpose math library for robot applications.
Stars: ✭ 35 (-52.7%)
Mutual labels:  linear-algebra, eigen
math-for-ml
Mathematical preliminaries for machine learning
Stars: ✭ 15 (-79.73%)
Mutual labels:  linear-algebra
SKLinearAlgebra
Swift extensions for Linear Algebra with SceneKit
Stars: ✭ 53 (-28.38%)
Mutual labels:  linear-algebra
linalg
Linear algebra library based on LAPACK
Stars: ✭ 42 (-43.24%)
Mutual labels:  linear-algebra
Pygraphblas
GraphBLAS for Python
Stars: ✭ 252 (+240.54%)
Mutual labels:  linear-algebra
joineRML
R package for fitting joint models to time-to-event data and multivariate longitudinal data
Stars: ✭ 24 (-67.57%)
Mutual labels:  armadillo
AlgebraLinear
Escrita colaborativa de recursos educacionais abertos sobre álgebra linear.
Stars: ✭ 57 (-22.97%)
Mutual labels:  linear-algebra
CNCC-2019
Computational Neuroscience Crash Course (CNCC 2019)
Stars: ✭ 26 (-64.86%)
Mutual labels:  linear-algebra
mathcore
Advanced .NET math library (.NET Standard).
Stars: ✭ 24 (-67.57%)
Mutual labels:  linear-algebra
PyArmadillo
PyArmadillo: an alternative approach to linear algebra in Python
Stars: ✭ 58 (-21.62%)
Mutual labels:  linear-algebra
Block
An intelligent block matrix library for numpy, PyTorch, and beyond.
Stars: ✭ 254 (+243.24%)
Mutual labels:  linear-algebra
susa
High Performance Computing (HPC) and Signal Processing Framework
Stars: ✭ 55 (-25.68%)
Mutual labels:  linear-algebra
SplashGeom
Open-source C++ library for geometry and linear algebra
Stars: ✭ 22 (-70.27%)
Mutual labels:  linear-algebra
SimplexSolver
An easy-to-use Simplex solver class for linear programming.
Stars: ✭ 18 (-75.68%)
Mutual labels:  eigen
NumNet
Numpy style scientific programming package
Stars: ✭ 17 (-77.03%)
Mutual labels:  linear-algebra

Data Transfer Tools for C++ Linear Algebra Libraries.

DTT is a header-only library that provides data transfer tools between C++ linear algebra libraries. Currently, it supports data transfer between the following libraries:

  • Eigen (>=3.3.x)
  • Armadillo (>=9.x)
  • OpenCV (cv::Mat) (2.x, 3.x, 4.x)
  • ArrayFire (>=3.x)
  • LibTorch (PyTorch C++) (>=1.x)

Current status:

Last page update: 25/08/2019

From/To Eigen Armadillo OpenCV ArrayFire LibTorch
Eigen - X X X X
Armadillo X - X X X
OpenCV X X - X X
ArrayFire X X X - X
LibTorch X X X X -

Tested on:

  • MacBook Pro (13-inch, 2017)
  • Mac OS X Mojave (10.14.5), Clang 10 (clang-1000.11.45.5), Xcode 10.1 with the following libraries:
    • OpenCV 4.1.1 (stable, built from source)
    • Eigen 3.3.7 (stable)
    • Armadillo 9.600.5 (stable)
    • ArrayFire 3.6.4 (stable)
    • LibTorch (1.3.0.dev20190820)

Install dependencies:

brew install eigen
brew install armadillo
# download and install ArrayFire: https://arrayfire.com/download/
# download and install LibTorch: https://pytorch.org/get-started/locally/
# download adn install OpenCV: https://opencv.org/releases/

How to compile and run:

git clone https://github.com/andrewssobral/dtt.git
cd dtt && mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=$LIBTORCH_HOME ..
./dtt_test

How to use:

#include <dtt.h>
using namespace dtt;
// that's all!

List of available functions:

  • From Eigen:

    • eigen2arma
    • eigen2cv
    • eigen2af
    • eigen2libtorch
  • From Armadillo:

    • arma2eigen
    • arma2cv
    • arma2af
    • arma2libtorch
  • From OpenCV:

    • cv2eigen
    • cv2arma
    • cv2af
    • cv2libtorch
  • From ArrayFire:

    • af2eigen
    • af2arma
    • af2cv
    • af2libtorch
  • From LibTorch:

    • libtorch2eigen
    • libtorch2arma
    • libtorch2cv
    • libtorch2af

See test/dtt_test.h and test/dtt_test.cpp for usage examples.

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].