sundials
Fastor
sundials | Fastor | |
---|---|---|
1 | 5 | |
459 | 706 | |
2.4% | - | |
8.4 | 4.3 | |
about 22 hours ago | 22 days ago | |
C | C++ | |
BSD 3-clause "New" or "Revised" License | MIT 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.
sundials
Fastor
-
Standard way of doing maths with arrays?
I'm going to throw in a recommendation for Fastor. It is generally faster than other libraries, is very lightweight, and has a pretty modern syntax.
- LibRapid -- High Performance Arrays for C++
-
From Julia to C++ Struggle
There are C++ libraries that deal with linear algebra and tensors that are able to produce fully vectorized code without requiring you to mess around with SIMD intrinsics. See, for instance, fastor, blaze, eigen and the huge Trillinos set of packages. C++ is very widely used when it comes to scientific HPC applications. All you need to do is google search or better yet, join r/cpp and r/cpp_questions and start asking away for the things you need. The C++ community is very welcoming and full of experts that will be able to help you.
-
Use of BLAS vs direct SIMD for linear algebra library operations?
Picking what size you are targeting is really important, though. Could the matrices you are working with realistically be bigger than say 32x32? BLAS is good for big matrices. It's not as great for small matrices. Eigen or Fastor will do better for these smaller problems. And for various common operations on sizes 2, 3, and 4, hand coded graphics-oriented libraries might outperform those.
-
Scientific computing in Cpp
Tensorflow, Machine learning: https://www.tensorflow.org/ Fastor, A tensor library: https://github.com/romeric/Fastor GNU Scientific Library(GSL): https://www.gnu.org/software/gsl/ Boost. FEniCS, A finite element library: https://fenicsproject.org/ Intel MKL, a BLAS+LAPACK+other goodies library: https://software.intel.com/content/www/us/en/develop/tools/math-kernel-library.html SuiteSparse, A sparse linear algebra library: http://faculty.cse.tamu.edu/davis/suitesparse.html Sundials, Nonlinear solvers: https://computing.llnl.gov/projects/sundials
What are some alternatives?
blis - BLAS-like Library Instantiation Software Framework
xtensor - C++ tensors with broadcasting and lazy computing
DAGSfM - Distributed and Graph-based Structure from Motion. This project includes the official implementation of our Pattern Recognition 2020 paper: Graph-Based Parallel Large Scale Structure from Motion.
DirectXMath - DirectXMath is an all inline SIMD C++ linear algebra library for use in games and graphics apps
openpbs - An HPC workload manager and job scheduler for desktops, clusters, and clouds.
dynarray - A header-only library, VLA for C++ (≥C++14). Extended version of std::experimental::dynarray
OpenCoarrays - A parallel application binary interface for Fortran 2018 compilers.
ITensors.jl - A Julia library for efficient tensor computations and tensor network calculations
mfem - Lightweight, general, scalable C++ library for finite element methods
ArrayFire - ArrayFire: a general purpose GPU library.
SPTK - A suite of speech signal processing tools
Catch - A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)