Scalar (non-SIMD) implementation of operations.
More...
#include <simd_policies.h>
|
| float | sum_floats (const float *data, size_t count) const noexcept |
| |
| float | min_float (const float *data, size_t count) const noexcept |
| |
| float | max_float (const float *data, size_t count) const noexcept |
| |
| double | sum_doubles (const double *data, size_t count) const noexcept |
| |
|
| static constexpr std::string_view | name () noexcept |
| |
Scalar (non-SIMD) implementation of operations.
Used as fallback when no SIMD instructions are available, or for testing/comparison purposes.
Definition at line 109 of file simd_policies.h.
◆ max_float()
| float kcenon::container::simd::scalar_simd_policy::max_float |
( |
const float * | data, |
|
|
size_t | count ) const |
|
inlinenodiscardnoexcept |
Definition at line 132 of file simd_policies.h.
132 {
133 if (count == 0) return std::numeric_limits<float>::lowest();
134 float max_val = data[0];
135 for (size_t i = 1; i < count; ++i) {
136 if (data[i] > max_val) {
137 max_val = data[i];
138 }
139 }
140 return max_val;
141 }
◆ min_float()
| float kcenon::container::simd::scalar_simd_policy::min_float |
( |
const float * | data, |
|
|
size_t | count ) const |
|
inlinenodiscardnoexcept |
Definition at line 121 of file simd_policies.h.
121 {
122 if (count == 0) return std::numeric_limits<float>::max();
123 float min_val = data[0];
124 for (size_t i = 1; i < count; ++i) {
125 if (data[i] < min_val) {
126 min_val = data[i];
127 }
128 }
129 return min_val;
130 }
◆ name()
| static constexpr std::string_view kcenon::container::simd::scalar_simd_policy::name |
( |
| ) |
|
|
inlinestaticconstexprnoexcept |
◆ sum_doubles()
| double kcenon::container::simd::scalar_simd_policy::sum_doubles |
( |
const double * | data, |
|
|
size_t | count ) const |
|
inlinenodiscardnoexcept |
Definition at line 143 of file simd_policies.h.
143 {
144 double sum = 0.0;
145 for (size_t i = 0; i < count; ++i) {
146 sum += data[i];
147 }
148 return sum;
149 }
◆ sum_floats()
| float kcenon::container::simd::scalar_simd_policy::sum_floats |
( |
const float * | data, |
|
|
size_t | count ) const |
|
inlinenodiscardnoexcept |
Definition at line 113 of file simd_policies.h.
113 {
114 float sum = 0.0f;
115 for (size_t i = 0; i < count; ++i) {
116 sum += data[i];
117 }
118 return sum;
119 }
◆ simd_width
| size_t kcenon::container::simd::scalar_simd_policy::simd_width = 1 |
|
staticconstexpr |
The documentation for this struct was generated from the following file: