| Highly Efficient FFT for Exascale: HeFFTe v2.3
    | 
Custom complex type taking advantage of vectorization A Complex Type intrinsic to HeFFTe that takes advantage of vectorization. It is currently compatible with AVX2 to create 1 double-precision complex, 2 double-precision complex, 2 single-precision complex, or 4 single-precision complex numbers. More...
#include <heffte_stock_complex.h>
| Public Member Functions | |
| Complex (F *const f) | |
| Load from an array of primitives. | |
| Complex (std::initializer_list< F > il) | |
| Load from an initializer list of primitives. | |
| Complex (typename pack< F, L >::type v) | |
| Load from an existing vector pack. | |
| Complex (F x, F y) | |
| Load from real and imaginary parts (repeating for all numbers in pack) | |
| Complex (std::complex< F > const *c) | |
| Load from pointer to existing std::complex numbers. | |
| Complex (std::complex< F > const *c, int stride) | |
| Load from strided pointer to existing std::complex numbers. | |
| Complex (std::initializer_list< std::complex< F >> il) | |
| Load from initializer list of existing std::complex numbers. | |
| Complex () | |
| Default constructor of zeros. | |
| Complex< F, L > | operator+ (Complex< F, L > const &o) | 
| Add with another pack of complex number. | |
| Complex< F, L > | operator- (Complex< F, L > const &o) | 
| Subtract another pack of complex number. | |
| Complex< F, L > | operator* (Complex< F, L > const &o) | 
| Multiply by another pack of complex number. | |
| Complex< F, L > | operator/ (Complex< F, L > const &o) | 
| Divide by another pack of complex number. | |
| Complex< F, L > | operator+= (Complex< F, L > const &o) | 
| Add with and assign another complex number. | |
| Complex< F, L > | operator-= (Complex< F, L > const &o) | 
| Subtract and assign another complex number from this. | |
| Complex< F, L > | operator*= (Complex< F, L > const &o) | 
| Multiply by and assign another complex number. | |
| Complex< F, L > | operator/= (Complex< F, L > const &o) | 
| Divide by and assign another complex number. | |
| Complex< F, L > | operator+ (F o) | 
| Add with a floating point number. | |
| Complex< F, L > | operator- (F o) | 
| Subtract a floating point number. | |
| Complex< F, L > | operator* (F o) | 
| Multiply by a floating point number. | |
| Complex< F, L > | operator/ (F o) | 
| Divide by a floating point number. | |
| Complex< F, L > | operator+= (F o) | 
| Add with and assign a floating point number. | |
| Complex< F, L > | operator-= (F o) | 
| Subtract and assign a floating point number. | |
| Complex< F, L > | operator*= (F o) | 
| Multiply by and assign a floating point number. | |
| Complex< F, L > | operator/= (F o) | 
| Complex< F, L > | fmadd (Complex< F, L > const &y, Complex< F, L > const &z) | 
| Fused multiply add. | |
| Complex< F, L > | fmsub (Complex< F, L > const &y, Complex< F, L > const &z) | 
| Fused multiply add. | |
| Complex< F, L > | operator- () | 
| Negate the complex number. | |
| void | modulus (F *dest) | 
| Store the modulus of the complex number in an array of size L/2. | |
| pack< F, L >::type | modulus () | 
| Return the modulus of the complex number in a vector pack. | |
| Complex< F, L > | conjugate () | 
| Conjugate the current complex number. | |
| Complex< F, L > | __mul_i () | 
| Multiply the complex number by i. | |
| Complex< F, L > | __mul_neg_i () | 
| Multiply the complex number by i. | |
| void | get (F *dest) | 
| Store the Complex number in an array of length L. | |
| std::complex< F > | operator[] (std::size_t idx) | 
| Access the ith Complex number as a std::complex. | |
| pack< F, L >::type | get () const | 
| Return a vector pack representation of this number. | |
Custom complex type taking advantage of vectorization A Complex Type intrinsic to HeFFTe that takes advantage of vectorization. It is currently compatible with AVX2 to create 1 double-precision complex, 2 double-precision complex, 2 single-precision complex, or 4 single-precision complex numbers.