35#ifndef _BLAZE_MATH_FUNCTORS_BIND2ND_H_
36#define _BLAZE_MATH_FUNCTORS_BIND2ND_H_
74 constexpr Bind2nd(
const OP& op,
const A2& a2 )
87 template<
typename A1,
typename... Args >
90 return op_( std::forward<A1>( a1 ),
a2_, std::forward<Args>( args )... );
99 template<
typename A1,
typename... Args >
118 template<
typename A1,
typename... Args >
121 return op_.load( std::forward<A1>( a1 ),
set(
a2_ ), std::forward<Args>( args )... );
172template<
typename OP,
typename A2,
typename T >
173struct YieldsUniform<Bind2nd<OP,A2>,T>
174 :
public YieldsUniform<OP,T>
190template<
typename OP,
typename A2,
typename MT >
191struct YieldsSymmetric<Bind2nd<OP,A2>,MT>
192 :
public YieldsSymmetric<OP,MT>
Header file for the IsSIMDEnabled type trait.
Header file for the SIMD set functionality.
Header file for the YieldsSymmetric type trait.
constexpr Bind2nd< OP, A2 > bind2nd(const OP &op, const A2 &a2)
Binds the given object/value to the 2nd parameter of the given operation.
Definition: Bind2nd.h:155
constexpr bool IsSIMDEnabled_v
Auxiliary variable template for the IsSIMDEnabled type trait.
Definition: IsSIMDEnabled.h:129
BLAZE_ALWAYS_INLINE const EnableIf_t< IsIntegral_v< T > &&HasSize_v< T, 1UL >, If_t< IsSigned_v< T >, SIMDint8, SIMDuint8 > > set(T value) noexcept
Sets all values in the vector to the given 1-byte integral value.
Definition: Set.h:75
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Generic wrapper for an operation with fixed 2nd argument.
Definition: Bind2nd.h:66
A2 a2_
The 2nd argument.
Definition: Bind2nd.h:128
static constexpr bool paddingEnabled()
Returns whether the operation supports padding, i.e. whether it can deal with zeros.
Definition: Bind2nd.h:108
static constexpr bool simdEnabled()
Returns whether SIMD is enabled for the specified data types Ts.
Definition: Bind2nd.h:100
BLAZE_ALWAYS_INLINE decltype(auto) load(A1 &&a1, Args &&... args) const
Returns the result of the wrapped operation for the given SIMD vectors.
Definition: Bind2nd.h:119
OP op_
The wrapped operation.
Definition: Bind2nd.h:127
constexpr Bind2nd(const OP &op, const A2 &a2)
Constructor of the Bind2nd functor.
Definition: Bind2nd.h:74
System settings for the inline keywords.