44 #ifndef KOKKOS_INNERPRODUCTSPACETRAITS_HPP
45 #define KOKKOS_INNERPRODUCTSPACETRAITS_HPP
161 static KOKKOS_FORCEINLINE_FUNCTION
dot_type dot (
const T& x,
const T& y) {
169 struct InnerProductSpaceTraits<long double>
172 typedef ArithTraits<val_type>::mag_type
mag_type;
186 struct InnerProductSpaceTraits<std::complex<T> >
189 typedef typename ArithTraits<val_type>::mag_type
mag_type;
215 #ifdef HAVE_KOKKOS_QD
217 struct InnerProductSpaceTraits<dd_real>
220 typedef ArithTraits<val_type>::mag_type
mag_type;
232 struct InnerProductSpaceTraits<qd_real>
235 typedef ArithTraits<val_type>::mag_type
mag_type;
245 #endif // HAVE_KOKKOS_QD
250 #endif // KOKKOS_INNERPRODUCTSPACETRAITS_HPP
static KOKKOS_FORCEINLINE_FUNCTION mag_type abs(const T &x)
The absolute value (magnitude) of x.
ArithTraits< T >::mag_type mag_type
The type returned by norm(x) for a value x of type T.
T dot_type
The type returned by dot(x,y) for values x and y of type T.
static KOKKOS_FORCEINLINE_FUNCTION dot_type dot(const T &x, const T &y)
The "dot product" of two values x and y of type T.
T val_type
The type T itself.
Traits class for inner product space operations on type T.
static KOKKOS_FORCEINLINE_FUNCTION mag_type norm(const T &x)
The "norm" (absolute value or magnitude) of a value x of type T.
T mag_type
The type of the magnitude (absolute value) of T.
Declaration and definition of Kokkos::Details::ArithTraits.