# Wiki

Clone wiki# blaze / Release Archive

## Blaze 3.7

- Released on February, 23rd, 2020
- Introduction of vector generators and matrix generators
- Introduction of the dense matrix exponential
- Introduction of the
`solve()`

function for dense linear systems - Support for 64-bit BLAS and LAPACK libraries
- Enable instance-specific alignment and padding configuration for
`StaticVector`

,`HybridVector`

,`StaticMatrix`

, and`HybridMatrix`

`constexpr`

ification of`HybridVector`

and`HybridMatrix`

- Introduction of outer sum, outer difference, and outer quotient operations
- Introduction of N-ary
`map()`

operations for dense vectors and matrices (up to`N<=6`

) - Introduction of the
`select()`

function for dense vectors and matrices - Introduction of the
`rank()`

function for dense matrices - Introduction of the
`declunilow()`

and`decluniupp()`

functions - Introduction of the
`declstrlow()`

and`declstrupp()`

functions - Introduction of the
`nosimd()`

function for vectors and matrices - Introduction of the
`noalias()`

function for vectors and matrices - Introduction of the
`isPositiveDefinite()`

function for dense matrices - Introduction of the
`eigen()`

expression - Introduction of the
`svd()`

expression - Introduction of a
`std::array`

constructor for all dense vectors and dense matrices - Introduction of
`min()`

and`max()`

overloads for vector/scalar and matrix/scalar operations - Optimizations of the dense matrix/dense vector multiplication kernels
- Optimizations of the dense matrix/dense matrix multiplication kernels
- Extended support for C++17 class template argument deduction (CTAD)

## Blaze 3.6

- Released on August, 25th, 2019
- Introduction of the Kronecker product for vectors and matrices
- Introduction of statistic operations for vectors and matrices
- Introduction of the
`argmin()`

and`argmax()`

functions for dense and sparse vectors - Introduction of scalar addition and scalar subtraction for vectors and matrices
- Introduction of bitwise operations for dense vectors and dense matrices
- Introduction of uniform and elementwise left/right shift operators
- Introduction of bitwise AND
- Introduction of bitwise OR
- Introduction of bitwise XOR

- Introduction of logical operations for dense vectors and dense matrices
- Introduction of logical NOT
- Introduction of logical AND
- Introduction of logical OR

- Introduction of scalar expansion for vectors and matrices
- 994 new test cases

## Blaze 3.5

- Released on February, 26th, 2019
- Introduction of extended element selections
- Introduction of extended row selections
- Introduction of extended column selections
- Introduction of the
`reverse()`

functions for vectors and matrices - Introduction of the
`UniformVector`

class template - Introduction of the
`UniformMatrix`

class template - Introduction of the
`ZeroVector`

class template - Introduction of the
`ZeroMatrix`

class template - Improved compatibility with C++17
- Improved support for Skylake processors
- 1024 new test cases
- Deprecation of the
**Blazemark**

## Blaze 3.4

- Released on August, 21st, 2018
- Introduction of vector reduction operations
- Introduction of matrix reduction operations
- Introduction of the
`sign()`

function - Introduction of the
`softmax()`

function - Massive internal refactorings providing ...
- ... simplified integration of custom vector and matrix types
- ... improved compile times

- Introduction of the FAQ wiki page
- Introduction of the issue creation guideline wiki page
- 152 new test cases

## Blaze 3.3

- Released on February, 11th, 2018
- Introduction of compile time configured views
- Introduction of element selections
- Introduction of row selections
- Introduction of column selections
- Introduction of band views
- Introduction of the HPX shared-memory parallelization backend
- Introduction of the
`atan2()`

and`hypot()`

functions - Introduction of vector norms (
`norm()`

,`sqrNorm()`

,`l1Norm()`

,`l2Norm()`

,`l3Norm()`

,`l4Norm()`

,`lpNorm()`

,`maxNorm()`

) - Introduction of matrix norms (
`norm()`

,`sqrNorm()`

,`l1Norm()`

,`l2Norm()`

,`l3Norm()`

,`l4Norm()`

,`lpNorm()`

,`maxNorm()`

) - Introduction of the
`SmallVector`

class template

## Blaze 3.2

- Released on August, 18th, 2017
- Introduction of CMake support
- Introduction of the advanced configuration system
- Introduction of full AVX-512 support
- Introduction of the
`IdentityMatrix`

class template- Introduction of the
`declid()`

function

- Introduction of the
- Introduction of the componentwise matrix multiplication (Schur product)
- Introduction of binary custom operations
- Removed the ownership semantics from
`CustomVector`

and`CustomMatrix`

- Support for 0-sized
`StaticVector`

and`StaticMatrix`

- Introduction of cross product assignment operators for all vectors
- 1145 new test cases

## Blaze 3.1

- Released on February, 18th, 2017
- Improved kernels for large matrix/matrix multiplications
- Introduction of the
`declsym()`

,`declherm()`

,`decllow()`

,`declupp()`

, and`decldiag()`

operations- Provide optimizations for symmetric matrix/matrix multiplications
- Provide optimizations for Hermitian matrix/matrix multiplications
- Provide optimizations for lower or upper triangular matrix/matrix multiplications
- Provide optimizations for diagonal matrix/matrix multiplications

- Introduction of the
`eigen()`

functions for the computation of eigenvalues and eigenvectors - Introduction of the
`svd()`

functions for the singular value decomposition - Introduction of the
`trace()`

function - Introduction of the
`evaluate()`

function - Introduction of 5 new componentwise operations for vectors and matrices:
`exp2`

,`exp10`

,`log2`

,`trunc`

,`round`

- Introduction of predicate-based
`erase()`

functions to all sparse vectors and matrices - Improved compatibility with OpenBLAS
- Improved compatibility with the Intel compilers
- Renamed the
`clip()`

function to`clamp()`

## Blaze 3.0

- Released on August, 24th, 2016
- Upgrade to C++14
- Introduction of vector/vector divisions
- Introduction of custom operations (
`forEach()`

) - Introduction of 25 new componentwise operations for vectors and matrices:
- Introduction of initializer list constructors and assignment operators for dense vectors and matrices
- Support for fused multiply-add (FMA)
- Support for the Intel SVML
- Improved and extended support for AVX-512
- Removal of the direct initialization constructors of
`StaticVector`

and`StaticMatrix`

- Removal of the
`Dense`

and`Sparse`

prefix of all views`DenseSubvector`

and`SparseSubvector`

have been merged into the`Subvector`

class template`DenseSubmatrix`

and`SparseSubmatrix`

have been merged into the`Submatrix`

class template`DenseRow`

and`SparseRow`

have been merged into the`Row`

class template`DenseColumn`

and`SparseColumn`

have been merged into the`Column`

class template

- Removal of the
`byDefault`

matrix inversion flag - 114 new test cases

## Blaze 2.6

- Released on February, 16th, 2016
- Introduction of BLAS wrapper functions for the matrix/vector and matrix/matrix multiplication
- Introduction of LAPACK wrapper functions for ...
- ... the LU, Cholesky, LDLT, LDLH, QR, RQ, QL, and LQ decomposition of dense matrices
- ... the inversion of dense matrices
- ... the forward/backward substitution of dense matrices
- ... solving linear systems of equations

- Introduction of the
`det()`

function for the computation of the determinant of dense matrices - Introduction of the
`CustomVector`

class template - Introduction of the
`CustomMatrix`

class template

## Blaze 2.5

- Released on October, 1st, 2015
- Introduction of Hermitian matrices
- Introduction of the
`conj()`

and`ctrans()`

operations - Introduction of the
`real()`

and`imag()`

operations - Improved kernels for dense matrix/sparse matrix multiplications
- Improved kernels for sparse matrix/dense matrix multiplications
- Vectorization of integral complex numbers
- Introduction of the error reporting customization
- Improved tutorial and wiki
- 664 new test cases

## Blaze 2.4

- Released on July, 4th, 2015
- Introduction of unitriangular and strictly triangular matrices
- Introduction of diagonal matrices
- Advanced optimized kernels for triangular matrices
- Improved kernels for dense matrix/matrix multiplications
- 804 new test cases

## Blaze 2.3

- Released on March, 11th, 2015
- Introduction of lower and upper triangular matrices
- Optimized kernels for triangular matrices
- Improved kernels for dense matrix/vector multiplications
- 748 new test cases

## Blaze 2.2

- Released on December, 3rd, 2014
- Introduction of symmetric matrices
- Improved support for block-structured vectors and matrices

## Blaze 2.1

- Released on June, 20th, 2014
- C++11 thread-based shared memory parallelization
- Boost thread-based shared memory parallelization
- Enable the parallel execution of block-structured vectors and matrices
- Introduction of the
`HybridMatrix`

class template

## Blaze 2.0

- Released on March, 23rd, 2014
- OpenMP-based shared memory parallelization
- Introduction of aligned subvectors and submatrices

## Blaze 1.5

- Released on January, 5th, 2014
- Significant performance improvements for various compilers, including GCC-4.7, GCC-4.8 and the Clang compiler

## Blaze 1.4

- Released on November, 11th, 2013
- Introduction of subvector and submatrix views
- Switch from the GPL to the BSD license

## Blaze 1.3

- Released on July, 28th, 2013
- Support for AVX2 processors
- Performance optimization of several operations (including e.g. outer products)
- Complete vectorization of vector and matrix operations involving
`std::complex`

- Serialization of vectors and matrices

## Blaze 1.2

- Released on May, 24th, 2013
- Introduction of row and column views
- Myriads of small changes and improvements

## Blaze 1.1

- Released on January, 20th, 2013
- Support for the Intel® MIC architecture
- Introduction of the 3D cross product
- Improved performance of the sparse matrix-matrix multiplication (spMMM)
- Improved support and performance for non-fundamental element types (for instance for block-structured matrices)
- Improved and extended aliasing detection and automatic optimization
- Rework of the random number generation module (for instance for the generation of random vectors and matrices)
- Improved vector and matrix output

## Blaze 1.0

- Released on August, 24th, 2012
- Initial release of the Blaze library

Updated