Fastor V0.6.2
Fastor V0.6.2 is another incremental change over V0.6 release that introduced a significant overhaul in Fastor's internal design and exposed API. This release includes
- SIMD support for complex numbers and complex valued arithmetics starting from SSE2 all the way to AVX512. The SIMD implementation for complex numbers is written with optimisation and specifically
FMA
in mind and it delivers performance similar to Intel's MKL JIT for complex matrix-matrix multiplication and so on. Comprehensive unittests are added for SIMD complex valued arithmetics conj
function introduced for computing the conjugate of a complex valued tensor expressionarg
function introduced for computing the argument or phase angle of a complex valued tensor expressionctranspose
andctrans
functions introduced for computing the conjugate transpose a complex valued tensor expression- All boolean tensor methods such as
isequal
,issymmetric
etc are now implemented as free functions working on tensor expressions instead of tensors. There is no longer an underscore in the name of these functions that isis_equal
method of the tensor is now transformed toisequal
working on expressisons - Performance optimisations for creating tensors of tensors (such as
Tensor<Tensor<double,3,3>,2,2>
) or tensors of any non-primitive types (such asTensor<std::vector<double>,2,2>
).matmul
andtmatmul
functions have been specifically tuned to work well with such composite types - Fix an issue in
tmatmul
that was causing compilation error on Windows with MSVC 2019