Functions | |
| bool | configure_gpu_convolver_trial (GpuConvolver &, const GpuConvolverTrialConfig &) noexcept |
| bool | drain_gpu_convolver_trial_records (GpuConvolver &, std::vector< SharedIoTraceRecord > &) noexcept |
| bool | drain_gpu_convolver_trial_admissions (GpuConvolver &, std::vector< SharedIoTraceAdmission > &) noexcept |
| std::uint64_t | gpu_convolver_trial_engine_id (const GpuConvolver &) noexcept |
| bool | prepare_gpu_multi_convolver_with (GpuMultiConvolver &, std::unique_ptr< render::GpuCompute >) noexcept |
| void | circular_box_blur (const std::vector< float > &m, std::vector< float > &out, std::uint32_t radius, float inv_kernel, std::uint32_t n) |
| Circular box blur of width (2*radius+1) over m[0..n) into out[0..n), in O(n) via a sliding running sum (not O(n*radius) direct summation, and not a prefix sum — a windowed add-one/drop-one sum, which only ever holds the current window and so does not accumulate the precision loss of subtracting two large cumulative totals). | |
| void pulp::gpu_audio::detail::circular_box_blur | ( | const std::vector< float > & | m, |
| std::vector< float > & | out, | ||
| std::uint32_t | radius, | ||
| float | inv_kernel, | ||
| std::uint32_t | n ) |
Circular box blur of width (2*radius+1) over m[0..n) into out[0..n), in O(n) via a sliding running sum (not O(n*radius) direct summation, and not a prefix sum — a windowed add-one/drop-one sum, which only ever holds the current window and so does not accumulate the precision loss of subtracting two large cumulative totals).
radius must be < n/2 so the window is shorter than the circle and the add/drop bins never alias; smear_kernel bounds it at n/32. Exposed for unit testing against the direct summation.
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |