Skip to content

Fastor V0.6.2

Compare
Choose a tag to compare
@romeric romeric released this 18 May 17:07
· 164 commits to master since this release

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

  1. 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
  2. conj function introduced for computing the conjugate of a complex valued tensor expression
  3. arg function introduced for computing the argument or phase angle of a complex valued tensor expression
  4. ctranspose and ctrans functions introduced for computing the conjugate transpose a complex valued tensor expression
  5. 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 is is_equal method of the tensor is now transformed to isequal working on expressisons
  6. Performance optimisations for creating tensors of tensors (such as Tensor<Tensor<double,3,3>,2,2>) or tensors of any non-primitive types (such as Tensor<std::vector<double>,2,2>). matmul and tmatmul functions have been specifically tuned to work well with such composite types
  7. Fix an issue in tmatmul that was causing compilation error on Windows with MSVC 2019