thrust::complex
Defined in thrust/complex.h
-
template<typename T>
struct complex complex
is the Thrust equivalent tostd::complex
. It is functionally identical to it, but can also be used in device code whichstd::complex
currently cannot.- Template Parameters
T – The type used to hold the real and imaginary parts. Should be
float
ordouble
. Others types are not supported.
Public Functions
-
complex(const T &re)
Construct a complex number with an imaginary part of 0.
- Parameters
re – The real part of the number.
-
complex(const T &re, const T &im)
Construct a complex number from its real and imaginary parts.
- Parameters
re – The real part of the number.
im – The imaginary part of the number.
-
complex() = default
Default construct a complex number.
-
complex(const complex<T> &z) = default
This copy constructor copies from a
complex
with a type that is convertible to thiscomplex's
value_type
.- Parameters
z – The
complex
to copy from.
-
template<typename U>
complex(const complex<U> &z) This converting copy constructor copies from a
complex
with a type that is convertible to thiscomplex's
value_type
.- Parameters
z – The
complex
to copy from.- Template Parameters
U – is convertible to
value_type
.
-
complex(const std::complex<T> &z)
This converting copy constructor copies from a
std::complex
with a type that is convertible to thiscomplex's
value_type
.- Parameters
z – The
complex
to copy from.
-
template<typename U>
complex(const std::complex<U> &z) This converting copy constructor copies from a
std::complex
with a type that is convertible to thiscomplex's
value_type
.- Parameters
z – The
complex
to copy from.- Template Parameters
U – is convertible to
value_type
.
-
complex &operator=(const T &re)
Assign
re
to the real part of thiscomplex
and set the imaginary part to 0.- Parameters
re – The real part of the number.
-
complex &operator=(const complex<T> &z) = default
Assign
z.real()
andz.imag()
to the real and imaginary parts of thiscomplex
respectively.- Parameters
z – The
complex
to copy from.
-
template<typename U>
complex &operator=(const complex<U> &z) Assign
z.real()
andz.imag()
to the real and imaginary parts of thiscomplex
respectively.- Parameters
z – The
complex
to copy from.- Template Parameters
U – is convertible to
value_type
.
-
complex &operator=(const std::complex<T> &z)
Assign
z.real()
andz.imag()
to the real and imaginary parts of thiscomplex
respectively.- Parameters
z – The
complex
to copy from.
-
template<typename U>
complex &operator=(const std::complex<U> &z) Assign
z.real()
andz.imag()
to the real and imaginary parts of thiscomplex
respectively.- Parameters
z – The
complex
to copy from.- Template Parameters
U – is convertible to
value_type
.
-
template<typename U>
complex<T> &operator+=(const complex<U> &z) Adds a
complex
to thiscomplex
and assigns the result to thiscomplex
.- Parameters
z – The
complex
to be added.- Template Parameters
U – is convertible to
value_type
.
-
template<typename U>
complex<T> &operator-=(const complex<U> &z) Subtracts a
complex
from thiscomplex
and assigns the result to thiscomplex
.- Parameters
z – The
complex
to be subtracted.- Template Parameters
U – is convertible to
value_type
.
-
template<typename U>
complex<T> &operator*=(const complex<U> &z) Multiplies this
complex
by anothercomplex
and assigns the result to thiscomplex
.- Parameters
z – The
complex
to be multiplied.- Template Parameters
U – is convertible to
value_type
.
-
template<typename U>
complex<T> &operator/=(const complex<U> &z) Divides this
complex
by anothercomplex
and assigns the result to thiscomplex
.- Parameters
z – The
complex
to be divided.- Template Parameters
U – is convertible to
value_type
.
-
template<typename U>
complex<T> &operator+=(const U &z) Adds a scalar to this
complex
and assigns the result to thiscomplex
.- Parameters
z – The
complex
to be added.- Template Parameters
U – is convertible to
value_type
.
-
template<typename U>
complex<T> &operator-=(const U &z) Subtracts a scalar from this
complex
and assigns the result to thiscomplex
.- Parameters
z – The scalar to be subtracted.
- Template Parameters
U – is convertible to
value_type
.
-
template<typename U>
complex<T> &operator*=(const U &z) Multiplies this
complex
by a scalar and assigns the result to thiscomplex
.- Parameters
z – The scalar to be multiplied.
- Template Parameters
U – is convertible to
value_type
.
-
template<typename U>
complex<T> &operator/=(const U &z) Divides this
complex
by a scalar and assigns the result to thiscomplex
.- Parameters
z – The scalar to be divided.
- Template Parameters
U – is convertible to
value_type
.
-
inline void real(T re) volatile
Sets the real part of this
complex
.- Parameters
re – The new real part of this
complex
.
-
inline void imag(T im) volatile
Sets the imaginary part of this
complex
.- Parameters
im – The new imaginary part of this
complex.e
-
inline void real(T re)
Sets the real part of this
complex
.- Parameters
re – The new real part of this
complex
.