namespace
SushiBLAS::Kernels
- Declared in
include/SushiBLAS/kernels/blas/conjugation.hpp
Contains
SushiBLAS::Kernels::AccumulatorOfSushiBLAS::Kernels::AccumulatorOf< sycl::half >SushiBLAS::Kernels::ChannelBiasEpilogueSushiBLAS::Kernels::ConjugatedSushiBLAS::Kernels::GemmIdentityEpilogueSushiBLAS::Kernels::OperandAccessSushiBLAS::Kernels::RealOfSushiBLAS::Kernels::RealOf< std::complex< R > >SushiBLAS::Kernels::ReferenceAccumulatorOfSushiBLAS::Kernels::ReferenceAccumulatorOf< std::complex< R > >SushiBLAS::Kernels::ReferenceSumSushiBLAS::Kernels::RunningSolutionSushiBLAS::Kernels::UnconjugatedSushiBLAS::Kernels::ReferenceSushiBLAS::Kernels::SYCL
Typedefs
template <typename T, typename Conj>
using SushiBLAS::Kernels::ConjugationFor = std::conditional_t<Core::is_complex_v<T>, Conj, Unconjugated>Names the policy a kernel is instantiated with for element type T.
Returns
Conj for a complex T, Unconjugated for a real one.
template <typename T, typename Conj>
using SushiBLAS::Kernels::RankUpdateScalar = std::conditional_t<std::is_same_v<Conj, Conjugated>, RealType<T>, T>Names the type of alpha and beta in a rank-1 or rank-k update under a policy.
Returns
The real component type under Conjugated (her, herk), T otherwise (syr, syrk).
template <typename T>
using SushiBLAS::Kernels::Accumulator = typename AccumulatorOf<T>::typeShorthand for AccumulatorOf<T>::type.
template <typename T>
using SushiBLAS::Kernels::RealType = typename RealOf<T>::typeShorthand for RealOf<T>::type.
template <typename T>
using SushiBLAS::Kernels::ReferenceAccumulator = typename ReferenceAccumulatorOf<T>::typeShorthand for ReferenceAccumulatorOf<T>::type.
Functions
constexpr OperandAccess operand_access(Core::Layout layout, Core::Transpose trans, int64_t ld) noexceptResolves a layout, a Transpose and a leading dimension into an OperandAccess.
See also
include/SushiBLAS/kernels/README.md
template <typename T>
constexpr T conjugate(T value) noexceptReturns a real value unchanged.
template <typename R>
constexpr std::complex< R > conjugate(const std::complex< R > &value) noexceptReturns the complex conjugate of value.
template <typename T>
constexpr T conjugate_if(bool enabled, T value) noexceptReturns a real value unchanged, whatever enabled is.
template <typename R>
constexpr std::complex< R > conjugate_if(bool enabled, const std::complex< R > &value) noexceptReturns the conjugate of value when enabled is true, value otherwise.
template <typename T>
constexpr T real_part(T value) noexceptReturns a real value unchanged.
template <typename R>
constexpr std::complex< R > real_part(const std::complex< R > &value) noexceptReturns value with its imaginary part set to zero, in the complex type.
template <typename T>
constexpr T multiply(T a, T b) noexceptReturns a * b for two real values.
template <typename R>
constexpr std::complex< R > multiply(const std::complex< R > &a, const std::complex< R > &b) noexceptReturns the complex product a * b by the four-product formula.
See also
include/SushiBLAS/support/README.md
template <typename R>
constexpr std::complex< R > multiply(R a, const std::complex< R > &b) noexceptReturns a complex value scaled by a real factor, component by component.
template <typename T>
constexpr T divide(T a, T b) noexceptReturns a / b for two real values.
template <typename R>
constexpr std::complex< R > divide(const std::complex< R > &a, const std::complex< R > &b) noexceptReturns the complex quotient a / b by Smith's algorithm.
Returns
NaN components when b is zero.
See also
include/SushiBLAS/support/README.md

