alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
Complex.hpp File Reference
#include "alpaka/core/common.hpp"
#include "alpaka/math.hpp"
#include "alpaka/math/floatEqualExact.hpp"
#include "alpaka/trait.hpp"
#include "math.hpp"
#include <cmath>
#include <complex>
#include <iostream>
#include <type_traits>

Go to the source code of this file.

Classes

class  alpaka::math::internal::Complex< T >
 Implementation of a complex number useable on host and device. More...
struct  alpaka::trait::GetValueType< math::internal::Complex< T > >

Namespaces

namespace  alpaka
 main alpaka namespace.
namespace  alpaka::math
namespace  alpaka::math::internal
namespace  alpaka::trait

Functions

template<typename T, typename TChar, typename TTraits>
std::basic_ostream< TChar, TTraits > & alpaka::math::internal::operator<< (std::basic_ostream< TChar, TTraits > &os, Complex< T > const &x)
 Host-only output of a complex number.
template<typename T, typename TChar, typename TTraits>
std::basic_istream< TChar, TTraits > & alpaka::math::internal::operator>> (std::basic_istream< TChar, TTraits > &is, Complex< T > const &x)
 Host-only input of a complex number.
template<typename T>
constexpr bool alpaka::math::internal::operator!= (Complex< T > const &lhs, Complex< T > const &rhs)
 Inequality of two complex numbers.
template<typename T>
constexpr bool alpaka::math::internal::operator!= (Complex< T > const &lhs, T const &rhs)
 Inequality of a complex and a real number.
template<typename T>
constexpr bool alpaka::math::internal::operator!= (T const &lhs, Complex< T > const &rhs)
 Inequality of a real and a complex number.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator* (Complex< T > const &lhs, Complex< T > const &rhs)
 Muptiplication of two complex numbers.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator* (Complex< T > const &lhs, T const &rhs)
 Muptiplication of a complex and a real number.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator* (T const &lhs, Complex< T > const &rhs)
 Muptiplication of a real and a complex number.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator+ (Complex< T > const &lhs, Complex< T > const &rhs)
 Addition of two complex numbers.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator+ (Complex< T > const &lhs, T const &rhs)
 Addition of a complex and a real number.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator+ (Complex< T > const &val)
 Host-device arithmetic operations matching std::complex<T>.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator+ (T const &lhs, Complex< T > const &rhs)
 Addition of a real and a complex number.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator- (Complex< T > const &lhs, Complex< T > const &rhs)
 Subtraction of two complex numbers.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator- (Complex< T > const &lhs, T const &rhs)
 Subtraction of a complex and a real number.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator- (Complex< T > const &val)
 Unary minus.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator- (T const &lhs, Complex< T > const &rhs)
 Subtraction of a real and a complex number.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator/ (Complex< T > const &lhs, Complex< T > const &rhs)
 Division of two complex numbers.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator/ (Complex< T > const &lhs, T const &rhs)
 Division of complex and a real number.
template<typename T>
constexpr Complex< T > alpaka::math::internal::operator/ (T const &lhs, Complex< T > const &rhs)
 Division of a real and a complex number.
template<typename T>
constexpr bool alpaka::math::internal::operator== (Complex< T > const &lhs, Complex< T > const &rhs)
 Equality of two complex numbers.
template<typename T>
constexpr bool alpaka::math::internal::operator== (Complex< T > const &lhs, T const &rhs)
 Equality of a complex and a real number.
template<typename T>
constexpr bool alpaka::math::internal::operator== (T const &lhs, Complex< T > const &rhs)
 Equality of a real and a complex number.
template<typename T>
constexpr T alpaka::math::internal::abs (Complex< T > const &x)
 Host-only math functions matching std::complex<T>.
template<typename T>
constexpr Complex< T > alpaka::math::internal::acos (Complex< T > const &x)
 Arc cosine.
template<typename T>
constexpr Complex< T > alpaka::math::internal::acosh (Complex< T > const &x)
 Arc hyperbolic cosine.
template<typename T>
constexpr T alpaka::math::internal::arg (Complex< T > const &x)
 Argument.
template<typename T>
constexpr Complex< T > alpaka::math::internal::asin (Complex< T > const &x)
 Arc sine.
template<typename T>
constexpr Complex< T > alpaka::math::internal::asinh (Complex< T > const &x)
 Arc hyperbolic sine.
template<typename T>
constexpr Complex< T > alpaka::math::internal::atan (Complex< T > const &x)
 Arc tangent.
template<typename T>
constexpr Complex< T > alpaka::math::internal::atanh (Complex< T > const &x)
 Arc hyperbolic tangent.
template<typename T>
constexpr Complex< T > alpaka::math::internal::conj (Complex< T > const &x)
 Complex conjugate.
template<typename T>
constexpr Complex< T > alpaka::math::internal::cos (Complex< T > const &x)
 Cosine.
template<typename T>
constexpr Complex< T > alpaka::math::internal::cosh (Complex< T > const &x)
 Hyperbolic cosine.
template<typename T>
constexpr Complex< T > alpaka::math::internal::exp (Complex< T > const &x)
 Exponential.
template<typename T>
constexpr Complex< T > alpaka::math::internal::log (Complex< T > const &x)
 Natural logarithm.
template<typename T>
constexpr Complex< T > alpaka::math::internal::log10 (Complex< T > const &x)
 Base 10 logarithm.
template<typename T>
constexpr T alpaka::math::internal::norm (Complex< T > const &x)
 Squared magnitude.
template<typename T>
constexpr Complex< T > alpaka::math::internal::polar (T const &r, T const &theta=T())
 Get a complex number with given magnitude and phase angle.
template<typename T, typename U>
constexpr auto alpaka::math::internal::pow (Complex< T > const &x, Complex< U > const &y)
 Complex power of a complex number.
template<typename T, typename U>
constexpr auto alpaka::math::internal::pow (Complex< T > const &x, U const &y)
 Real power of a complex number.
template<typename T, typename U>
constexpr auto alpaka::math::internal::pow (T const &x, Complex< U > const &y)
 Complex power of a real number.
template<typename T>
constexpr Complex< T > alpaka::math::internal::proj (Complex< T > const &x)
 Projection onto the Riemann sphere.
template<typename T>
constexpr Complex< T > alpaka::math::internal::sin (Complex< T > const &x)
 Sine.
template<typename T>
constexpr Complex< T > alpaka::math::internal::sinh (Complex< T > const &x)
 Hyperbolic sine.
template<typename T>
constexpr Complex< T > alpaka::math::internal::sqrt (Complex< T > const &x)
 Square root.
template<typename T>
constexpr Complex< T > alpaka::math::internal::tan (Complex< T > const &x)
 Tangent.
template<typename T>
constexpr Complex< T > alpaka::math::internal::tanh (Complex< T > const &x)
 Hyperbolic tangent.