Support the vectorization of integral complex numbers

Issue #21 resolved
Klaus Iglberger created an issue

Description

In order to achieve maximum performance on all platforms the Blaze library provides support for the vectorization of single and double precision complex numbers. However, it is currently missing the support for the vectorization of integral complex numbers:

blaze::DynamicVector< complex<float> > a, b, c;
c = a + b;  // Fully vectorized, achieves maximum performance

blaze::DynamicVector< complex<int> > x, y, z;
z = x + y;  // Not vectorized, only achieves scalar performance

Since there are also use cases for integral complex numbers, Blaze should provide full vectorization for all kinds of integral complex numbers.

Tasks

  • provide support for the vectorization of integral complex numbers with SSE, AVX(2), and AVX512 (aka MIC)
  • provide a full documentation of the vectorization
  • ensure compatibility with all existing vector and matrix classes
  • ensure compatibility with all existing vector and matrix expressions
  • guarantee maximum performance of the vectorization
  • ensure correctness for all supported compilers and platforms

Comments (3)

  1. Klaus Iglberger reporter

    The feature has been implemented, tested, optimized and documented as required. It is immediately available via cloning the Blaze repository and will be officially released in Blaze 2.5.

  2. Log in to comment