Krita Source Code Documentation
Loading...
Searching...
No Matches
xsimd::kernel::detail Namespace Reference

Functions

template<class F , class A , class T >
batch< T, Aapply_with_index_and_value (F &&func, batch< T, A > const &self) noexcept
 
template<class F , class A , class T >
batch< T, Aapply_with_value (F &&func, batch< T, A > const &self) noexcept
 

Function Documentation

◆ apply_with_index_and_value()

template<class F , class A , class T >
batch< T, A > xsimd::kernel::detail::apply_with_index_and_value ( F && func,
batch< T, A > const & self )
inlinenoexcept

Definition at line 91 of file xsimd_generic_details.hpp.

92{
93 alignas(A::alignment()) std::array<T, batch<T, A>::size> self_buffer;
94 self.store_aligned(self_buffer.data());
95 for (std::size_t i = 0; i < batch<T, A>::size; ++i) {
96 self_buffer[i] = func(i, self_buffer[i]);
97 }
98 return batch<T, A>::load_aligned(self_buffer.data());
99}

◆ apply_with_value()

template<class F , class A , class T >
batch< T, A > xsimd::kernel::detail::apply_with_value ( F && func,
batch< T, A > const & self )
inlinenoexcept

Definition at line 80 of file xsimd_generic_details.hpp.

81{
82 alignas(A::alignment()) std::array<T, batch<T, A>::size> self_buffer;
83 self.store_aligned(self_buffer.data());
84 for (std::size_t i = 0; i < batch<T, A>::size; ++i) {
85 self_buffer[i] = func(self_buffer[i]);
86 }
87 return batch<T, A>::load_aligned(self_buffer.data());
88}