A bounded N-port pressure-wave scattering junction. More...
#include <waveguide_junction.hpp>
Public Member Functions | |
| WaveguideJunctionT () | |
| void | set_port_count (std::size_t count) noexcept |
| std::size_t | port_count () const noexcept |
| void | set_impedance (std::size_t port_index, SampleType impedance) noexcept |
| SampleType | impedance (std::size_t port_index) const noexcept |
| bool | scatter (const SampleType *incoming, SampleType *outgoing, std::size_t count) noexcept |
| Scatters one incoming pressure wave per active port. | |
| void | reset () noexcept |
Static Public Attributes | |
| static constexpr double | minimum_impedance = 1.0e-6 |
A bounded N-port pressure-wave scattering junction.
The characteristic impedances are positive dimensionless ratios. scatter permits exact input/output aliasing and uses double/long-double arithmetic internally. Every operation is bounded, lock-free, and allocation-free.
|
inline |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenoexcept |
|
inlinenodiscardnoexcept |
Scatters one incoming pressure wave per active port.
count must equal the configured port count. Invalid arguments return false without writing through unknown pointers. A non-finite incoming sample returns the previous finite output vector and does not update it.
|
inlinenoexcept |
|
inlinenoexcept |
|
staticconstexpr |