Blaze is an open-source, high-performance C++ math library for dense and sparse arithmetic. With its state-of-the-art Smart Expression Template implementation Blaze combines the elegance and ease of use of a domain-specific language with HPC-grade performance, making it one of the most intuitive and fastest C++ math libraries available.
The Blaze library offers ...
Get an impression of the clear but powerful syntax of Blaze in the Getting Started tutorial and of the impressive performance in the Benchmarks section.
Older releases of Blaze can be found in the downloads section or in our release archive.
Blaze Matrix Market: Add Matrix Market functionality to the Blaze library (Adam Lugowski)
Blaze CUDA: Add CUDA capabilities to the Blaze library (Jules Pénuchot)
blaze_tensor: An implementation of 3D tensors for the Blaze library (Stellar Group)
BlazeIterative: A collection of iterative solvers (CG, BiCGSTAB, ...) for the Blaze library (Tyler Olsen)
RcppBlaze: A Blaze port for the R language (ChingChuan Chen)
15.8.2020: We are very happy to announce the release of Blaze 3.8. Again, we have extended the library with a number of amazing new features:
isinf()
and isfinite()
functionsrepeat()
function for vectors and matricesDynamicVector
and DynamicMatrix
We hope that you enjoy this new release!
23.2.2020: Today we are very proud to release Blaze 3.7. This release is packed with a long list of new features and improvements:
solve()
function for dense linear systemsStaticVector
, HybridVector
, StaticMatrix
, and HybridMatrix
constexpr
ification of HybridVector
and HybridMatrix
map()
operations for dense vectors and matrices (up to N<=6
)select()
function for dense vectors and matricesrank()
function for dense matricesdeclunilow()
and decluniupp()
functionsdeclstrlow()
and declstrupp()
functionsnosimd()
function for vectors and matricesnoalias()
function for vectors and matricesisPositiveDefinite()
function for dense matriceseigen()
expressionsvd()
expressionstd::array
constructor for all dense vectors and dense matricesmin()
and max()
overloads for vector/scalar and matrix/scalar operationsWe hope that these new additions and improvements enable you to get even more out of Blaze. Enjoy!
The Blaze library is licensed under the New (Revised) BSD license. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Blaze supports the C++14 standard and is compatible with a wide range of C++ compilers. In fact, Blaze is constantly tested with the GNU compiler collection (version 6.0 through 10.2), the Clang compiler (version 5.0 through 10.0), and Visual C++ 2017 (Win64 only). Other compilers are not explicitly tested, but might work with a high probability.
If you are looking for a C++98 compatible math library you might consider using an older release of Blaze. Until the release 2.6 Blaze was written in C++-98 and constantly tested with the GNU compiler collection (version 4.5 through 5.0), the Intel C++ compiler (12.1, 13.1, 14.0, 15.0), the Clang compiler (version 3.4 through 3.7), and Visual C++ 2010, 2012, 2013, and 2015 (Win64 only).
Klaus Iglberger -- Project initiator and main developer
Georg Hager -- Performance analysis and optimization
Christian Godenschwager -- Visual Studio 2010/2012/2013/2015 bug fixes and testing
Tobias Scharpff -- Sparse matrix multiplication algorithms
byzhang -- Bug fixes
Emerson Ferreira -- Bug fixes
Fabien Péan -- CMake support
Denis Demidov -- Export CMake package configuration
Jannik Schürg -- AVX-512 support and cache size detection for macOS in CMake
Marcin Copik -- CMake fixes
Hartmut Kaiser -- HPX backend
Patrick Diehl -- Integration of HPX to the Blazemark and maintainer of the Blaze Fedora package
Mario Emmenlauer -- Blazemark extensions
Jeff Pollock -- CMake extensions
Darcy Beurle -- Integration of Blaze into the Compiler Explorer
Robert Schumacher -- CMake fixes
Jan Rudolph -- CMake fixes
Mikhail Katliar -- LAPACK extensions
Daniel Baker -- Integration of Sleef
Thijs Withaar -- LAPACK extensions
Nils Deppe -- Integration of XSIMD
Author: blaze-lib
Source: https://bitbucket.org/blaze-lib/blaze/src/master/