Kokkos Core Kernels Package
Version of the Day
|
Partial reimplementation of std::complex that works as the result of a Kokkos::parallel_reduce. More...
#include <Kokkos_Complex.hpp>
Public Types | |
using | value_type = RealType |
The type of the real or imaginary parts of this complex number. More... | |
Public Member Functions | |
KOKKOS_DEFAULTED_FUNCTION | complex () noexcept=default |
Default constructor (initializes both real and imaginary parts to zero). More... | |
KOKKOS_DEFAULTED_FUNCTION | complex (const complex &) noexcept=default |
Copy constructor. More... | |
template<class RType , typename std::enable_if< std::is_convertible< RType, RealType >::value, int >::type = 0> | |
KOKKOS_INLINE_FUNCTION | complex (const complex< RType > &other) noexcept |
Conversion constructor from compatible RType. More... | |
KOKKOS_INLINE_FUNCTION | complex (const std::complex< RealType > &src) noexcept |
Conversion constructor from std::complex. More... | |
operator std::complex< RealType > () const noexcept | |
Conversion operator to std::complex. More... | |
KOKKOS_INLINE_FUNCTION | complex (const RealType &val) noexcept |
Constructor that takes just the real part, and sets the imaginary part to zero. More... | |
KOKKOS_INLINE_FUNCTION | complex (const RealType &re, const RealType &im) noexcept |
Constructor that takes the real and imaginary parts. More... | |
KOKKOS_INLINE_FUNCTION complex & | operator= (const RealType &val) noexcept |
Assignment operator (from a real number). More... | |
complex & | operator= (const std::complex< RealType > &src) noexcept |
Assignment operator from std::complex. More... | |
KOKKOS_INLINE_FUNCTION KOKKOS_CONSTEXPR_14 RealType & | imag () noexcept |
The imaginary part of this complex number. More... | |
KOKKOS_INLINE_FUNCTION KOKKOS_CONSTEXPR_14 RealType & | real () noexcept |
The real part of this complex number. More... | |
KOKKOS_INLINE_FUNCTION constexpr RealType | imag () const noexcept |
The imaginary part of this complex number. More... | |
KOKKOS_INLINE_FUNCTION constexpr RealType | real () const noexcept |
The real part of this complex number. More... | |
KOKKOS_INLINE_FUNCTION KOKKOS_CONSTEXPR_14 void | imag (RealType v) noexcept |
Set the imaginary part of this complex number. More... | |
KOKKOS_INLINE_FUNCTION KOKKOS_CONSTEXPR_14 void | real (RealType v) noexcept |
Set the real part of this complex number. More... | |
template<class RType , typename std::enable_if< std::is_convertible< RType, RealType >::value, int >::type = 0> | |
KOKKOS_INLINE_FUNCTION | complex (const volatile complex< RType > &src) noexcept |
Copy constructor from volatile. More... | |
template<class Complex , typename std::enable_if< std::is_same< Complex, complex >::value, int >::type = 0> | |
KOKKOS_INLINE_FUNCTION void | operator= (const Complex &src) volatilenoexcept |
Assignment operator, for volatile *this and nonvolatile input. More... | |
template<class Complex , typename std::enable_if< std::is_same< Complex, complex >::value, int >::type = 0> | |
KOKKOS_INLINE_FUNCTION volatile complex & | operator= (const volatile Complex &src) volatilenoexcept |
Assignment operator, volatile LHS and volatile RHS. More... | |
template<class Complex , typename std::enable_if< std::is_same< Complex, complex >::value, int >::type = 0> | |
KOKKOS_INLINE_FUNCTION complex & | operator= (const volatile Complex &src) noexcept |
Assignment operator, volatile RHS and non-volatile LHS. More... | |
KOKKOS_INLINE_FUNCTION void | operator= (const volatile RealType &val) noexcept |
Assignment operator (from a volatile real number). More... | |
KOKKOS_INLINE_FUNCTION complex & | operator= (const RealType &val) volatilenoexcept |
Assignment operator volatile LHS and non-volatile RHS. More... | |
KOKKOS_INLINE_FUNCTION complex & | operator= (const volatile RealType &val) volatilenoexcept |
Assignment operator volatile LHS and volatile RHS. More... | |
KOKKOS_INLINE_FUNCTION volatile RealType & | imag () volatilenoexcept |
The imaginary part of this complex number (volatile overload). More... | |
KOKKOS_INLINE_FUNCTION volatile RealType & | real () volatilenoexcept |
The real part of this complex number (volatile overload). More... | |
KOKKOS_INLINE_FUNCTION RealType | imag () const volatilenoexcept |
The imaginary part of this complex number (volatile overload). More... | |
KOKKOS_INLINE_FUNCTION RealType | real () const volatilenoexcept |
The real part of this complex number (volatile overload). More... | |
Partial reimplementation of std::complex that works as the result of a Kokkos::parallel_reduce.
RealType | The type of the real and imaginary parts of the complex number. As with std::complex, this is only defined for float , double , and long double . The latter is currently forbidden in CUDA device kernels. |
Definition at line 62 of file Kokkos_Complex.hpp.
using Kokkos::complex< RealType >::value_type = RealType |
The type of the real or imaginary parts of this complex number.
Definition at line 73 of file Kokkos_Complex.hpp.
|
defaultnoexcept |
Default constructor (initializes both real and imaginary parts to zero).
|
defaultnoexcept |
Copy constructor.
|
inlinenoexcept |
Conversion constructor from compatible RType.
Definition at line 90 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Conversion constructor from std::complex.
This constructor cannot be called in a CUDA device function, because std::complex's methods and nonmember functions are not marked as CUDA device functions.
Definition at line 102 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Constructor that takes just the real part, and sets the imaginary part to zero.
Definition at line 124 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Constructor that takes the real and imaginary parts.
Definition at line 129 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Copy constructor from volatile.
Definition at line 292 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Conversion operator to std::complex.
This operator cannot be called in a CUDA device function, because std::complex's methods and nonmember functions are not marked as CUDA device functions.
Definition at line 118 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Assignment operator (from a real number).
Definition at line 132 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Assignment operator from std::complex.
This constructor cannot be called in a CUDA device function, because std::complex's methods and nonmember functions are not marked as CUDA device functions.
Definition at line 143 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The imaginary part of this complex number.
Definition at line 150 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The real part of this complex number.
Definition at line 154 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The imaginary part of this complex number.
Definition at line 158 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The real part of this complex number.
Definition at line 162 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Set the imaginary part of this complex number.
Definition at line 167 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Set the real part of this complex number.
Definition at line 172 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Assignment operator, for volatile *this
and nonvolatile input.
src | [in] Input; right-hand side of the assignment. |
This operator returns void
instead of volatile complex&
. See Kokkos Issue #177 for the explanation. In practice, this means that you should not chain assignments with volatile lvalues.
Definition at line 321 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Assignment operator, volatile LHS and volatile RHS.
Definition at line 344 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Assignment operator, volatile RHS and non-volatile LHS.
Definition at line 367 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Assignment operator (from a volatile real number).
Definition at line 378 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Assignment operator volatile LHS and non-volatile RHS.
Definition at line 386 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Assignment operator volatile LHS and volatile RHS.
Definition at line 395 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The imaginary part of this complex number (volatile overload).
Definition at line 404 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The real part of this complex number (volatile overload).
Definition at line 408 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The imaginary part of this complex number (volatile overload).
Definition at line 412 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The real part of this complex number (volatile overload).
Definition at line 416 of file Kokkos_Complex.hpp.