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 ()=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 , std::enable_if_t< std::is_convertible_v< RType, RealType >, int > = 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 constexpr RealType & | imag () noexcept |
The imaginary part of this complex number. More... | |
KOKKOS_INLINE_FUNCTION constexpr 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 constexpr void | imag (RealType v) noexcept |
Set the imaginary part of this complex number. More... | |
KOKKOS_INLINE_FUNCTION constexpr void | real (RealType v) noexcept |
Set the real part of this complex number. 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 43 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 59 of file Kokkos_Complex.hpp.
|
default |
Default constructor (initializes both real and imaginary parts to zero).
|
defaultnoexcept |
Copy constructor.
|
inlinenoexcept |
Conversion constructor from compatible RType.
Definition at line 75 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 87 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Constructor that takes just the real part, and sets the imaginary part to zero.
Definition at line 109 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Constructor that takes the real and imaginary parts.
Definition at line 114 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 103 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Assignment operator (from a real number).
Definition at line 117 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 128 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The imaginary part of this complex number.
Definition at line 135 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The real part of this complex number.
Definition at line 139 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The imaginary part of this complex number.
Definition at line 143 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
The real part of this complex number.
Definition at line 147 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Set the imaginary part of this complex number.
Definition at line 151 of file Kokkos_Complex.hpp.
|
inlinenoexcept |
Set the real part of this complex number.
Definition at line 155 of file Kokkos_Complex.hpp.