16template <
typename Fr>
inline constexpr bool simd_supported_v = simd_available_v<typename Fr::Params>;
39 std::array<size_t, N>
idx;
61 for (
size_t k = 0; k <
N; ++k) {
98template <
size_t N,
typename Fr,
typename K>
99[[gnu::always_inline]]
inline void vectorized_for(
size_t start,
size_t end, K&& kernel)
103 if constexpr (simd_supported_v<Fr>) {
113 while (i +
N <= end) {
126 for (
size_t i = start; i < end; ++i) {
144template <
size_t N,
typename Fr,
typename P,
typename K>
149 if constexpr (simd_supported_v<Fr>) {
152 for (
size_t i = start; i < end; ++i) {
154 buf.
idx[count++] = i;
162 for (
size_t k = 0; k < count; ++k) {
168 for (
size_t i = start; i < end; ++i) {
Entry point for Barretenberg command-line interface.
void vectorized_for(size_t start, size_t end, K &&kernel)
constexpr size_t VECTOR_FIELD_WIDTH
constexpr bool simd_supported_v
constexpr ScalarIndex shift(ScalarIndex ctx, size_t d)
void vectorized_for_if(size_t start, size_t end, P &&predicate, K &&kernel)
bb::VectorAffineElementPushSpan< BaseParams > out
std::array< size_t, N > idx