![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Functions | |
| void | add (const double *OPENSWMM_RESTRICT a, const double *OPENSWMM_RESTRICT b, double *OPENSWMM_RESTRICT dst, std::size_t n) noexcept |
| Compute dst[i] = a[i] + b[i] over n doubles. | |
| void | multiply (const double *OPENSWMM_RESTRICT a, const double *OPENSWMM_RESTRICT b, double *OPENSWMM_RESTRICT dst, std::size_t n) noexcept |
| Compute dst[i] = a[i] * b[i] over n doubles. | |
| double | min (const double *a, std::size_t n) noexcept |
| Reduce an array to its minimum value. | |
| double | max (const double *a, std::size_t n) noexcept |
| Reduce an array to its maximum value. | |
| void | clamp (double *a, double lo, double hi, std::size_t n) noexcept |
| Clamp each array element in place to an inclusive interval. | |
| double | dot (const double *OPENSWMM_RESTRICT a, const double *OPENSWMM_RESTRICT b, std::size_t n) noexcept |
| Sum corresponding products from two arrays. | |
| constexpr std::size_t | lane_width () noexcept |
| Report the compile-time number of doubles per SIMD register. | |
| void | sqrt_array (const double *OPENSWMM_RESTRICT a, double *OPENSWMM_RESTRICT dst, std::size_t n) noexcept |
| Compute dst[i] = sqrt(a[i]) over n doubles. | |
| void | fabs_array (const double *OPENSWMM_RESTRICT a, double *OPENSWMM_RESTRICT dst, std::size_t n) noexcept |
| Compute dst[i] = fabs(a[i]) over n doubles. | |
| void | fma_array (const double *OPENSWMM_RESTRICT a, const double *OPENSWMM_RESTRICT b, const double *OPENSWMM_RESTRICT c, double *OPENSWMM_RESTRICT dst, std::size_t n) noexcept |
| Compute dst[i] = a[i] * b[i] + c[i] over n doubles. | |
|
inlinenoexcept |
Compute dst[i] = a[i] + b[i] over n doubles.
| [in] | a | Borrowed readable array of at least n elements. |
| [in] | b | Borrowed readable array of at least n elements. |
| [out] | dst | Borrowed writable array of at least n elements. |
| [in] | n | Element count; any size, including zero, is supported. |
|
inlinenoexcept |
Clamp each array element in place to an inclusive interval.
| [in,out] | a | Borrowed writable array of at least n doubles; non-null when n > 0. No alignment requirement applies. |
| [in] | lo | Lower bound, in the same units as the array elements. |
| [in] | hi | Upper bound; must be >= lo. |
| [in] | n | Element count; zero leaves the array untouched. |
|
inlinenoexcept |
Sum corresponding products from two arrays.
| [in] | a | Borrowed readable array of at least n doubles. |
| [in] | b | Borrowed readable array of at least n doubles. |
| [in] | n | Element count; zero returns zero without accessing the arrays. |
|
inlinenoexcept |
Compute dst[i] = fabs(a[i]) over n doubles.
| [in] | a | Borrowed readable array of at least n doubles. |
| [out] | dst | Borrowed writable array of at least n doubles. |
| [in] | n | Element count; zero performs no reads or writes. |
|
inlinenoexcept |
Compute dst[i] = a[i] * b[i] + c[i] over n doubles.
| [in] | a | Borrowed first-factor array with at least n elements. |
| [in] | b | Borrowed second-factor array with at least n elements. |
| [in] | c | Borrowed addend array with at least n elements, in product units. |
| [out] | dst | Borrowed writable result array with at least n elements. |
| [in] | n | Element count; zero performs no reads or writes. |
|
constexprnoexcept |
Report the compile-time number of doubles per SIMD register.
|
inlinenoexcept |
Reduce an array to its maximum value.
| [in] | a | Non-null borrowed array of at least n readable doubles. |
| [in] | n | Element count, at least one; checked by assert in debug builds. |
|
inlinenoexcept |
Reduce an array to its minimum value.
| [in] | a | Non-null borrowed array of at least n readable doubles. |
| [in] | n | Element count, at least one; checked by assert in debug builds. |
|
inlinenoexcept |
Compute dst[i] = a[i] * b[i] over n doubles.
| [in] | a | Borrowed readable array of at least n elements. |
| [in] | b | Borrowed readable array of at least n elements. |
| [out] | dst | Borrowed writable array of at least n elements. |
| [in] | n | Element count; any size, including zero, is supported. |
|
inlinenoexcept |
Compute dst[i] = sqrt(a[i]) over n doubles.
| [in] | a | Borrowed readable array of at least n doubles. |
| [out] | dst | Borrowed writable array of at least n doubles. |
| [in] | n | Element count; zero performs no reads or writes. |