Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
amrex::simd::stdx Namespace Reference

Functions

__host__ __device__ bool any_of (bool const v)
 
template<typename T >
__host__ __device__ detail::where_expression< T > where (bool const mask, T &value)
 
template<typename T >
__host__ __device__ T select (bool const mask, T const &true_val, T const &false_val)
 

Function Documentation

◆ any_of()

__host__ __device__ bool amrex::simd::stdx::any_of ( bool const  v)
inline

True if the boolean value is true (scalar identity fallback for simd any_of)

Example:

// Works for both simd_mask and scalar bool:
auto mask = a > b;
Array4< int const > mask
Definition AMReX_InterpFaceRegister.cpp:93
__host__ __device__ bool any_of(bool const v)
Definition AMReX_SIMD.H:84
See also
https://en.cppreference.com/w/cpp/experimental/simd/any_of

◆ select()

template<typename T >
__host__ __device__ T amrex::simd::stdx::select ( bool const  mask,
T const &  true_val,
T const &  false_val 
)
inline

Vectorized ternary operator (scalar fallback for simd select)

See also
select in the AMREX_USE_SIMD path above
C++26 std::simd select

◆ where()

template<typename T >
__host__ __device__ detail::where_expression< T > amrex::simd::stdx::where ( bool const  mask,
T &  value 
)
inline

Masked assignment expression (scalar fallback for simd where)

Returns an expression object whose assignment operator conditionally updates value only when mask is true.

Example:

// Works for both simd<T> and scalar T:
auto mask = b > T(0);
T result = T(0);
amrex::simd::stdx::where(mask, result) = a / b;
__host__ __device__ detail::where_expression< T > where(bool const mask, T &value)
Definition AMReX_SIMD.H:120
See also
https://en.cppreference.com/w/cpp/experimental/simd/where