Binary operator for scalar power.
More...
#include <pow.hpp>
|
| template<typename V = default_vec> |
| using | vec_type = typename V::template vec_type< T > |
| |
|
| static constexpr int | complexity () |
| | Estimate the complexity of operator. More...
|
| |
| static constexpr T | apply (const T &x, E value) noexcept |
| | Apply the unary operator on lhs and rhs. More...
|
| |
| template<typename V = default_vec> |
| static | ETL_STRONG_INLINE (vec_type< V >) load(const vec_type< V > &x |
| | Compute several applications of the operator at a time. More...
|
| |
| template<typename X , typename Y , typename YY > |
| static auto | gpu_compute_hint ([[maybe_unused]] const X &x, [[maybe_unused]] const Y &y, YY &yy) noexcept |
| | Compute the result of the operation using the GPU. More...
|
| |
| template<typename X , typename Y , typename YY > |
| static YY & | gpu_compute (const X &x, [[maybe_unused]] const Y &y, YY &yy) noexcept |
| | Compute the result of the operation using the GPU. More...
|
| |
| static std::string | desc () noexcept |
| | Returns a textual representation of the operator. More...
|
| |
|
| static const vec_type< V > &y | noexcept |
| |
|
auto | t2 = V::mul(y, t1) |
| |
|
|
static constexpr bool | linear = true |
| | Indicates if the operator is linear or not.
|
| |
|
static constexpr bool | thread_safe = true |
| | Indicates if the operator is thread safe or not.
|
| |
|
static constexpr bool | desc_func = true |
| | Indicates if the description must be printed as function.
|
| |
| template<vector_mode_t V> |
| static constexpr bool | vectorizable |
| | Indicates if the expression is vectorizable using the given vector mode. More...
|
| |
| template<typename L , typename R > |
| static constexpr bool | gpu_computable |
| | Indicates if the operator can be computed on GPU. More...
|
| |
template<typename T, typename E>
struct etl::pow_binary_op< T, E >
Binary operator for scalar power.
◆ vec_type
template<typename T , typename E >
template<typename V = default_vec>
The vectorization type for V
◆ apply()
template<typename T , typename E >
Apply the unary operator on lhs and rhs.
- Parameters
-
| x | The left hand side value on which to apply the operator |
| value | The right hand side value on which to apply the operator |
- Returns
- The result of applying the binary operator on lhs and rhs
◆ complexity()
template<typename T , typename E >
Estimate the complexity of operator.
- Returns
- An estimation of the complexity of the operator
◆ desc()
template<typename T , typename E >
Returns a textual representation of the operator.
- Returns
- a string representing the operator
◆ ETL_STRONG_INLINE()
template<typename T , typename E >
template<typename V = default_vec>
Compute several applications of the operator at a time.
- Parameters
-
| x | The left hand side vector |
| y | The right hand side vector |
- Template Parameters
-
- Returns
- a vector containing several results of the operator
◆ gpu_compute()
template<typename T , typename E >
template<typename X , typename Y , typename YY >
| static YY& etl::pow_binary_op< T, E >::gpu_compute |
( |
const X & |
x, |
|
|
[[maybe_unused] ] const Y & |
y, |
|
|
YY & |
yy |
|
) |
| |
|
inlinestaticnoexcept |
Compute the result of the operation using the GPU.
- Parameters
-
| x | The expression of the unary operation |
| y | The expression into which to store the reuslt |
◆ gpu_compute_hint()
template<typename T , typename E >
template<typename X , typename Y , typename YY >
| static auto etl::pow_binary_op< T, E >::gpu_compute_hint |
( |
[[maybe_unused] ] const X & |
x, |
|
|
[[maybe_unused] ] const Y & |
y, |
|
|
YY & |
yy |
|
) |
| |
|
inlinestaticnoexcept |
Compute the result of the operation using the GPU.
- Parameters
-
| x | The expression of the unary operation |
- Returns
- The result of applying the unary operator on x. The result must be a GPU computed expression.
◆ gpu_computable
template<typename T , typename E >
template<typename L , typename R >
Initial value:= (is_single_precision_t<T> && impl::egblas::has_spow_yx) || (is_double_precision_t<T> && impl::egblas::has_dpow_yx)
|| (is_complex_single_t<T> && impl::egblas::has_cpow_yx) || (is_complex_double_t<T> && impl::egblas::has_zpow_yx)
Indicates if the operator can be computed on GPU.
◆ noexcept
template<typename T , typename E >
◆ vectorizable
template<typename T , typename E >
template<vector_mode_t V>
Initial value:
Indicates if the expression is vectorizable using the given vector mode.
- Template Parameters
-
The documentation for this struct was generated from the following file: