stdBLAS
xtensor
stdBLAS | xtensor | |
---|---|---|
4 | 8 | |
104 | 3,221 | |
8.7% | 1.2% | |
5.0 | 7.6 | |
about 1 month ago | 15 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
stdBLAS
-
Which is the best way to work with matrices and linear algebra using c++?
You can have a look at https://github.com/kokkos/stdBLAS (it's an implementation of the proposed linear algebra extensions for future C++).
-
C++23: Near The Finish Line
It has the same BSD license as Kokkos: https://github.com/kokkos/stdBLAS/blob/main/LICENSE
-
Linear Algebra Library Reccomendations?
The BLAS and LAPACK have C interfaces, and they generally don't allocate memory unless you ask them. (Some BLAS implementations allocate internal storage for rearranging matrix data.) There are a few C++ BLAS wrappers; here is one of them.
-
Is there an OOP-wrapper library for cublas?
The second one is stdBLAS by kokkos. It doesn't even use cuBLAS but it's a reference implementation of P1673. This paper describe what could be a blas API in the std. I would recommend trying to do something equivalent on your side.
xtensor
- Does anyone know any good open source project to optimize?
- Container slicing in c++
-
Which is the best way to work with matrices and linear algebra using c++?
I use xtensor: https://github.com/xtensor-stack/xtensor
-
Can you give an example of well-designed C++ code, and explain why you think it is so?
Currently, one of my current favorites is xtensor.
-
Risk of valarray being deprecated?
xTensor natively supports tensors and multidimensional arrays - not just vectors and matrices. Is fast, but not always as fast as Eigen and Blaze - and compiles very slow. Has a nice syntax.
- Xtensor: multi-dimensional arrays with broadcasting and lazy computing
-
Eigen: A C++ template library for linear algebra
I wonder how Eigen compares to xtensor, which was inspired by Numpy and has support for views, slicing, and broadcasting?
https://github.com/xtensor-stack/xtensor
-
When researching and developing new algorithms to be used in the real-world production environment, what is your workflow and how do you usually do it? Do I have to prototype in Python, and then rewrite all code in C++/Rust?
You can try eigen (http://eigen.tuxfamily.org/), armadillo (http://arma.sourceforge.net/) which is based on LAPACK which is what numpy is based on and xtensor (https://github.com/QuantStack/xtensor) which I think is the closest thing to numpy you’re gonna find in c++
What are some alternatives?
mdspan - Reference implementation of mdspan targeting C++23
Fastor - A lightweight high performance tensor algebra framework for modern C++
kokkos - Kokkos C++ Performance Portability Programming Ecosystem: The Programming Model - Parallel Execution and Memory Abstraction
EA Standard Template Library - EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.
plf_hive - plf::hive is a fork of plf::colony to match the current C++ standards proposal.
dynarray - A header-only library, VLA for C++ (≥C++14). Extended version of std::experimental::dynarray
LEWG - Project planning for the C++ Library Evolution Working Group
SwiftyWasmer - A Swift API for the Wasmer WebAssembly Runtime
plf_colony - An unordered C++ data container providing fast iteration/insertion/erasure while maintaining pointer/iterator validity to non-erased elements regardless of insertions/erasures. Provides higher-performance than std:: library containers for high-modification scenarios with unordered data.
GLM - OpenGL Mathematics (GLM)
papers - ISO/IEC JTC1 SC22 WG21 paper scheduling and management
pinocchio - A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives