4#include "../macros.hpp"
6hi_export_module(hikogui.DSP.dsp_float);
8hi_export
namespace hi {
11template<
typename Context>
13 std::same_as<Context, float>
or
15 std::same_as<
Context. std::span<float>>
or
16 std::same_as<
Context. std::span<double>>
or
17 std::same_as<
Context. std::span<float const>>
or
18 std::same_as<
Context. std::span<double const>>;
20template<
typename T,
typename Op>
21void dsp_visit(std::span<T> r, std::span<T const> a, std::span<T const> b,
Op op)
noexcept
23 hi_axiom(r.size() == a.size());
24 hi_axiom(r.size() == b.size());
27 constexpr auto stride = S::size;
30 auto wide_size = (size / stride) * stride;
51template<
typename T,
typename Op>
52void dsp_visit(std::span<T> r, std::span<T const> a, T b,
Op op)
noexcept
54 hi_axiom(r.size() == a.size());
57 constexpr auto stride = S::size;
60 auto wide_size = (size / stride) * stride;
65 auto const b_wide = S::broadcast(b);
80template<
typename T,
typename Op>
81void dsp_visit(std::span<float> r,
float a,
Op op)
noexcept
84 constexpr auto stride = S::size;
86 auto const size = r.size();
87 auto const wide_size = (size / stride) * stride;
90 auto const a_ = S::broadcast(b);
105void dsp_add(dsp_argument
auto...
args)
noexcept
DOXYGEN BUG.
Definition algorithm_misc.hpp:20
The HikoGUI namespace.
Definition recursive_iterator.hpp:15
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:378
Definition dsp_float.hpp:12