Qrack  9.0
General classical-emulating-quantum development framework
Public Member Functions | Public Attributes | List of all members
Qrack::complex2 Union Reference

SIMD implementation of the double precision complex vector type of 2 complex numbers, only for AVX Apply2x2. More...

#include <complex16x2simd.hpp>

Public Member Functions

 complex2 ()
 
 complex2 (const __m256d &cm2)
 
 complex2 (const complex2 &cm2)
 
 complex2 (const std::complex< double > &cm1, const std::complex< double > &cm2)
 
 complex2 (const double &r1, const double &i1, const double &r2, const double &i2)
 
std::complex< double > c (const size_t &i) const
 
complex2 operator+ (const complex2 &other) const
 
complex2 operator+= (const complex2 &other)
 
complex2 operator- (const complex2 &other) const
 
complex2 operator-= (const complex2 &other)
 
complex2 operator* (const complex2 &other) const
 
complex2 operator*= (const complex2 &other)
 
complex2 operator* (const double &rhs) const
 
complex2 operator- () const
 
complex2 operator*= (const double &other)
 
 complex2 ()
 
 complex2 (const __m128 &cm2)
 
 complex2 (const complex2 &cm2)
 
 complex2 (const std::complex< float > &cm1, const std::complex< float > &cm2)
 
 complex2 (const float &r1, const float &i1, const float &r2, const float &i2)
 
std::complex< float > c (const size_t &i) const
 
complex2 operator+ (const complex2 &other) const
 
complex2 operator+= (const complex2 &other)
 
complex2 operator- (const complex2 &other) const
 
complex2 operator-= (const complex2 &other)
 
complex2 operator* (const complex2 &other) const
 
complex2 operator*= (const complex2 &other)
 
complex2 operator* (const float &rhs) const
 
complex2 operator- () const
 
complex2 operator*= (const float &other)
 

Public Attributes

__m256d c2
 
double f [4]
 
__m128 c2
 
float f [4]
 

Detailed Description

SIMD implementation of the double precision complex vector type of 2 complex numbers, only for AVX Apply2x2.

SIMD implementation of the float precision complex vector type of 2 complex numbers, only for COMPLEX_X_2 Apply2x2.

Constructor & Destructor Documentation

◆ complex2() [1/10]

Qrack::complex2::complex2 ( )
inline

◆ complex2() [2/10]

Qrack::complex2::complex2 ( const __m256d &  cm2)
inline

◆ complex2() [3/10]

Qrack::complex2::complex2 ( const complex2 cm2)
inline

◆ complex2() [4/10]

Qrack::complex2::complex2 ( const std::complex< double > &  cm1,
const std::complex< double > &  cm2 
)
inline

◆ complex2() [5/10]

Qrack::complex2::complex2 ( const double &  r1,
const double &  i1,
const double &  r2,
const double &  i2 
)
inline

◆ complex2() [6/10]

Qrack::complex2::complex2 ( )
inline

◆ complex2() [7/10]

Qrack::complex2::complex2 ( const __m128 &  cm2)
inline

◆ complex2() [8/10]

Qrack::complex2::complex2 ( const complex2 cm2)
inline

◆ complex2() [9/10]

Qrack::complex2::complex2 ( const std::complex< float > &  cm1,
const std::complex< float > &  cm2 
)
inline

◆ complex2() [10/10]

Qrack::complex2::complex2 ( const float &  r1,
const float &  i1,
const float &  r2,
const float &  i2 
)
inline

Member Function Documentation

◆ c() [1/2]

std::complex<double> Qrack::complex2::c ( const size_t &  i) const
inline

◆ c() [2/2]

std::complex<float> Qrack::complex2::c ( const size_t &  i) const
inline

◆ operator*() [1/4]

complex2 Qrack::complex2::operator* ( const complex2 other) const
inline

◆ operator*() [2/4]

complex2 Qrack::complex2::operator* ( const complex2 other) const
inline

◆ operator*() [3/4]

complex2 Qrack::complex2::operator* ( const double &  rhs) const
inline

◆ operator*() [4/4]

complex2 Qrack::complex2::operator* ( const float &  rhs) const
inline

◆ operator*=() [1/4]

complex2 Qrack::complex2::operator*= ( const complex2 other)
inline

◆ operator*=() [2/4]

complex2 Qrack::complex2::operator*= ( const complex2 other)
inline

◆ operator*=() [3/4]

complex2 Qrack::complex2::operator*= ( const double &  other)
inline

◆ operator*=() [4/4]

complex2 Qrack::complex2::operator*= ( const float &  other)
inline

◆ operator+() [1/2]

complex2 Qrack::complex2::operator+ ( const complex2 other) const
inline

◆ operator+() [2/2]

complex2 Qrack::complex2::operator+ ( const complex2 other) const
inline

◆ operator+=() [1/2]

complex2 Qrack::complex2::operator+= ( const complex2 other)
inline

◆ operator+=() [2/2]

complex2 Qrack::complex2::operator+= ( const complex2 other)
inline

◆ operator-() [1/4]

complex2 Qrack::complex2::operator- ( ) const
inline

◆ operator-() [2/4]

complex2 Qrack::complex2::operator- ( ) const
inline

◆ operator-() [3/4]

complex2 Qrack::complex2::operator- ( const complex2 other) const
inline

◆ operator-() [4/4]

complex2 Qrack::complex2::operator- ( const complex2 other) const
inline

◆ operator-=() [1/2]

complex2 Qrack::complex2::operator-= ( const complex2 other)
inline

◆ operator-=() [2/2]

complex2 Qrack::complex2::operator-= ( const complex2 other)
inline

Member Data Documentation

◆ c2 [1/2]

__m256d Qrack::complex2::c2

◆ c2 [2/2]

__m128 Qrack::complex2::c2

◆ f [1/2]

double Qrack::complex2::f[4]

◆ f [2/2]

float Qrack::complex2::f[4]

The documentation for this union was generated from the following files: