Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andrewssobral/dtt
A C++ header-only for data transfer between linear algebra libraries (Eigen, Armadillo, OpenCV, ArrayFire, LibTorch).
https://github.com/andrewssobral/dtt
armadillo arrayfire cpp eigen libtorch linear-algebra opencv
Last synced: 2 months ago
JSON representation
A C++ header-only for data transfer between linear algebra libraries (Eigen, Armadillo, OpenCV, ArrayFire, LibTorch).
- Host: GitHub
- URL: https://github.com/andrewssobral/dtt
- Owner: andrewssobral
- License: mit
- Created: 2019-08-23T14:44:44.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-05-18T20:08:07.000Z (8 months ago)
- Last Synced: 2024-11-07T07:11:50.239Z (2 months ago)
- Topics: armadillo, arrayfire, cpp, eigen, libtorch, linear-algebra, opencv
- Language: C++
- Homepage:
- Size: 28.3 KB
- Stars: 79
- Watchers: 3
- Forks: 15
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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:
```c++
#include
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
* * libtorch2afSee **test/dtt_test.h** and **test/dtt_test.cpp** for usage examples.