Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::simd Namespace Reference

Namespaces

namespace  detail
namespace  backend

Functions

template<typename V>
auto get_lane (const V &v, std::size_t i) noexcept
 Lane i of v; a scalar is its own lane 0.
template<typename V, typename T>
void set_lane (V &v, std::size_t i, T x) noexcept
 Set lane i of v to x; a scalar is its own lane 0.
constexpr std::size_t float_lanes () noexcept
constexpr std::size_t double_lanes () noexcept

Variables

constexpr bool kHasVectorLanes = false
template<typename V>
constexpr std::size_t lane_count
 Number of lanes in V: 1 for a scalar, N for Lanes<T, N>.
constexpr const char * active_backend_name = "inline-scalar"

Function Documentation

◆ double_lanes()

std::size_t pulp::simd::double_lanes ( )
inlineconstexprnoexcept

◆ float_lanes()

std::size_t pulp::simd::float_lanes ( )
inlineconstexprnoexcept

◆ get_lane()

template<typename V>
auto pulp::simd::get_lane ( const V & v,
std::size_t i )
inlinenoexcept

Lane i of v; a scalar is its own lane 0.

◆ set_lane()

template<typename V, typename T>
void pulp::simd::set_lane ( V & v,
std::size_t i,
T x )
inlinenoexcept

Set lane i of v to x; a scalar is its own lane 0.

Variable Documentation

◆ active_backend_name

const char* pulp::simd::active_backend_name = "inline-scalar"
inlineconstexpr

◆ kHasVectorLanes

bool pulp::simd::kHasVectorLanes = false
inlineconstexpr

◆ lane_count

template<typename V>
std::size_t pulp::simd::lane_count
inlineconstexpr
Initial value:
= [] {
if constexpr (std::is_arithmetic_v<V>)
return std::size_t{1};
else
return sizeof(V) / sizeof(V{}[0]);
}()

Number of lanes in V: 1 for a scalar, N for Lanes<T, N>.