|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Fast Fourier Transform (FFT) and DSP Toolkit. More...
#include <fft.H>
Classes | |
| struct | AnalogPrototype |
| Parameters for an analog filter prototype (S-domain). More... | |
| struct | BalancedPolynomial |
| class | BatchedISTFTProcessor |
| Stateful multichannel ISTFT processor with one synthesizer per channel. More... | |
| class | BatchedSTFTProcessor |
| Stateful multichannel STFT processor with one analyzer per channel. More... | |
| struct | BiquadSection |
| A stable Second-Order Section (SOS) building block. More... | |
| struct | CoherenceEstimate |
| Magnitude-squared coherence sampled in Hertz. More... | |
| struct | CrossSpectralDensity |
| One-sided cross-spectral density estimate sampled in Hertz. More... | |
| struct | FrequencyResponse |
| Discrete frequency response sampled on a fixed angular grid. More... | |
| struct | GainMarginInfo |
| Gain-margin estimate around a phase crossover. More... | |
| struct | IIRCoefficients |
| Coefficients for an Infinite Impulse Response (IIR) filter. More... | |
| struct | Is_Std_Complex |
| struct | Is_Std_Complex< std::complex< T > > |
| struct | ISTFTOptions |
| Options for ISTFT reconstruction. More... | |
| class | ISTFTProcessor |
| Stateful ISTFT processor for chunked frame-by-frame synthesis. More... | |
| struct | JacobiValues |
| Value triplet for Jacobi elliptic functions (sn, cn, dn). More... | |
| class | LFilter |
| Stateful direct-form II transposed IIR filter. More... | |
| class | LFilterBank |
| Stateful bank of direct-form II transposed IIR filters. More... | |
| class | OverlapAdd |
| Reusable overlap-add convolver for long real sequences. More... | |
| class | OverlapAddBank |
| Multichannel overlap-add convolver with one shared kernel FFT. More... | |
| class | OverlapSave |
| Reusable overlap-save convolver for streaming real FIR filtering. More... | |
| class | PartitionedConvolver |
| Uniform partitioned FIR convolver for low-latency streaming. More... | |
| struct | PhaseMarginInfo |
| Phase-margin estimate around a gain crossover. More... | |
| class | Plan |
| Precomputed FFT plan for repeated transforms of the same size. More... | |
| struct | PoleZeroPair |
| Greedy nearest-neighbor pole/zero pairing entry. More... | |
| struct | PolynomialEvaluation |
| struct | PowerSpectralDensity |
| One-sided power spectral density estimate sampled in Hertz. More... | |
| struct | ResamplePolyOptions |
| Options for default polyphase resampling filter design. More... | |
| struct | RootGroup |
| Rationale: Group of one or more roots (typically a conjugate pair) sharing a common geometric center. More... | |
| struct | SeriesEvaluation |
| class | SOSFilter |
| Stateful cascade of second-order sections. More... | |
| class | SOSFilterBank |
| Stateful bank of SOS cascades, one per channel. More... | |
| struct | STFTOptions |
| Options for STFT analysis. More... | |
| class | STFTProcessor |
| Stateful STFT processor for chunked real-time analysis. More... | |
| struct | TensorLayout |
| Layout descriptor for a flat tensor buffer. More... | |
| struct | TransferTerms |
| Internal storage for complex transfer function evaluation terms. More... | |
| struct | WeightedFrequencyGrid |
| Frequency-domain grid with target values and importance weights. More... | |
| struct | WelchOptions |
| Options for Welch PSD, CSD, and coherence estimation. More... | |
Public Types | |
| enum class | SimdBackend { scalar , avx2 , neon } |
| SIMD hardware acceleration backends. More... | |
| enum class | SimdPreference { automatic , scalar_only , avx2_only , neon_only } |
| User-selected SIMD dispatch preference. More... | |
| enum class | SpectrogramLayout { channel_frame_bin , frame_channel_bin } |
| Logical layout for multichannel spectrograms. More... | |
| using | value_type = Real |
| using | Complex = std::complex< Real > |
Static Private Member Functions | |
| static Complex | twiddle_at (const Real angle, const size_t index) |
| Computes a single twiddle factor exp(j * angle * index). | |
| static Real | transform_stages (const size_t n) noexcept |
| Returns log2(N) stages, used for numerical error scaling. | |
| static Real | real_projection_tolerance (const Complex &value, const size_t n) noexcept |
| Rationale: Estimates the maximum expected numerical noise for a value after an N-point transform, used to validate real projections. | |
| static Real | hermitian_tolerance (const Complex &lhs, const Complex &rhs, const size_t n) noexcept |
| Rationale: Numerical tolerance for Hermitian symmetry checks. | |
| static void | validate_real_spectrum (const Array< Complex > &input, const char *ctx) |
| Rationale: Ensures a complex spectrum has the Hermitian symmetry (X[k] = X[N-k]*) required to be the transform of a real signal. | |
| static Array< Real > | cosine_sum_window (const size_t n, const Real a0, const Real a1=Real(0), const Real a2=Real(0)) |
| Internal generator for generalized cosine windows (Hann, Hamming, Blackman). | |
| template<typename T > | |
| static Array< T > | reverse_copy (const Array< T > &input) |
| Functional reverse. | |
| template<typename T > | |
| static Array< T > | prefix_copy (const Array< T > &input, const size_t length) |
| Functional prefix extraction. | |
| template<typename T > | |
| static Array< T > | slice_copy (const Array< T > &input, const size_t offset, const size_t length) |
| Functional slice extraction. | |
| static size_t | default_filtfilt_pad_length (const size_t signal_size, const size_t coeff_size) noexcept |
| Rationale: Rule-of-thumb for filtfilt padding to allow transients to decay. | |
| static Array< Real > | reflect_pad_signal (const Array< Real > &signal, const size_t pad_len) |
| Rationale: Applies reflection padding at signal edges to reduce boundary artifacts during filtering. | |
| static Array< Real > | zero_pad_edges (const Array< Real > &signal, const size_t left_pad, const size_t right_pad) |
| functional zero-padding at both ends. | |
| static Array< Real > | overlap_profile (const Array< Real > &analysis_window, const Array< Real > &synthesis_window, const size_t hop_size, const char *ctx) |
| Rationale: Computes the effective window product for a windowed overlap-add process to validate reconstruction constraints. | |
| static bool | overlap_profile_has_nola (const Array< Real > &profile) noexcept |
| Rationale: Non-zero Overlap-Add (NOLA) ensures the signal can be reconstructed (it's never multiplied by zero in all frames). | |
| static bool | overlap_profile_has_cola (const Array< Real > &profile) noexcept |
| Rationale: Constant Overlap-Add (COLA) ensures that OLA reconstruction has no amplitude modulation artifacts. | |
| static void | validate_overlap_constraints (const Array< Real > &analysis_window, const Array< Real > &synthesis_window, const size_t hop_size, const bool validate_nola, const bool validate_cola, const char *ctx) |
| Rationale: Internal validator for STFT/ISTFT windowing parameters. | |
| static Array< size_t > | frame_offsets_impl (const size_t signal_size, const size_t frame_size, const size_t hop_size, const bool pad_end, const char *ctx) |
| Computes framing offsets. | |
| static Real | max_abs_value (const Array< Real > &input) noexcept |
| L-infinity norm. | |
| static Real | sum_values (const Array< Real > &input) noexcept |
| Sum reduction. | |
| static Real | sum_squares (const Array< Real > &input) noexcept |
| L2 norm squared. | |
| static Array< Real > | demean_copy (const Array< Real > &input) |
| Returns a copy with DC offset removed. | |
| static Array< Real > | one_sided_frequency_grid (const size_t fft_size, const Real sample_rate, const char *ctx) |
| Maps bin indices to frequency in Hz. | |
| static bool | is_one_sided_interior_bin (const size_t bin, const size_t fft_size) noexcept |
| Identifies non-redundant spectrum bins (excluding DC and Nyquist). | |
| static size_t | resolve_welch_hop_size (const WelchOptions &options, const size_t frame_size, const char *ctx) |
| Default hop size for Welch analysis (50% overlap). | |
| static size_t | resolve_welch_fft_size (const WelchOptions &options, const size_t frame_size, const char *ctx) |
| Default FFT size for Welch analysis (zero-padded to power of 2). | |
| static Array< Array< Real > > | prepare_welch_frames (const Array< Real > &signal, const Array< Real > &window, const WelchOptions &options, const char *ctx) |
| Rationale: Encapsulates frame extraction, detrending and windowing common to Welch and other spectral estimators. | |
| template<typename Density > | |
| static void | apply_one_sided_density_scaling (Density &value, const size_t bin, const size_t fft_size) noexcept |
| Rationale: Multiplies spectral densities by 2 for interior bins to account for energy in the omitted negative frequency half. | |
| static size_t | effective_coeff_length (const Array< Real > &input) noexcept |
| Returns length excluding trailing insignificant zeros. | |
| static Array< Real > | scaled_copy (const Array< Real > &input, const Real factor) |
| Scalar scaling. | |
| static Real | scaled_tolerance (const Real reference, const Real multiplier=Real(256)) noexcept |
| static Real | series_zero_tolerance (const size_t coeff_count, const Real multiplier=Real(256)) noexcept |
| static IIRCoefficients | normalize_iir_coefficients (const Array< Real > &numerator, const Array< Real > &denominator, const char *ctx) |
| static Array< Real > | solve_dense_system (Array< Real > matrix, Array< Real > rhs, const size_t n, const char *ctx) |
| static Array< Real > | iir_steady_state (const Array< Real > &numerator, const Array< Real > &denominator, const char *ctx) |
| static Array< Real > | iir_filter_impl (const Array< Real > &signal, const Array< Real > &numerator, const Array< Real > &denominator, const Array< Real > &initial_state, const char *ctx, Array< Real > *final_state=nullptr) |
| static Array< Real > | iir_filtfilt_impl (const Array< Real > &signal, const Array< Real > &numerator, const Array< Real > &denominator, const char *ctx) |
| static Array< Real > | sos_filtfilt_impl (const Array< Real > &signal, const Array< BiquadSection > §ions, const char *ctx) |
| template<typename T > | |
| static void | append_all (Array< T > &dst, const Array< T > &src) |
| template<typename T > | |
| static void | drop_prefix (Array< T > &input, const size_t count) |
| static constexpr size_t | saturating_product (const size_t lhs, const size_t rhs) noexcept |
| static bool | should_parallelize_batch_work (ThreadPool *pool, const size_t batch_size, const size_t transform_size, const size_t min_work=8192) noexcept |
| static size_t | count_non_empty_real_batch (const Array< Array< Real > > &batch) noexcept |
| static size_t | recommended_cache_tile_size (const size_t transform_size, const size_t batch_size, ThreadPool *pool) noexcept |
| static Array< Real > | build_padded_frame_from_prefix (const Array< Real > &input, const size_t frame_size) |
| static size_t | validate_stft_options (const Array< Real > &window, const STFTOptions &options, const char *ctx) |
| static Array< Complex > | prepare_stft_frame_input (const Array< Real > &frame, const Array< Real > &window, const size_t fft_size) |
| static Array< Array< Complex > > | transform_stft_frames (const Array< Array< Real > > &frames, const Array< Real > &window, const size_t fft_size, const Plan &plan, ThreadPool *pool, const size_t chunk_size) |
| static Array< Array< Complex > > | stft_impl (const Array< Real > &signal, const Array< Real > &window, const STFTOptions &options, ThreadPool *pool=nullptr, const size_t chunk_size=0) |
| static Complex | evaluate_transfer_at (const Array< Real > &numerator, const Array< Real > &denominator, const Real omega, const char *ctx) |
| static FrequencyResponse | freqz_impl (const Array< Real > &numerator, const Array< Real > &denominator, const size_t num_points, const bool whole, const char *ctx) |
| static SeriesEvaluation | evaluate_series_at_unit_circle (const Array< Real > &coefficients, const Real omega, const char *ctx) |
| static PolynomialEvaluation | evaluate_polynomial_and_derivative (const Array< Real > &coefficients, const Complex &x, const char *ctx) |
| static std::pair< Array< Real >, Real > | divide_polynomial_by_linear_root (const Array< Real > &coefficients, const Real root, const char *ctx) |
| static std::pair< Array< Real >, Array< Complex > > | extract_repeated_unit_roots (const Array< Real > &coefficients, const char *ctx) |
| static Real | polynomial_root_upper_bound (const Array< Real > &monic) noexcept |
| static Real | polynomial_root_lower_bound (const Array< Real > &monic) noexcept |
| static BalancedPolynomial | balance_polynomial_for_roots (const Array< Real > &coefficients, const char *ctx) |
| static Array< Complex > | initialize_root_guesses (const Array< Real > &coefficients) |
| static bool | try_aberth_ehrlich_roots (const Array< Real > &coefficients, const Real tol, Array< Complex > &roots, const size_t max_iterations=192) noexcept |
| static bool | try_durand_kerner_roots (const Array< Real > &coefficients, const Real tol, Array< Complex > &roots, const size_t max_iterations=192) noexcept |
| static void | polish_roots_with_newton (const Array< Real > &coefficients, Array< Complex > &roots, const Real tol, const size_t iterations) noexcept |
| static void | enforce_real_polynomial_symmetry (Array< Complex > &roots, const Real tol) noexcept |
| static bool | roots_pass_residual_check (const Array< Real > &coefficients, const Array< Complex > &roots, const Real tol) noexcept |
| static bool | try_laguerre_roots (const Array< Real > &coefficients, const Real tol, Array< Complex > &roots) noexcept |
| static Array< Complex > | polynomial_roots_impl (const Array< Real > &coefficients, const char *ctx) |
| Rationale: Master implementation for polynomial root-finding. | |
| static Array< Real > | trim_leading_zeros_copy (const Array< Real > &input) noexcept |
| Rationale: Copy utility that removes leading zero coefficients, effectively normalizing the polynomial degree. | |
| static TransferTerms | evaluate_transfer_terms_at (const Array< Real > &numerator, const Array< Real > &denominator, const Real omega, const char *ctx) |
| implementation helper for evaluating H(z) and its derivatives on the unit circle. | |
| static Array< Real > | analytic_group_delay_impl (const Array< Real > &numerator, const Array< Real > &denominator, const size_t num_points, const bool whole, const char *ctx) |
| Rationale: Analytic calculation of group delay (-dphi/domega) using the complex derivative of the transfer function, which is more accurate than numerical differentiation. | |
| static Array< Real > | analytic_sos_group_delay_impl (const Array< BiquadSection > §ions, const FrequencyResponse &response, const char *ctx) |
| implementation of analytic group delay for SOS cascades. | |
| static Array< Real > | analytic_phase_delay_impl (const Array< Real > &numerator, const Array< Real > &denominator, const size_t num_points, const bool whole, const char *ctx) |
| implementation of analytic phase delay calculation. | |
| static Real | max_root_radius (const Array< Complex > &roots) noexcept |
| Returns the magnitude of the largest root in the set. | |
| static Array< PoleZeroPair > | pole_zero_pairs_impl (const Array< Complex > &zeros, const Array< Complex > &poles) |
| Rationale: Matches zeros and poles into pairs by minimizing Euclidean distance, aiding in SOS decomposition. | |
| static Real | minimum_cancellation_distance_impl (const Array< PoleZeroPair > &pairs) noexcept |
| Rationale: Estimates the minimum distance between any matched pole and zero to identify potential cancellations. | |
| template<typename T > | |
| static Array< T > | polynomial_multiply (const Array< T > &lhs, const Array< T > &rhs) |
| Rationale: Standard polynomial multiplication (O(N*M)). | |
| template<typename T > | |
| static void | add_scaled_polynomial (Array< T > &dst, const Array< T > &src, const T scale) |
| Rationale: In-place addition of a scaled polynomial. | |
| static Real | integer_power (const Real base, const size_t exponent) noexcept |
| Fast integer power utility. | |
| static Array< Real > | signed_binomial (const size_t power, const Real sign) |
| Rationale: Computes (1 + sign*x)^power coefficients. | |
| static Array< Real > | bilinear_substitute_polynomial (const Array< Real > &analog, const size_t order, const Real sample_rate, const char *ctx) |
| Rationale: Performs the bilinear substitution mapping from the S-plane to the Z-domain: H(z) = H(s)|s=2*fs*(z-1)/(z+1). | |
| static Array< Complex > | polynomial_from_roots_complex (const Array< Complex > &roots) |
| Rationale: Polynomial expansion (z-r1)(z-r2)... | |
| static Array< Real > | trim_polynomial_leading_zeros (const Array< Real > &input, const char *ctx) |
| Validation wrapper for trim_leading_zeros_copy. | |
| static Array< Real > | polynomial_power (const Array< Real > &poly, const size_t exponent, const char *ctx) |
| implementation of P(x)^n via successive multiplication. | |
| static Array< Real > | substitute_rational_polynomial (const Array< Real > &poly, const Array< Real > &numerator, const Array< Real > &denominator, const char *ctx) |
| Rationale: Evaluates P(N(z)/D(z)) by scaling by the common denominator D(z)^degree and evaluating the resulting nested polynomial expansion. | |
| static IIRCoefficients | apply_analog_rational_transform (const Array< Real > &numerator, const Array< Real > &denominator, const Array< Real > &map_numerator, const Array< Real > &map_denominator, const char *ctx) |
| Rationale: Transforms an analog transfer function H(s) via rational substitution s = N(z)/D(z), as used in bilinear or frequency-selective mappings. | |
| static Array< Real > | real_polynomial_from_roots (const Array< Complex > &roots, const char *ctx) |
| Rationale: Constructs a real-coefficient polynomial from a set of complex roots, verifying that roots appear in conjugate pairs. | |
| static Complex | group_center (const Array< Complex > &roots) noexcept |
| Geometric center of a root set. | |
| static Array< Complex > | enforce_conjugate_symmetry (const Array< Complex > &roots) |
| Enforce conjugate symmetry on roots of a real-coefficient polynomial. | |
| static Array< RootGroup > | root_groups_impl (const Array< Complex > &raw_roots, const char *ctx) |
| Rationale: Partitions a set of roots into real sections and conjugate pairs to facilitate SOS decomposition. | |
| static BiquadSection | section_from_coefficients (const Array< Real > &numerator, const Array< Real > &denominator, const char *ctx) |
| Rationale: Converts generic IIR coefficients into a stabilized BiquadSection structure, enforcing the second-order limit. | |
| static IIRCoefficients | bilinear_transform_impl (const Array< Real > &analog_numerator, const Array< Real > &analog_denominator, const Real sample_rate, const char *ctx) |
| implementation helper for the bilinear transform. | |
| static Real | prewarp_frequency (const Real cutoff_frequency, const Real sample_rate, const char *ctx) |
| Rationale: Prewarps an analog cutoff frequency to compensate for the non-linear frequency mapping of the bilinear transform. | |
| static Real | comp_ellint_1_impl (const Real k) |
| static Real | carlson_rf_impl (Real x, Real y, Real z) |
| static Real | ellint_1_impl (const Real k, const Real phi) |
| static Real | complete_elliptic_first_kind (const Real modulus, const char *ctx) |
| Rationale: Complete elliptic integral K(k) using the modulus convention required by elliptic filter design. | |
| static JacobiValues | jacobi_sn_cn_dn (const Real argument, const Real modulus, const char *ctx) |
| Rationale: Simultanous calculation of Jacobi sn, cn, dn functions using the descending Landen transformation or AGM. | |
| static Real | inverse_jacobi_sc (const Real value, const Real modulus, const char *ctx) |
| static Real | solve_elliptic_selectivity_modulus (const Real k1, const size_t order, const char *ctx) |
| static Complex | elliptic_cd_minus_imaginary (const Real u, const Real v, const Real modulus, const char *ctx) |
| static AnalogPrototype | butterworth_prototype (const size_t order, const char *ctx) |
| static AnalogPrototype | chebyshev1_prototype (const size_t order, const Real ripple_db, const char *ctx) |
| static AnalogPrototype | chebyshev2_prototype (const size_t order, const Real attenuation_db, const char *ctx) |
| static AnalogPrototype | elliptic_prototype (const size_t order, const Real ripple_db, const Real attenuation_db, const char *ctx) |
| static Real | evaluate_analog_transfer_magnitude (const Array< Real > &numerator, const Array< Real > &denominator, const Real omega, const char *ctx) |
| Rationale: Direct evaluation of |H(j*omega)| for an analog transfer function. | |
| static Array< Real > | reverse_bessel_polynomial (const size_t order, const char *ctx) |
| Rationale: Generates coefficients for the Reverse Bessel Polynomial used in Bessel filter prototypes. | |
| static AnalogPrototype | bessel_prototype (const size_t order, const char *ctx) |
| implementation of the Bessel filter analog prototype. | |
| static Array< BiquadSection > | design_low_high_sections (const AnalogPrototype &prototype, const Real cutoff_frequency, const Real sample_rate, const bool highpass, const char *ctx) |
| internal helper for designing standard lowpass/highpass SOS filters. | |
| static Array< BiquadSection > | design_prototype_sections (const AnalogPrototype &prototype, const size_t order, const Real cutoff_frequency, const Real sample_rate, const bool highpass, const char *ctx) |
| static std::pair< Real, Real > | prewarp_band_edges (const Real low_cutoff_frequency, const Real high_cutoff_frequency, const Real sample_rate, const char *ctx) |
| Prewarps a pair of band edges for bilinear transform. | |
| static Array< BiquadSection > | transfer_function_to_sections (const IIRCoefficients &coeffs, const Array< RootGroup > &zero_groups, const char *ctx) |
| Rationale: Decomposes a general IIR transfer function into a cascade of Second-Order Sections (SOS) by pairing poles and zeros. | |
| static Array< BiquadSection > | transfer_function_to_sections (const Array< Real > &numerator, const Array< Real > &denominator, const char *ctx) |
| overload of transfer_function_to_sections using raw coefficients. | |
| static Array< BiquadSection > | design_bandstop_sections_without_numerator_roots (const AnalogPrototype &prototype, const size_t order, const Real low_cutoff_frequency, const Real high_cutoff_frequency, const Real sample_rate, const char *ctx) |
| Specialization for band-stop designs to handle zeros explicitly. | |
| static Array< BiquadSection > | design_transformed_sections (const AnalogPrototype &prototype, const Array< Real > &map_numerator, const Array< Real > &map_denominator, const Real sample_rate, const char *ctx) |
| Generic implementation for designing transformed SOS cascades. | |
| static Real | modified_bessel_i0 (const Real x) noexcept |
| Standard Zeroth-order Modified Bessel function of the first kind. | |
| static Real | normalized_sinc (const Real x) noexcept |
| Standard normalized sinc function sin(pi*x)/(pi*x). | |
| static Real | evaluate_fir_response_magnitude (const Array< Real > &coeffs, const Real omega, const char *ctx) |
| implementation helper for FIR frequency response magnitude. | |
| static void | normalize_fir_at_omega (Array< Real > &coeffs, const Real omega, const char *ctx) |
Normalizes FIR coefficients to have unit gain at frequency omega. | |
| static Array< Real > | firwin_lowpass_impl (const size_t num_taps, const Real cutoff_frequency, const Real sample_rate, const Array< Real > &window, const char *ctx) |
| implementation of the window-method FIR design. | |
| static Real | integrate_cos_basis (const Real omega_lo, const Real omega_hi, const size_t harmonic) noexcept |
| Rationale: Evaluates integral of cos(k*w) from omega_lo to omega_hi. | |
| static Real | integrate_cos_product (const Real omega_lo, const Real omega_hi, const size_t lhs_harmonic, const size_t rhs_harmonic) noexcept |
| Rationale: Evaluates integral of cos(m*w)*cos(n*w). | |
| static Real | integrate_offset_cos_basis (const Real omega_lo, const Real omega_hi, const size_t harmonic) noexcept |
| implementation helper for firls slope integration. | |
| static Real | integrate_linear_cos_basis (const Real omega_lo, const Real omega_hi, const Real desired_lo, const Real desired_hi, const size_t harmonic) noexcept |
| implementation helper for firls linear band integration. | |
| static Array< Real > | firls_impl (const size_t num_taps, const Array< Real > &bands, const Array< Real > &desired, const Real sample_rate, const Array< Real > &weights, const char *ctx) |
| implementation of Least-Squares FIR design. | |
| static WeightedFrequencyGrid | build_weighted_frequency_grid (const size_t num_taps, const Array< Real > &bands, const Array< Real > &desired, const Real sample_rate, const Array< Real > &weights, const size_t grid_density, const char *ctx) |
| static Real | evaluate_cosine_series (const Array< Real > &coefficients, const Real omega) noexcept |
| static Array< size_t > | evenly_spaced_extrema (const size_t grid_size, const size_t extremal_count) |
| static Array< size_t > | choose_remez_extrema (const Array< Real > &weighted_error, const size_t required_count, const char *ctx) |
| static Array< Real > | solve_remez_cosine_series (const Array< Real > &omega, const Array< Real > &desired, const Array< Real > &weight, const Array< size_t > &extrema, const size_t half_order, const char *ctx) |
| static Array< Real > | remez_impl (const size_t num_taps, const Array< Real > &bands, const Array< Real > &desired, const Real sample_rate, const Array< Real > &weights, const size_t grid_density, const size_t max_iterations, const char *ctx) |
| static Real | interpolate_crossing (const Real x0, const Real y0, const Real x1, const Real y1, const Real target) noexcept |
| static Real | interpolate_value_at (const Real x0, const Real y0, const Real x1, const Real y1, const Real x) noexcept |
| static Real | align_phase_near_reference (const Real raw_phase, const Real reference_phase) noexcept |
| template<typename Evaluator > | |
| static Real | refine_scalar_crossing (const Evaluator &evaluator, const Real x0, const Real y0, const Real x1, const Real y1, const Real target) |
| static Complex | evaluate_sos_transfer_at (const Array< BiquadSection > §ions, const Real omega, const char *ctx) |
| static PhaseMarginInfo | phase_margin_impl (const FrequencyResponse &response) |
| static GainMarginInfo | gain_margin_impl (const FrequencyResponse &response) |
| implementation helper for Gain Margin calculation. | |
| template<typename Evaluator > | |
| static PhaseMarginInfo | phase_margin_refined_impl (const FrequencyResponse &response, const Evaluator &evaluator) |
| implementation of refined Phase Margin calculation using analytic evaluation. | |
| template<typename Evaluator > | |
| static GainMarginInfo | gain_margin_refined_impl (const FrequencyResponse &response, const Evaluator &evaluator) |
| implementation of refined Gain Margin calculation using analytic evaluation. | |
| static Array< Real > | unwrap_phase (const Array< Real > &phase) |
| implementation of phase unwrapping (removes +/- 2*pi jumps). | |
| static Array< Real > | group_delay_impl (const FrequencyResponse &response) |
| implementation of numeric group delay calculation. | |
| static Array< Real > | phase_delay_impl (const FrequencyResponse &response) |
| implementation of numeric phase delay calculation. | |
| static void | validate_istft_configuration (const Array< Real > &analysis_window, const Array< Real > &synthesis_window, const size_t fft_size, const ISTFTOptions &options, const char *ctx) |
| Rationale: Validates and normalizes ISTFT parameters, checking window constraints and FFT size. | |
| static Array< Real > | istft_impl (const Array< Array< Complex > > &spectrogram, const Array< Real > &analysis_window, const Array< Real > &synthesis_window, const ISTFTOptions &options, ThreadPool *pool, const size_t chunk_size) |
| implementation of the Inverse Short-Time Fourier Transform. | |
| static Array< Complex > | zero_padded_copy (const Array< Complex > &input, const size_t n) |
Returns a copy of input zero-padded to size n. | |
| static Array< Real > | zero_padded_copy (const Array< Real > &input, const size_t n) |
Returns a copy of input zero-padded to size n. | |
| static void | trim_to_size (Array< Complex > &input, const size_t n) |
Trims input to size n. | |
| template<typename T , typename Container > requires requires(const Container & c) { std::begin(c); std::end(c); requires std::convertible_to<decltype(*std::begin(c)), T>; } | |
| static Array< T > | to_array (const Container &input) |
| template<typename Container > requires Is_Complex_Container<Container> | |
| static Array< Complex > | build_complex_input (const Container &input) |
| template<typename Container > requires Is_Real_Container<Container> | |
| static Array< Real > | build_real_input (const Container &input) |
| static size_t | tensor_element_count (const Array< size_t > &shape, const char *ctx) |
| static Array< size_t > | row_major_strides (const Array< size_t > &shape, const char *ctx) |
| static size_t | tensor_max_offset (const Array< size_t > &shape, const Array< size_t > &strides, const char *ctx) |
| static TensorLayout | normalize_tensor_layout (const Array< Complex > &data, const TensorLayout &layout, const char *ctx) |
| Rationale: Validates a tensor layout and infers row-major strides if they are not provided. | |
| static Array< size_t > | normalize_axes (const Array< size_t > &axes, const size_t rank, const char *ctx) |
| Rationale: Validates axis indices against the tensor rank and ensures no axis is specified more than once. | |
| static Array< size_t > | axis_base_offsets (const Array< size_t > &shape, const Array< size_t > &strides, const size_t axis) |
| Rationale: Generates the base memory offsets for all 1D slices along a specific axis in a multidimensional tensor. | |
| static Array< Complex > | gather_axis_slice (const Array< Complex > &data, const size_t base_offset, const size_t axis_length, const size_t axis_stride) |
| Rationale: Extracts a non-contiguous slice of data along a tensor axis into a contiguous array for FFT processing. | |
| static void | scatter_axis_slice (Array< Complex > &data, const size_t base_offset, const size_t axis_stride, const Array< Complex > &slice) |
| Rationale: Writes back a transformed contiguous slice into its original (potentially non-contiguous) memory locations. | |
| static void | transform_axis_impl (Array< Complex > &data, const TensorLayout &layout, const size_t axis, const bool invert, ThreadPool *pool=nullptr, const size_t chunk_size=0) |
| Rationale: Internal implementation of a 1D FFT along a single tensor axis. | |
| static void | transform_axes_impl (Array< Complex > &data, const TensorLayout &layout, const Array< size_t > &axes, const bool invert, ThreadPool *pool=nullptr, const size_t chunk_size=0) |
| Rationale: Internal implementation of a multi-axis tensor transform. | |
| static Array< size_t > | matrix_shape (const Array< Array< Complex > > &input, const char *ctx) |
| Rationale: Validates that an Array of Arrays represents a rectangular matrix and returns its {rows, cols} shape. | |
| static Array< Complex > | flatten_matrix_row_major (const Array< Array< Complex > > &input, const char *ctx) |
| Rationale: Flattens a 2D matrix into a 1D row-major array. | |
| static Array< Array< Complex > > | reshape_matrix_row_major (const Array< Complex > &input, const size_t rows, const size_t cols, const char *ctx) |
| Rationale: Reshapes a 1D row-major array back into a 2D matrix. | |
| static Array< size_t > | tensor3_shape (const Array< Array< Array< Complex > > > &input, const char *ctx) |
| Rationale: Validates that a nested Array represents a 3D tensor and returns its {d0, d1, d2} shape. | |
| static Array< Complex > | flatten_tensor3_row_major (const Array< Array< Array< Complex > > > &input, const char *ctx) |
| Rationale: Flattens a 3D tensor into a 1D row-major array. | |
| static Array< Array< Array< Complex > > > | reshape_tensor3_row_major (const Array< Complex > &input, const size_t dim0, const size_t dim1, const size_t dim2, const char *ctx) |
| Rationale: Reshapes a 1D row-major array back into a 3D tensor. | |
| static Array< Array< Array< Complex > > > | transpose_spectrogram_layout_impl (const Array< Array< Array< Complex > > > &input, const SpectrogramLayout source, const SpectrogramLayout target, const char *ctx) |
| Rationale: Internal implementation for transposing between multichannel spectrogram layouts (e.g. | |
| static Array< Complex > | lift_real_input (const Array< Real > &input) |
| Lifts a real-valued input array to the complex domain. | |
| static Array< Complex > | transform_real_optimized (const Array< Real > &input, ThreadPool *pool=nullptr, const size_t chunk_size=0) |
| Rationale: Optimized FFT for real signals of size N (power-of-two). | |
| template<typename InversePackedTransform > | |
| static Array< Real > | inverse_transform_real_optimized_impl (const Array< Complex > &input, const char *ctx, ThreadPool *pool, const size_t chunk_size, InversePackedTransform inverse_packed) |
| Rationale: Optimized Inverse FFT for real signals of size N (power-of-two). | |
| static Array< Real > | multiply_real_optimized (const Array< Real > &a, const Array< Real > &b, ThreadPool *pool=nullptr, const size_t chunk_size=0) |
| Rationale: Efficiently multiplies two real sequences using a single N-point complex FFT by packing one sequence into the real part and the other into the imaginary part. | |
| static Array< Complex > | multiply_complex_impl (const Array< Complex > &a, const Array< Complex > &b, ThreadPool *pool=nullptr, const size_t chunk_size=0) |
| Rationale: Linear convolution of two complex sequences via FFT. | |
| static Array< Real > | project_real_output (const Array< Complex > &input, const char *ctx) |
| Projects a complex-valued output array back to the real domain. | |
| static void | bit_reverse (Array< Complex > &a) noexcept |
| Performs bit-reversal permutation in-place. | |
| static size_t | next_power_of_two (const size_t n) |
| Calculates the smallest power of two greater than or equal to n. | |
| static void | transform_impl (Array< Complex > &a, const bool invert, ThreadPool *pool=nullptr, const size_t chunk_size=0) |
| implementation of the power-of-two iterative FFT using mixed radix-2/4. | |
| static Array< size_t > | factor_small_radices (size_t n) |
| Rationale: Factors a number into small primes (2, 3, 4, 5) to determine if a composite FFT kernel is applicable. | |
| static Array< Complex > | project_to_plan_spectrum (const Plan &plan, const Array< Real > &input, ThreadPool *pool=nullptr, const size_t chunk_size=0) |
| static Array< Array< Complex > > | project_to_plan_batch_spectra (const Plan &plan, const Array< Array< Real > > &input, ThreadPool *pool=nullptr, const size_t chunk_size=0) |
| static Array< Complex > | compact_real_spectrum (const Array< Complex > &full_spectrum) |
| static Array< Array< Complex > > | compact_real_batch_spectra (const Array< Array< Complex > > &full_spectra) |
| static size_t | resolve_irfft_signal_size (const Array< Complex > &spectrum, const size_t signal_size, const char *ctx) |
| static Array< Complex > | expand_real_spectrum (const Array< Complex > &spectrum, const size_t signal_size, const char *ctx) |
| static Array< Array< Complex > > | expand_real_batch_spectra (const Array< Array< Complex > > &spectra, const size_t signal_size, const char *ctx) |
| static Array< Array< Real > > | project_real_batch_output (const Array< Array< Complex > > &input, const char *ctx) |
| static void | transform_any_size_impl (Array< Complex > &a, const bool invert, ThreadPool *pool=nullptr, const size_t chunk_size=0) |
| static Array< Real > | inverse_transform_real_general_impl (const Array< Complex > &input, const char *ctx, ThreadPool *pool, const size_t chunk_size) |
Static Private Attributes | |
| template<typename Container > | |
| static constexpr bool | Is_Complex_Container |
| template<typename Container > | |
| static constexpr bool | Is_Real_Container |
| template<typename Container > | |
| static constexpr bool | Is_Biquad_Container |
| template<typename Container > | |
| static constexpr bool | Is_Real_Batch_Container |
| static constexpr size_t | twiddle_refresh_period = 32 |
Fast Fourier Transform (FFT) and DSP Toolkit.
The FFT class provides a high-performance suite for time-to-frequency domain conversion and signal processing.
p) leverage a ThreadPool for large-scale data processing.All methods are static; there is no shared mutable instance state. Multiple threads may call any method concurrently on independent data without synchronization. The one exception is Plan: a single Plan object must not be used concurrently from multiple threads unless all concurrent calls are read-only (query-only methods).
transformed, convolve) provide the basic guarantee: if std::bad_alloc or any other exception is thrown, no resources are leaked and all objects remain in a valid (though possibly partially modified) state.transform(Array<Complex>&, bool)) provide the basic guarantee: the array remains valid but may be partially transformed if an exception is thrown mid-way.std::bad_alloc (memory allocation failure), std::invalid_argument (zero-length or unsupported input), and std::domain_error (e.g. non-Hermitian spectrum passed to an inverse real transform).noexcept; all may propagate exceptions.| Real | Floating-point precision (double, float, long double). |
| using Aleph::FFT< Real >::Complex = std::complex<Real> |
| using Aleph::FFT< Real >::value_type = Real |
|
strong |
|
strong |
|
strong |
|
inlinestaticprivate |
Rationale: In-place addition of a scaled polynomial.
Definition at line 2426 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::bilinear_substitute_polynomial().
|
inlinestaticprivatenoexcept |
Definition at line 4433 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::gain_margin_refined_impl(), and Aleph::FFT< Real >::phase_margin_refined_impl().
|
inlinestaticprivate |
Rationale: Analytic calculation of group delay (-dphi/domega) using the complex derivative of the transfer function, which is more accurate than numerical differentiation.
Definition at line 2178 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::TransferTerms::denominator, Aleph::FFT< Real >::TransferTerms::denominator_derivative, Aleph::FFT< Real >::effective_coeff_length(), Aleph::FFT< Real >::evaluate_transfer_terms_at(), Aleph::FFT< Real >::freqz_impl(), Aleph::FFT< Real >::group_delay_impl(), Aleph::FFT< Real >::FrequencyResponse::magnitude(), Aleph::FFT< Real >::max_abs_value(), Aleph::FFT< Real >::TransferTerms::numerator, Aleph::FFT< Real >::TransferTerms::numerator_derivative, Aleph::FFT< Real >::FrequencyResponse::omega, and Aleph::FFT< Real >::series_zero_tolerance().
Referenced by Aleph::FFT< Real >::analytic_phase_delay_impl(), Aleph::FFT< Real >::group_delay(), and Aleph::FFT< Real >::group_delay().
|
inlinestaticprivate |
implementation of analytic phase delay calculation.
Definition at line 2252 of file fft.H.
References Aleph::FFT< Real >::analytic_group_delay_impl(), Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::freqz_impl(), Aleph::FFT< Real >::FrequencyResponse::omega, Aleph::FFT< Real >::phase_spectrum(), Aleph::FFT< Real >::FrequencyResponse::response, Aleph::Array< T >::size(), and Aleph::FFT< Real >::unwrap_phase().
Referenced by Aleph::FFT< Real >::phase_delay(), and Aleph::FFT< Real >::phase_delay().
|
inlinestaticprivate |
implementation of analytic group delay for SOS cascades.
Definition at line 2212 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::TransferTerms::denominator, Aleph::FFT< Real >::TransferTerms::denominator_derivative, Aleph::FFT< Real >::evaluate_transfer_terms_at(), Aleph::FFT< Real >::group_delay_impl(), Aleph::FFT< Real >::TransferTerms::numerator, Aleph::FFT< Real >::TransferTerms::numerator_derivative, Aleph::FFT< Real >::FrequencyResponse::omega, Aleph::FFT< Real >::series_zero_tolerance(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::group_delay(), and Aleph::FFT< Real >::phase_delay().
|
inlinestaticprivate |
Definition at line 1266 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::STFTProcessor::append_samples(), Aleph::FFT< Real >::OverlapSave::convolve(), Aleph::FFT< Real >::PartitionedConvolver::convolve(), Aleph::FFT< Real >::OverlapSave::flush(), Aleph::FFT< Real >::PartitionedConvolver::flush(), Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::ISTFTProcessor::pprocess_block(), Aleph::FFT< Real >::ISTFTProcessor::process_block(), Aleph::FFT< Real >::OverlapSave::process_block(), Aleph::FFT< Real >::PartitionedConvolver::process_block(), Aleph::FFT< Real >::zeros(), and Aleph::FFT< Real >::zeros().
|
inlinestaticprivate |
Rationale: Transforms an analog transfer function H(s) via rational substitution s = N(z)/D(z), as used in bilinear or frequency-selective mappings.
Definition at line 2610 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::effective_coeff_length(), Aleph::FFT< Real >::IIRCoefficients::numerator, Aleph::FFT< Real >::polynomial_multiply(), Aleph::FFT< Real >::polynomial_power(), Aleph::FFT< Real >::scaled_tolerance(), Aleph::FFT< Real >::substitute_rational_polynomial(), and Aleph::FFT< Real >::trim_polynomial_leading_zeros().
Referenced by Aleph::FFT< Real >::design_bandstop_sections_without_numerator_roots(), and Aleph::FFT< Real >::design_transformed_sections().
|
inlinestatic |
Applies a Blackman window of matching size to a complex signal.
Definition at line 9022 of file fft.H.
References Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::blackman_window(), and Aleph::Array< T >::size().
|
inlinestatic |
Applies a Blackman window of matching size to a real signal.
Definition at line 9001 of file fft.H.
References Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::blackman_window(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::apply_blackman_window().
|
inlinestatic |
Definition at line 9465 of file fft.H.
References Aleph::FFT< Real >::apply_blackman_window(), and Aleph::FFT< Real >::build_real_input().
|
inlinestatic |
Definition at line 9489 of file fft.H.
References Aleph::FFT< Real >::apply_blackman_window(), and Aleph::FFT< Real >::build_complex_input().
|
inlinestatic |
Applies a Hamming window of matching size to a complex signal.
Definition at line 9015 of file fft.H.
References Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::hamming_window(), and Aleph::Array< T >::size().
|
inlinestatic |
Applies a Hamming window of matching size to a real signal.
Definition at line 8994 of file fft.H.
References Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::hamming_window(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::apply_hamming_window().
|
inlinestatic |
Definition at line 9457 of file fft.H.
References Aleph::FFT< Real >::apply_hamming_window(), and Aleph::FFT< Real >::build_real_input().
|
inlinestatic |
Definition at line 9481 of file fft.H.
References Aleph::FFT< Real >::apply_hamming_window(), and Aleph::FFT< Real >::build_complex_input().
|
inlinestatic |
Applies a Hann window of matching size to a complex signal.
Definition at line 9008 of file fft.H.
References Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::hann_window(), and Aleph::Array< T >::size().
|
inlinestatic |
Applies a Hann window of matching size to a real signal.
Definition at line 8987 of file fft.H.
References Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::hann_window(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::apply_hann_window().
|
inlinestatic |
Definition at line 9449 of file fft.H.
References Aleph::FFT< Real >::apply_hann_window(), and Aleph::FFT< Real >::build_real_input().
|
inlinestatic |
Definition at line 9473 of file fft.H.
References Aleph::FFT< Real >::apply_hann_window(), and Aleph::FFT< Real >::build_complex_input().
|
inlinestaticprivatenoexcept |
Rationale: Multiplies spectral densities by 2 for interior bins to account for energy in the omitted negative frequency half.
Definition at line 860 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::is_one_sided_interior_bin(), and value.
|
inlinestatic |
Applies a real window sample-by-sample to a complex signal.
Definition at line 8957 of file fft.H.
References ah_invalid_argument_if, Aleph::Array< T >::create(), output, and Aleph::Array< T >::size().
|
inlinestatic |
Applies a real window sample-by-sample to a real signal.
Definition at line 8943 of file fft.H.
References ah_invalid_argument_if, Aleph::Array< T >::create(), output, and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::apply_blackman_window(), Aleph::FFT< Real >::apply_blackman_window(), Aleph::FFT< Real >::apply_hamming_window(), Aleph::FFT< Real >::apply_hamming_window(), Aleph::FFT< Real >::apply_hann_window(), Aleph::FFT< Real >::apply_hann_window(), Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::prepare_stft_frame_input(), Aleph::FFT< Real >::prepare_welch_frames(), Aleph::FFT< Real >::windowed_spectrum(), and Aleph::FFT< Real >::windowed_spectrum().
|
inlinestatic |
Definition at line 8972 of file fft.H.
References Aleph::FFT< Real >::apply_window(), and Aleph::FFT< Real >::build_real_input().
|
inlinestatic |
Definition at line 8980 of file fft.H.
References Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::build_real_input().
|
inlinestaticnoexcept |
Returns whether the runtime CPU can execute the AVX2 double kernel when it has been compiled in.
Definition at line 6069 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::avx2_runtime_available(), and Aleph::FFT< Real >::detected_simd_backend().
|
inlinestaticconstexprnoexcept |
|
inlinestaticnoexcept |
Returns whether AVX2 dispatch is supported at runtime.
Definition at line 6261 of file fft.H.
References Aleph::FFT< Real >::avx2_dispatch_available().
|
inlinestaticprivate |
Rationale: Generates the base memory offsets for all 1D slices along a specific axis in a multidimensional tensor.
Definition at line 5180 of file fft.H.
References Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), offset, Aleph::Array< T >::reserve(), Aleph::FFT< Real >::saturating_product(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::transform_axis_impl().
|
inlinestaticprivate |
Definition at line 1649 of file fft.H.
References ah_domain_error_if, ah_invalid_argument_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::effective_coeff_length(), Aleph::FFT< Real >::max_abs_value(), Aleph::FFT< Real >::BalancedPolynomial::monic, output, Aleph::FFT< Real >::polynomial_root_lower_bound(), Aleph::FFT< Real >::polynomial_root_upper_bound(), and Aleph::FFT< Real >::scaled_tolerance().
Referenced by Aleph::FFT< Real >::polynomial_roots_impl().
|
inlinestatic |
|
inlinestatic |
|
inlinestaticnoexcept |
Returns the SIMD backend selected for throughput-oriented batch plan paths under the current runtime policy.
Definition at line 6225 of file fft.H.
References Aleph::FFT< Real >::automatic, Aleph::FFT< Real >::avx2, Aleph::FFT< Real >::avx2_only, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::detected_simd_backend(), Aleph::FFT< Real >::neon, Aleph::FFT< Real >::neon_only, Aleph::FFT< Real >::scalar, Aleph::FFT< Real >::scalar_only, and Aleph::FFT< Real >::simd_preference().
Referenced by Aleph::FFT< Real >::batched_plan_simd_backend_name().
|
inlinestaticnoexcept |
Returns the active batch-plan SIMD backend name.
Definition at line 6247 of file fft.H.
References Aleph::FFT< Real >::batched_plan_simd_backend(), and Aleph::FFT< Real >::simd_backend_name().
|
inlinestatic |
One-shot batched causal SOS filtering across real channels.
Definition at line 12108 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::FFT< Real >::sosfilt().
Referenced by Aleph::FFT< Real >::batched_sosfilt().
|
inlinestatic |
Definition at line 12145 of file fft.H.
References Aleph::Array< T >::append(), Aleph::FFT< Real >::batched_sosfilt(), Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::build_real_input().
|
inlinestatic |
Batched STFT over a collection of real signals.
Definition at line 11263 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), options, output, and Aleph::FFT< Real >::stft_impl().
Referenced by Aleph::FFT< Real >::batched_stft().
|
inlinestatic |
Hann-window batched STFT.
Definition at line 11305 of file fft.H.
References Aleph::FFT< Real >::batched_stft(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::hann_window(), and options.
|
inlinestatic |
Digital Bessel band-pass design returned as SOS.
Definition at line 13448 of file fft.H.
References Aleph::FFT< Real >::bessel_prototype(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::design_transformed_sections(), and Aleph::FFT< Real >::prewarp_band_edges().
|
inlinestatic |
Digital Bessel band-stop design returned as SOS.
Definition at line 13470 of file fft.H.
References Aleph::FFT< Real >::bessel_prototype(), Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::design_bandstop_sections_without_numerator_roots().
|
inlinestatic |
Digital Bessel high-pass design returned as SOS.
Definition at line 13434 of file fft.H.
References Aleph::FFT< Real >::bessel_prototype(), Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::design_low_high_sections().
|
inlinestatic |
Digital Bessel low-pass design returned as SOS.
The analog prototype is normalized so that the digital cutoff matches the -3 dB point after bilinear mapping.
Definition at line 13420 of file fft.H.
References Aleph::FFT< Real >::bessel_prototype(), Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::design_low_high_sections().
|
inlinestaticprivate |
implementation of the Bessel filter analog prototype.
Definition at line 3480 of file fft.H.
References ah_runtime_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::evaluate_analog_transfer_magnitude(), Aleph::FFT< Real >::AnalogPrototype::poles, Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::polynomial_roots_impl(), Aleph::FFT< Real >::real_polynomial_from_roots(), Aleph::FFT< Real >::reverse_bessel_polynomial(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::bessel_bandpass(), Aleph::FFT< Real >::bessel_bandstop(), Aleph::FFT< Real >::bessel_highpass(), and Aleph::FFT< Real >::bessel_lowpass().
|
inlinestaticprivate |
Rationale: Performs the bilinear substitution mapping from the S-plane to the Z-domain: H(z) = H(s)|s=2*fs*(z-1)/(z+1).
Definition at line 2466 of file fft.H.
References Aleph::FFT< Real >::add_scaled_polynomial(), ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::integer_power(), output, Aleph::FFT< Real >::polynomial_multiply(), Aleph::FFT< Real >::signed_binomial(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::bilinear_transform_impl().
|
inlinestatic |
Bilinear transform of an analog transfer function.
Definition at line 13168 of file fft.H.
References Aleph::FFT< Real >::bilinear_transform_impl(), and Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::bilinear_transform().
|
inlinestatic |
Definition at line 13181 of file fft.H.
References Aleph::FFT< Real >::bilinear_transform(), Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::build_real_input().
|
inlinestaticprivate |
implementation helper for the bilinear transform.
Definition at line 2895 of file fft.H.
References ah_invalid_argument_if, Aleph::FFT< Real >::bilinear_substitute_polynomial(), Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::normalize_iir_coefficients().
Referenced by Aleph::FFT< Real >::bilinear_transform(), Aleph::FFT< Real >::design_bandstop_sections_without_numerator_roots(), Aleph::FFT< Real >::design_prototype_sections(), and Aleph::FFT< Real >::design_transformed_sections().
|
inlinestaticprivatenoexcept |
Performs bit-reversal permutation in-place.
This is a required preprocessing step for the iterative Cooley-Tukey FFT. It rearranges the elements of the array such that the element at index 'i' is moved to the index formed by reversing the bits of 'i'.
| a | The array to be permuted. |
Definition at line 5804 of file fft.H.
Referenced by Aleph::FFT< Real >::transform_impl().
|
inlinestatic |
Returns a Blackman window of length n.
Definition at line 8894 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::cosine_sum_window().
Referenced by Aleph::FFT< Real >::apply_blackman_window(), and Aleph::FFT< Real >::apply_blackman_window().
|
inlinestaticprivate |
Definition at line 5047 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::apply_blackman_window(), Aleph::FFT< Real >::apply_hamming_window(), Aleph::FFT< Real >::apply_hann_window(), Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::inverse_transform_real(), Aleph::FFT< Real >::irfft(), Aleph::FFT< Real >::magnitude_spectrum(), Aleph::FFT< Real >::multiply(), Aleph::FFT< Real >::phase_spectrum(), Aleph::FFT< Real >::pinverse_transform_real(), Aleph::FFT< Real >::pirfft(), Aleph::FFT< Real >::pmultiply(), Aleph::FFT< Real >::power_spectrum(), Aleph::FFT< Real >::ISTFTProcessor::pprocess_frame(), Aleph::FFT< Real >::ISTFTProcessor::process_frame(), Aleph::FFT< Real >::ptransform_padded(), Aleph::FFT< Real >::ptransformed(), Aleph::FFT< Real >::transform_padded(), Aleph::FFT< Real >::transformed(), and Aleph::FFT< Real >::windowed_spectrum().
|
inlinestaticprivate |
Definition at line 1345 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::Array< T >::create().
Referenced by Aleph::FFT< Real >::STFTProcessor::emit_ready_frames().
|
inlinestaticprivate |
Definition at line 5055 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::apply_blackman_window(), Aleph::FFT< Real >::apply_hamming_window(), Aleph::FFT< Real >::apply_hann_window(), Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::batched_sosfilt(), Aleph::FFT< Real >::bilinear_transform(), Aleph::FFT< Real >::OverlapSave::convolve(), Aleph::FFT< Real >::PartitionedConvolver::convolve(), Aleph::FFT< Real >::OverlapAdd::convolve(), Aleph::FFT< Real >::LFilter::filter(), Aleph::FFT< Real >::SOSFilter::filter(), Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::firls(), Aleph::FFT< Real >::firls(), Aleph::FFT< Real >::frame_signal(), Aleph::FFT< Real >::freqz(), Aleph::FFT< Real >::gain_margin(), Aleph::FFT< Real >::group_delay(), Aleph::FFT< Real >::group_delay(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::is_stable(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::multiply(), Aleph::FFT< Real >::overlap_add_convolution(), Aleph::FFT< Real >::overlap_save_convolution(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::partitioned_convolution(), Aleph::FFT< Real >::OverlapAdd::pconvolve(), Aleph::FFT< Real >::pfiltfilt(), Aleph::FFT< Real >::phase_delay(), Aleph::FFT< Real >::phase_delay(), Aleph::FFT< Real >::phase_margin(), Aleph::FFT< Real >::pmultiply(), Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::poverlap_add_convolution(), Aleph::FFT< Real >::STFTProcessor::pprocess_block(), Aleph::FFT< Real >::OverlapAdd::pprocess_block(), Aleph::FFT< Real >::prfft(), Aleph::FFT< Real >::STFTProcessor::process_block(), Aleph::FFT< Real >::OverlapAdd::process_block(), Aleph::FFT< Real >::OverlapSave::process_block(), Aleph::FFT< Real >::PartitionedConvolver::process_block(), Aleph::FFT< Real >::pstft(), Aleph::FFT< Real >::pstft(), Aleph::FFT< Real >::ptransform(), Aleph::FFT< Real >::ptransform_padded(), Aleph::FFT< Real >::remez(), Aleph::FFT< Real >::remez(), Aleph::FFT< Real >::resample_poly(), Aleph::FFT< Real >::rfft(), Aleph::FFT< Real >::sosfilt(), Aleph::FFT< Real >::stability_margin(), Aleph::FFT< Real >::stft(), Aleph::FFT< Real >::stft(), Aleph::FFT< Real >::stft(), Aleph::FFT< Real >::stft(), Aleph::FFT< Real >::transform(), Aleph::FFT< Real >::transform_padded(), Aleph::FFT< Real >::upfirdn(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::window_coherent_gain(), Aleph::FFT< Real >::window_enbw(), Aleph::FFT< Real >::window_energy(), Aleph::FFT< Real >::windowed_spectrum(), and Aleph::FFT< Real >::zeros().
|
inlinestaticprivate |
Definition at line 4067 of file fft.H.
References ah_invalid_argument_if, ah_runtime_error_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), Aleph::low(), Aleph::FFT< Real >::scaled_tolerance(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::remez_impl().
|
inlinestatic |
Digital Butterworth band-pass design returned as SOS.
Definition at line 13222 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::butterworth_prototype(), Aleph::FFT< Real >::design_transformed_sections(), and Aleph::FFT< Real >::prewarp_band_edges().
|
inlinestatic |
Digital Butterworth band-stop design returned as SOS.
Definition at line 13244 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::butterworth_prototype(), and Aleph::FFT< Real >::design_bandstop_sections_without_numerator_roots().
|
inlinestatic |
Digital Butterworth high-pass design returned as SOS.
Definition at line 13207 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::butterworth_prototype(), and Aleph::FFT< Real >::design_prototype_sections().
|
inlinestatic |
Digital Butterworth low-pass design returned as SOS.
Definition at line 13192 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::butterworth_prototype(), and Aleph::FFT< Real >::design_prototype_sections().
|
inlinestaticprivate |
Definition at line 3217 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), k, and Aleph::FFT< Real >::AnalogPrototype::poles.
Referenced by Aleph::FFT< Real >::butterworth_bandpass(), Aleph::FFT< Real >::butterworth_bandstop(), Aleph::FFT< Real >::butterworth_highpass(), and Aleph::FFT< Real >::butterworth_lowpass().
|
inlinestaticprivate |
Definition at line 2987 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and y.
Referenced by Aleph::FFT< Real >::ellint_1_impl().
|
inlinestatic |
Digital Chebyshev-I band-pass design returned as SOS.
Definition at line 13293 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::chebyshev1_prototype(), Aleph::FFT< Real >::design_transformed_sections(), and Aleph::FFT< Real >::prewarp_band_edges().
|
inlinestatic |
Digital Chebyshev-I band-stop design returned as SOS.
Definition at line 13317 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::chebyshev1_prototype(), and Aleph::FFT< Real >::design_bandstop_sections_without_numerator_roots().
|
inlinestatic |
Digital Chebyshev-I high-pass design returned as SOS.
Definition at line 13276 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::chebyshev1_prototype(), and Aleph::FFT< Real >::design_prototype_sections().
|
inlinestatic |
Digital Chebyshev-I low-pass design returned as SOS.
Definition at line 13259 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::chebyshev1_prototype(), and Aleph::FFT< Real >::design_prototype_sections().
|
inlinestaticprivate |
Definition at line 3241 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), k, Aleph::FFT< Real >::AnalogPrototype::poles, Aleph::FFT< Real >::real_polynomial_from_roots(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::chebyshev1_bandpass(), Aleph::FFT< Real >::chebyshev1_bandstop(), Aleph::FFT< Real >::chebyshev1_highpass(), Aleph::FFT< Real >::chebyshev1_lowpass(), and Aleph::FFT< Real >::elliptic_prototype().
|
inlinestatic |
Digital Chebyshev-II band-pass design returned as SOS.
Definition at line 13368 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::chebyshev2_prototype(), Aleph::FFT< Real >::design_transformed_sections(), and Aleph::FFT< Real >::prewarp_band_edges().
|
inlinestatic |
Digital Chebyshev-II band-stop design returned as SOS.
Definition at line 13392 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::chebyshev2_prototype(), Aleph::FFT< Real >::design_transformed_sections(), and Aleph::FFT< Real >::prewarp_band_edges().
|
inlinestatic |
Digital Chebyshev-II high-pass design returned as SOS.
Definition at line 13352 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::chebyshev2_prototype(), and Aleph::FFT< Real >::design_low_high_sections().
|
inlinestatic |
Digital Chebyshev-II low-pass design returned as SOS.
Definition at line 13336 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::chebyshev2_prototype(), and Aleph::FFT< Real >::design_low_high_sections().
|
inlinestaticprivate |
Definition at line 3280 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), k, Aleph::FFT< Real >::real_polynomial_from_roots(), Aleph::Array< T >::reserve(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::AnalogPrototype::zeros.
Referenced by Aleph::FFT< Real >::chebyshev2_bandpass(), Aleph::FFT< Real >::chebyshev2_bandstop(), Aleph::FFT< Real >::chebyshev2_highpass(), and Aleph::FFT< Real >::chebyshev2_lowpass().
|
inlinestaticprivate |
Definition at line 4193 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::evenly_spaced_extrema(), floor(), Aleph::Array< T >::reserve(), Aleph::FFT< Real >::scaled_tolerance(), Aleph::Array< T >::size(), and Aleph::sum().
Referenced by Aleph::FFT< Real >::remez_impl().
|
inlinestatic |
|
inlinestatic |
|
inlinestaticprivate |
Definition at line 2971 of file fft.H.
References Aleph::and, Aleph::blossom_maximum_cardinality_matching(), and k.
Referenced by Aleph::FFT< Real >::complete_elliptic_first_kind(), and Aleph::FFT< Real >::ellint_1_impl().
|
inlinestaticprivate |
Definition at line 7709 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::compact_real_spectrum(), and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::Plan::prfft_batch(), and Aleph::FFT< Real >::Plan::rfft_batch().
|
inlinestaticprivate |
Definition at line 7696 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::compact_real_batch_spectra(), Aleph::FFT< Real >::prfft(), Aleph::FFT< Real >::Plan::prfft(), Aleph::FFT< Real >::rfft(), and Aleph::FFT< Real >::Plan::rfft().
|
inlinestaticprivate |
Rationale: Complete elliptic integral K(k) using the modulus convention required by elliptic filter design.
Definition at line 3049 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::comp_ellint_1_impl().
Referenced by Aleph::FFT< Real >::elliptic_prototype(), Aleph::FFT< Real >::jacobi_sn_cn_dn(), and Aleph::FFT< Real >::solve_elliptic_selectivity_modulus().
|
inlinestaticprivate |
Internal generator for generalized cosine windows (Hann, Hamming, Blackman).
Definition at line 476 of file fft.H.
References Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::reserve(), and value.
Referenced by Aleph::FFT< Real >::blackman_window(), Aleph::FFT< Real >::hamming_window(), and Aleph::FFT< Real >::hann_window().
|
inlinestaticprivatenoexcept |
Definition at line 1319 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::count().
Referenced by Aleph::FFT< Real >::OverlapAddBank::process_chunk_batch_impl().
|
inlinestatic |
|
inlinestatic |
|
inlinestaticprivatenoexcept |
Rationale: Rule-of-thumb for filtfilt padding to allow transients to decay.
Definition at line 550 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::iir_filtfilt_impl(), Aleph::FFT< Real >::pfiltfilt(), and Aleph::FFT< Real >::sos_filtfilt_impl().
|
inlinestaticprivate |
Returns a copy with DC offset removed.
Definition at line 763 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::mean(), output, and Aleph::FFT< Real >::sum_values().
Referenced by Aleph::FFT< Real >::prepare_welch_frames().
|
inlinestaticprivate |
Specialization for band-stop designs to handle zeros explicitly.
Definition at line 3706 of file fft.H.
References ah_invalid_argument_if, Aleph::FFT< Real >::apply_analog_rational_transform(), Aleph::FFT< Real >::bilinear_transform_impl(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::group_center(), Aleph::FFT< Real >::prewarp_band_edges(), Aleph::FFT< Real >::real_polynomial_from_roots(), Aleph::Array< T >::reserve(), Aleph::FFT< Real >::RootGroup::roots, and Aleph::FFT< Real >::transfer_function_to_sections().
Referenced by Aleph::FFT< Real >::bessel_bandstop(), Aleph::FFT< Real >::butterworth_bandstop(), and Aleph::FFT< Real >::chebyshev1_bandstop().
|
inlinestaticprivate |
internal helper for designing standard lowpass/highpass SOS filters.
Definition at line 3530 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::design_transformed_sections(), and Aleph::FFT< Real >::prewarp_frequency().
Referenced by Aleph::FFT< Real >::bessel_highpass(), Aleph::FFT< Real >::bessel_lowpass(), Aleph::FFT< Real >::chebyshev2_highpass(), Aleph::FFT< Real >::chebyshev2_lowpass(), Aleph::FFT< Real >::elliptic_highpass(), and Aleph::FFT< Real >::elliptic_lowpass().
|
inlinestaticprivate |
Definition at line 3546 of file fft.H.
References ah_invalid_argument_if, Aleph::FFT< Real >::bilinear_transform_impl(), Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::integer_power(), Aleph::FFT< Real >::prewarp_frequency(), Aleph::FFT< Real >::real_polynomial_from_roots(), Aleph::Array< T >::reserve(), Aleph::FFT< Real >::root_groups_impl(), and Aleph::FFT< Real >::section_from_coefficients().
Referenced by Aleph::FFT< Real >::butterworth_highpass(), Aleph::FFT< Real >::butterworth_lowpass(), Aleph::FFT< Real >::chebyshev1_highpass(), and Aleph::FFT< Real >::chebyshev1_lowpass().
|
inlinestaticprivate |
Generic implementation for designing transformed SOS cascades.
Definition at line 3757 of file fft.H.
References Aleph::FFT< Real >::apply_analog_rational_transform(), Aleph::FFT< Real >::bilinear_transform_impl(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::real_polynomial_from_roots(), and Aleph::FFT< Real >::transfer_function_to_sections().
Referenced by Aleph::FFT< Real >::bessel_bandpass(), Aleph::FFT< Real >::butterworth_bandpass(), Aleph::FFT< Real >::chebyshev1_bandpass(), Aleph::FFT< Real >::chebyshev2_bandpass(), Aleph::FFT< Real >::chebyshev2_bandstop(), Aleph::FFT< Real >::design_low_high_sections(), Aleph::FFT< Real >::elliptic_bandpass(), and Aleph::FFT< Real >::elliptic_bandstop().
|
inlinestaticnoexcept |
Returns the best SIMD backend supported by the current hardware among the kernels compiled for this precision.
Definition at line 6142 of file fft.H.
References Aleph::FFT< Real >::avx2, Aleph::FFT< Real >::avx2_dispatch_available(), Aleph::FFT< Real >::neon, Aleph::FFT< Real >::neon_dispatch_available(), and Aleph::FFT< Real >::scalar.
Referenced by Aleph::FFT< Real >::batched_plan_simd_backend(), Aleph::FFT< Real >::detected_simd_backend_name(), Aleph::FFT< Real >::Plan::should_use_avx2(), Aleph::FFT< Real >::Plan::should_use_neon(), and Aleph::FFT< Real >::simd_backend().
|
inlinestaticnoexcept |
Returns the detected hardware SIMD backend name.
Definition at line 6153 of file fft.H.
References Aleph::FFT< Real >::detected_simd_backend(), and Aleph::FFT< Real >::simd_backend_name().
|
inlinestaticprivate |
Definition at line 1567 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::effective_coeff_length(), remainder(), and root().
Referenced by Aleph::FFT< Real >::extract_repeated_unit_roots().
|
inlinestaticprivate |
Definition at line 1275 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::count(), and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::STFTProcessor::emit_ready_frames(), and Aleph::FFT< Real >::ISTFTProcessor::normalize_prefix().
|
inlinestaticprivatenoexcept |
Returns length excluding trailing insignificant zeros.
Definition at line 870 of file fft.H.
References Aleph::and, Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::max_abs_value().
Referenced by Aleph::FFT< Real >::analytic_group_delay_impl(), Aleph::FFT< Real >::apply_analog_rational_transform(), Aleph::FFT< Real >::balance_polynomial_for_roots(), Aleph::FFT< Real >::divide_polynomial_by_linear_root(), Aleph::FFT< Real >::evaluate_polynomial_and_derivative(), Aleph::FFT< Real >::evaluate_series_at_unit_circle(), Aleph::FFT< Real >::extract_repeated_unit_roots(), Aleph::FFT< Real >::initialize_root_guesses(), Aleph::FFT< Real >::normalize_iir_coefficients(), Aleph::FFT< Real >::polynomial_roots_impl(), Aleph::FFT< Real >::resample_poly(), and Aleph::FFT< Real >::substitute_rational_polynomial().
|
inlinestaticprivate |
Definition at line 3021 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::carlson_rf_impl(), Aleph::FFT< Real >::comp_ellint_1_impl(), and k.
Referenced by Aleph::FFT< Real >::inverse_jacobi_sc(), and Aleph::FFT< Real >::jacobi_sn_cn_dn().
|
inlinestatic |
Digital elliptic/Cauer band-pass design returned as SOS.
Definition at line 13521 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::design_transformed_sections(), Aleph::FFT< Real >::elliptic_prototype(), and Aleph::FFT< Real >::prewarp_band_edges().
|
inlinestatic |
Digital elliptic/Cauer band-stop design returned as SOS.
Definition at line 13547 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::design_transformed_sections(), Aleph::FFT< Real >::elliptic_prototype(), and Aleph::FFT< Real >::prewarp_band_edges().
|
inlinestaticprivate |
Definition at line 3198 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::jacobi_sn_cn_dn(), and Aleph::FFT< Real >::scaled_tolerance().
Referenced by Aleph::FFT< Real >::elliptic_prototype().
|
inlinestatic |
Digital elliptic/Cauer high-pass design returned as SOS.
Definition at line 13503 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::design_low_high_sections(), and Aleph::FFT< Real >::elliptic_prototype().
|
inlinestatic |
Digital elliptic/Cauer low-pass design returned as SOS.
Definition at line 13485 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::design_low_high_sections(), and Aleph::FFT< Real >::elliptic_prototype().
|
inlinestaticprivate |
Definition at line 3332 of file fft.H.
References ah_domain_error_if, ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::chebyshev1_prototype(), Aleph::FFT< Real >::JacobiValues::cn, Aleph::FFT< Real >::complete_elliptic_first_kind(), Aleph::FFT< Real >::elliptic_cd_minus_imaginary(), Aleph::FFT< Real >::inverse_jacobi_sc(), Aleph::FFT< Real >::jacobi_sn_cn_dn(), r, Aleph::FFT< Real >::real_polynomial_from_roots(), Aleph::Array< T >::reserve(), Aleph::FFT< Real >::scaled_tolerance(), Aleph::Array< T >::size(), Aleph::FFT< Real >::JacobiValues::sn, Aleph::FFT< Real >::solve_elliptic_selectivity_modulus(), and Aleph::FFT< Real >::AnalogPrototype::zeros.
Referenced by Aleph::FFT< Real >::elliptic_bandpass(), Aleph::FFT< Real >::elliptic_bandstop(), Aleph::FFT< Real >::elliptic_highpass(), and Aleph::FFT< Real >::elliptic_lowpass().
|
inlinestaticprivate |
Enforce conjugate symmetry on roots of a real-coefficient polynomial.
For every complex root the nearest conjugate candidate is found and both are replaced by the exact conjugate pair built from the average of their real parts and imaginary magnitudes.
Definition at line 2706 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::error(), Aleph::FFT< Real >::max_root_radius(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::root_groups_impl().
|
inlinestaticprivatenoexcept |
Definition at line 1864 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::error().
Referenced by Aleph::FFT< Real >::polynomial_roots_impl().
|
inlinestaticprivate |
Rationale: Direct evaluation of |H(j*omega)| for an analog transfer function.
Definition at line 3432 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::evaluate_polynomial_and_derivative(), Aleph::FFT< Real >::max_abs_value(), and Aleph::FFT< Real >::scaled_tolerance().
Referenced by Aleph::FFT< Real >::bessel_prototype().
|
inlinestaticprivatenoexcept |
Definition at line 4164 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), k, and value.
Referenced by Aleph::FFT< Real >::remez_impl().
|
inlinestaticprivate |
implementation helper for FIR frequency response magnitude.
Definition at line 3820 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::evaluate_transfer_at().
Referenced by Aleph::FFT< Real >::normalize_fir_at_omega().
|
inlinestaticprivate |
Definition at line 1549 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::effective_coeff_length(), output, and Aleph::FFT< Real >::PolynomialEvaluation::value.
Referenced by Aleph::FFT< Real >::evaluate_analog_transfer_magnitude(), Aleph::FFT< Real >::extract_repeated_unit_roots(), Aleph::FFT< Real >::polish_roots_with_newton(), Aleph::FFT< Real >::roots_pass_residual_check(), Aleph::FFT< Real >::try_aberth_ehrlich_roots(), and Aleph::FFT< Real >::try_durand_kerner_roots().
|
inlinestaticprivate |
Definition at line 1521 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::effective_coeff_length(), Aleph::FFT< Real >::max_abs_value(), output, value, and Aleph::FFT< Real >::SeriesEvaluation::value.
Referenced by Aleph::FFT< Real >::evaluate_transfer_at(), and Aleph::FFT< Real >::evaluate_transfer_terms_at().
|
inlinestaticprivate |
Definition at line 4491 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::evaluate_transfer_at().
Referenced by Aleph::FFT< Real >::gain_margin(), and Aleph::FFT< Real >::phase_margin().
|
inlinestaticprivate |
Definition at line 1470 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::evaluate_series_at_unit_circle(), Aleph::FFT< Real >::normalize_iir_coefficients(), Aleph::FFT< Real >::IIRCoefficients::numerator, Aleph::FFT< Real >::series_zero_tolerance(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::evaluate_fir_response_magnitude(), Aleph::FFT< Real >::evaluate_sos_transfer_at(), Aleph::FFT< Real >::freqz(), Aleph::FFT< Real >::freqz_impl(), Aleph::FFT< Real >::gain_margin(), and Aleph::FFT< Real >::phase_margin().
|
inlinestaticprivate |
implementation helper for evaluating H(z) and its derivatives on the unit circle.
Definition at line 2146 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::TransferTerms::denominator, Aleph::FFT< Real >::TransferTerms::denominator_derivative, Aleph::FFT< Real >::evaluate_series_at_unit_circle(), Aleph::FFT< Real >::normalize_iir_coefficients(), Aleph::FFT< Real >::IIRCoefficients::numerator, Aleph::FFT< Real >::TransferTerms::numerator, Aleph::FFT< Real >::TransferTerms::numerator_derivative, Aleph::FFT< Real >::series_zero_tolerance(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::analytic_group_delay_impl(), and Aleph::FFT< Real >::analytic_sos_group_delay_impl().
|
inlinestaticprivate |
Definition at line 4174 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::choose_remez_extrema(), and Aleph::FFT< Real >::remez_impl().
|
inlinestaticprivate |
Definition at line 7764 of file fft.H.
References Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::expand_real_spectrum(), and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::Plan::irfft_batch(), and Aleph::FFT< Real >::Plan::pirfft_batch().
|
inlinestaticprivate |
Definition at line 7744 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::resolve_irfft_signal_size(), and Aleph::FFT< Real >::spectrum().
Referenced by Aleph::FFT< Real >::expand_real_batch_spectra(), Aleph::FFT< Real >::Plan::irfft(), Aleph::FFT< Real >::irfft(), Aleph::FFT< Real >::Plan::pirfft(), and Aleph::FFT< Real >::pirfft().
|
inlinestaticprivate |
Definition at line 1584 of file fft.H.
References Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::divide_polynomial_by_linear_root(), Aleph::FFT< Real >::effective_coeff_length(), Aleph::FFT< Real >::evaluate_polynomial_and_derivative(), Aleph::FFT< Real >::max_abs_value(), remainder(), root(), Aleph::FFT< Real >::scaled_tolerance(), Aleph::FFT< Real >::trim_leading_zeros_copy(), and Aleph::FFT< Real >::PolynomialEvaluation::value.
Referenced by Aleph::FFT< Real >::zeros().
|
inlinestaticprivate |
Rationale: Factors a number into small primes (2, 3, 4, 5) to determine if a composite FFT kernel is applicable.
Definition at line 5966 of file fft.H.
References Aleph::Array< T >::append(), and Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::Plan::Plan().
|
inlinestatic |
Zero-phase filtering of a cascade of biquad sections.
Definition at line 13702 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::sos_filtfilt_impl().
|
inlinestatic |
Zero-phase FIR filtering via forward-backward convolution.
This implementation uses reflect padding, a forward causal FIR pass, time reversal, and a second FIR pass. The output length matches the input length.
Definition at line 13578 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::default_filtfilt_pad_length(), Aleph::Array< T >::is_empty(), output, Aleph::FFT< Real >::prefix_copy(), Aleph::FFT< Real >::reflect_pad_signal(), Aleph::FFT< Real >::reverse_copy(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::slice_copy().
Referenced by Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::filtfilt(), and Aleph::FFT< Real >::filtfilt().
|
inlinestatic |
Zero-phase IIR filtering using transfer-function coefficients.
The denominator is interpreted in the standard DSP form a[0] y[n] + a[1] y[n-1] + ... = b[0] x[n] + .... Coefficients are normalized by a[0] internally and the recursion uses transposed direct-form II with steady-state endpoint initialization.
Definition at line 13674 of file fft.H.
References Aleph::FFT< Real >::iir_filtfilt_impl().
|
inlinestatic |
Zero-phase filtering of one biquad section.
Definition at line 13694 of file fft.H.
References Aleph::FFT< Real >::filtfilt(), and section().
|
inlinestatic |
Zero-phase IIR filtering with explicit coefficient groups.
Definition at line 13686 of file fft.H.
References Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::filtfilt(), and Aleph::FFT< Real >::IIRCoefficients::numerator.
|
inlinestatic |
Definition at line 13734 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), Aleph::FFT< Real >::filtfilt(), and section().
|
inlinestatic |
Definition at line 13643 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::filtfilt().
|
inlinestatic |
Definition at line 13725 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::filtfilt().
|
inlinestatic |
Definition at line 13713 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::filtfilt().
|
inlinestatic |
Definition at line 13744 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::filtfilt().
|
inlinestatic |
FIR design by weighted least squares over piecewise-linear bands.
Definition at line 9186 of file fft.H.
Referenced by Aleph::FFT< Real >::firls(), and Aleph::FFT< Real >::firls().
|
inlinestatic |
Definition at line 9204 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::firls().
|
inlinestatic |
Definition at line 9222 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::firls().
|
inlinestaticprivate |
implementation of Least-Squares FIR design.
Definition at line 3945 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), col, Aleph::Array< T >::create(), Aleph::FFT< Real >::integrate_cos_product(), Aleph::FFT< Real >::integrate_linear_cos_basis(), Aleph::Array< T >::is_empty(), k, Aleph::Array< T >::reserve(), row, Aleph::FFT< Real >::scaled_tolerance(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::solve_dense_system().
|
inlinestatic |
FIR band-pass design via the window method.
Definition at line 9092 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::firwin_lowpass_impl(), Aleph::low(), and Aleph::FFT< Real >::normalize_fir_at_omega().
Referenced by Aleph::FFT< Real >::firwin_bandpass(), and Aleph::FFT< Real >::firwin_bandstop().
|
inlinestatic |
FIR band-pass design using a Kaiser window.
Definition at line 9134 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::firwin_bandpass(), Aleph::FFT< Real >::kaiser_beta(), and Aleph::FFT< Real >::kaiser_window().
|
inlinestatic |
FIR band-stop design via the window method.
Definition at line 9149 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::firwin_bandpass(), Aleph::FFT< Real >::normalize_fir_at_omega(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::firwin_bandstop().
|
inlinestatic |
FIR band-stop design using a Kaiser window.
Definition at line 9171 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::firwin_bandstop(), Aleph::FFT< Real >::kaiser_beta(), and Aleph::FFT< Real >::kaiser_window().
|
inlinestatic |
FIR high-pass design via spectral inversion of a low-pass design.
Definition at line 9056 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::firwin_lowpass_impl(), Aleph::FFT< Real >::normalize_fir_at_omega(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::firwin_highpass().
|
inlinestatic |
FIR high-pass design using a Kaiser window.
Definition at line 9079 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::firwin_highpass(), Aleph::FFT< Real >::kaiser_beta(), and Aleph::FFT< Real >::kaiser_window().
|
inlinestatic |
FIR low-pass design via the window method.
Definition at line 9029 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::firwin_lowpass_impl().
Referenced by Aleph::FFT< Real >::firwin_lowpass().
|
inlinestatic |
FIR low-pass design via the window method using a Kaiser window.
Definition at line 9043 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::firwin_lowpass(), Aleph::FFT< Real >::kaiser_beta(), and Aleph::FFT< Real >::kaiser_window().
|
inlinestaticprivate |
implementation of the window-method FIR design.
Definition at line 3846 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), m, Aleph::FFT< Real >::normalize_fir_at_omega(), Aleph::FFT< Real >::normalized_sinc(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::firwin_bandpass(), Aleph::FFT< Real >::firwin_highpass(), and Aleph::FFT< Real >::firwin_lowpass().
|
inlinestaticprivate |
Rationale: Flattens a 2D matrix into a 1D row-major array.
Definition at line 5359 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), col, Aleph::FFT< Real >::matrix_shape(), Aleph::Array< T >::reserve(), and row.
Referenced by Aleph::FFT< Real >::ptransformed2d(), and Aleph::FFT< Real >::transformed2d().
|
inlinestaticprivate |
Rationale: Flattens a 3D tensor into a 1D row-major array.
Definition at line 5428 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), k, Aleph::Array< T >::reserve(), and Aleph::FFT< Real >::tensor3_shape().
Referenced by Aleph::FFT< Real >::ptransformed2d_batch(), Aleph::FFT< Real >::ptransformed3d(), Aleph::FFT< Real >::transformed2d_batch(), and Aleph::FFT< Real >::transformed3d().
|
inlinestatic |
Returns the frame start offsets used by frame_signal.
Definition at line 9582 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::frame_offsets_impl().
|
inlinestaticprivate |
Computes framing offsets.
Definition at line 704 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), and offset.
Referenced by Aleph::FFT< Real >::frame_offsets(), and Aleph::FFT< Real >::frame_signal().
|
inlinestatic |
Splits a real signal into frames using a fixed hop size.
If pad_end is true, the last frame is zero-padded to frame_size. Otherwise, only complete frames are returned.
Definition at line 9891 of file fft.H.
References Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::frame_offsets_impl(), Aleph::Array< T >::is_empty(), offset, and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::frame_signal(), Aleph::FFT< Real >::prepare_welch_frames(), and Aleph::FFT< Real >::stft_impl().
|
inlinestatic |
Definition at line 9927 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::frame_signal().
|
inlinestatic |
Definition at line 12190 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::evaluate_transfer_at(), Aleph::FFT< Real >::FrequencyResponse::omega, and output.
|
inlinestatic |
Samples the discrete-time transfer response on the unit circle.
Definition at line 12156 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::freqz_impl().
Referenced by Aleph::FFT< Real >::freqz(), Aleph::FFT< Real >::freqz(), Aleph::FFT< Real >::freqz(), Aleph::FFT< Real >::freqz(), Aleph::FFT< Real >::freqz(), Aleph::FFT< Real >::gain_margin(), Aleph::FFT< Real >::gain_margin(), Aleph::FFT< Real >::group_delay(), Aleph::FFT< Real >::phase_delay(), Aleph::FFT< Real >::phase_margin(), and Aleph::FFT< Real >::phase_margin().
|
inlinestatic |
FIR frequency response.
Definition at line 12166 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::freqz().
|
inlinestatic |
Definition at line 12182 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::freqz(), and section().
|
inlinestatic |
Definition at line 12174 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::freqz(), and Aleph::FFT< Real >::IIRCoefficients::numerator.
|
inlinestatic |
Definition at line 12225 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::freqz().
|
inlinestatic |
Definition at line 12239 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::freqz().
|
inlinestaticprivate |
Definition at line 1491 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::evaluate_transfer_at(), Aleph::FFT< Real >::FrequencyResponse::omega, and output.
Referenced by Aleph::FFT< Real >::analytic_group_delay_impl(), Aleph::FFT< Real >::analytic_phase_delay_impl(), and Aleph::FFT< Real >::freqz().
|
inlinestatic |
Definition at line 13103 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::evaluate_sos_transfer_at(), Aleph::FFT< Real >::freqz(), and Aleph::FFT< Real >::gain_margin_refined_impl().
|
inlinestatic |
Definition at line 13028 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::evaluate_transfer_at(), Aleph::FFT< Real >::freqz(), and Aleph::FFT< Real >::gain_margin_refined_impl().
|
inlinestatic |
Definition at line 13076 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::gain_margin(), and section().
|
inlinestatic |
Estimates gain margin around the -pi phase crossover.
Definition at line 13001 of file fft.H.
References Aleph::FFT< Real >::gain_margin_impl().
Referenced by Aleph::FFT< Real >::gain_margin(), Aleph::FFT< Real >::gain_margin(), Aleph::FFT< Real >::gain_margin(), and Aleph::FFT< Real >::gain_margin().
|
inlinestatic |
Definition at line 13057 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::gain_margin(), and Aleph::FFT< Real >::IIRCoefficients::numerator.
|
inlinestatic |
Definition at line 13135 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::gain_margin().
|
inlinestatic |
Definition at line 13159 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::gain_margin().
|
inlinestaticprivate |
implementation helper for Gain Margin calculation.
Definition at line 4564 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::interpolate_crossing(), Aleph::FFT< Real >::interpolate_value_at(), m, Aleph::FFT< Real >::FrequencyResponse::magnitude(), Aleph::FFT< Real >::FrequencyResponse::omega, Aleph::FFT< Real >::phase_spectrum(), Aleph::FFT< Real >::FrequencyResponse::response, Aleph::Array< T >::size(), and Aleph::FFT< Real >::unwrap_phase().
Referenced by Aleph::FFT< Real >::gain_margin().
|
inlinestaticprivate |
implementation of refined Gain Margin calculation using analytic evaluation.
Definition at line 4704 of file fft.H.
References ah_invalid_argument_if, Aleph::FFT< Real >::align_phase_near_reference(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::interpolate_value_at(), m, Aleph::FFT< Real >::FrequencyResponse::magnitude(), Aleph::FFT< Real >::FrequencyResponse::omega, Aleph::FFT< Real >::phase_spectrum(), Aleph::FFT< Real >::refine_scalar_crossing(), Aleph::FFT< Real >::FrequencyResponse::response, Aleph::Array< T >::size(), Aleph::FFT< Real >::unwrap_phase(), and w.
Referenced by Aleph::FFT< Real >::gain_margin(), and Aleph::FFT< Real >::gain_margin().
|
inlinestaticprivate |
Rationale: Extracts a non-contiguous slice of data along a tensor axis into a contiguous array for FFT processing.
Definition at line 5234 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::Array< T >::create().
Referenced by Aleph::FFT< Real >::transform_axis_impl().
|
inlinestaticprivatenoexcept |
Geometric center of a root set.
Definition at line 2690 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::design_bandstop_sections_without_numerator_roots(), and Aleph::FFT< Real >::root_groups_impl().
|
inlinestatic |
Definition at line 12893 of file fft.H.
References Aleph::FFT< Real >::analytic_sos_group_delay_impl(), Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::freqz().
|
inlinestatic |
Definition at line 12805 of file fft.H.
References Aleph::FFT< Real >::analytic_group_delay_impl(), and Aleph::blossom_maximum_cardinality_matching().
|
inlinestatic |
Definition at line 12831 of file fft.H.
References Aleph::FFT< Real >::analytic_group_delay_impl(), and Aleph::blossom_maximum_cardinality_matching().
|
inlinestatic |
Definition at line 12871 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::group_delay(), and section().
|
inlinestatic |
Definition at line 12955 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::group_delay().
|
inlinestatic |
Estimates group delay from a sampled frequency response.
Definition at line 12792 of file fft.H.
References Aleph::FFT< Real >::group_delay_impl().
Referenced by Aleph::FFT< Real >::group_delay(), Aleph::FFT< Real >::group_delay(), Aleph::FFT< Real >::group_delay(), Aleph::FFT< Real >::group_delay(), and Aleph::FFT< Real >::group_delay().
|
inlinestatic |
Definition at line 12855 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::group_delay(), and Aleph::FFT< Real >::IIRCoefficients::numerator.
|
inlinestatic |
Definition at line 12927 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::group_delay().
|
inlinestatic |
Definition at line 12975 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::group_delay().
|
inlinestaticprivate |
implementation of numeric group delay calculation.
Definition at line 4809 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::Array< T >::is_empty(), Aleph::FFT< Real >::FrequencyResponse::omega, Aleph::FFT< Real >::phase_spectrum(), Aleph::FFT< Real >::FrequencyResponse::response, Aleph::Array< T >::size(), and Aleph::FFT< Real >::unwrap_phase().
Referenced by Aleph::FFT< Real >::analytic_group_delay_impl(), Aleph::FFT< Real >::analytic_sos_group_delay_impl(), Aleph::FFT< Real >::group_delay(), and Aleph::FFT< Real >::phase_delay_impl().
|
inlinestatic |
Returns a Hamming window of length n.
Definition at line 8887 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::cosine_sum_window().
Referenced by Aleph::FFT< Real >::apply_hamming_window(), and Aleph::FFT< Real >::apply_hamming_window().
|
inlinestatic |
Returns a Hann window of length n.
Definition at line 8880 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::cosine_sum_window().
Referenced by Aleph::FFT< Real >::apply_hann_window(), Aleph::FFT< Real >::apply_hann_window(), Aleph::FFT< Real >::batched_stft(), Aleph::FFT< Real >::istft(), Aleph::FFT< Real >::istft(), Aleph::FFT< Real >::pbatched_stft(), Aleph::FFT< Real >::pistft(), Aleph::FFT< Real >::pistft(), Aleph::FFT< Real >::pstft(), Aleph::FFT< Real >::stft(), and Aleph::FFT< Real >::stft().
|
inlinestatic |
Definition at line 12582 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::poles(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Detects near pole/zero cancellations under a tolerance.
Definition at line 12542 of file fft.H.
References Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::poles(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::zeros().
Referenced by Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), and Aleph::FFT< Real >::has_near_pole_zero_cancellation().
|
inlinestatic |
Definition at line 12554 of file fft.H.
References Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::poles(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Definition at line 12573 of file fft.H.
References Aleph::FFT< Real >::has_near_pole_zero_cancellation(), and section().
|
inlinestatic |
Definition at line 12564 of file fft.H.
References Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::has_near_pole_zero_cancellation(), and Aleph::FFT< Real >::IIRCoefficients::numerator.
|
inlinestatic |
Definition at line 12593 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::has_near_pole_zero_cancellation().
|
inlinestatic |
Definition at line 12605 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::has_near_pole_zero_cancellation().
|
inlinestaticprivatenoexcept |
Rationale: Numerical tolerance for Hermitian symmetry checks.
Determines if X[k] and X[N-k]* are "close enough".
Definition at line 429 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transform_stages().
Referenced by Aleph::FFT< Real >::validate_real_spectrum().
|
inlinestaticprivate |
Definition at line 1101 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::Array< T >::is_empty(), output, Aleph::Array< T >::size(), and y.
Referenced by Aleph::FFT< Real >::LFilter::filter(), Aleph::FFT< Real >::SOSFilter::filter(), Aleph::FFT< Real >::iir_filtfilt_impl(), and Aleph::FFT< Real >::sos_filtfilt_impl().
|
inlinestaticprivate |
Definition at line 1152 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::default_filtfilt_pad_length(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::iir_filter_impl(), Aleph::FFT< Real >::iir_steady_state(), Aleph::Array< T >::is_empty(), Aleph::FFT< Real >::normalize_iir_coefficients(), Aleph::FFT< Real >::IIRCoefficients::numerator, output, Aleph::FFT< Real >::reflect_pad_signal(), Aleph::FFT< Real >::reverse_copy(), Aleph::FFT< Real >::scaled_copy(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::slice_copy().
Referenced by Aleph::FFT< Real >::filtfilt().
|
inlinestaticprivate |
Definition at line 1062 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), col, Aleph::Array< T >::create(), row, Aleph::Array< T >::size(), and Aleph::FFT< Real >::solve_dense_system().
Referenced by Aleph::FFT< Real >::iir_filtfilt_impl(), and Aleph::FFT< Real >::sos_filtfilt_impl().
|
inlinestaticprivate |
Definition at line 1697 of file fft.H.
References Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::effective_coeff_length(), Aleph::FFT< Real >::polynomial_root_lower_bound(), and Aleph::FFT< Real >::polynomial_root_upper_bound().
Referenced by Aleph::FFT< Real >::polynomial_roots_impl().
|
inlinestaticprivatenoexcept |
Fast integer power utility.
Definition at line 2440 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::bilinear_substitute_polynomial(), and Aleph::FFT< Real >::design_prototype_sections().
|
inlinestaticprivatenoexcept |
Rationale: Evaluates integral of cos(k*w) from omega_lo to omega_hi.
Definition at line 3884 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and k.
Referenced by Aleph::FFT< Real >::integrate_cos_product(), and Aleph::FFT< Real >::integrate_linear_cos_basis().
|
inlinestaticprivatenoexcept |
Rationale: Evaluates integral of cos(m*w)*cos(n*w).
Definition at line 3897 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::integrate_cos_basis().
Referenced by Aleph::FFT< Real >::firls_impl().
|
inlinestaticprivatenoexcept |
implementation helper for firls linear band integration.
Definition at line 3926 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::integrate_cos_basis(), and Aleph::FFT< Real >::integrate_offset_cos_basis().
Referenced by Aleph::FFT< Real >::firls_impl().
|
inlinestaticprivatenoexcept |
implementation helper for firls slope integration.
Definition at line 3911 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and k.
Referenced by Aleph::FFT< Real >::integrate_linear_cos_basis().
|
inlinestaticprivatenoexcept |
Definition at line 4405 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), y0(), and y1().
Referenced by Aleph::FFT< Real >::gain_margin_impl(), Aleph::FFT< Real >::phase_margin_impl(), and Aleph::FFT< Real >::refine_scalar_crossing().
|
inlinestaticprivatenoexcept |
Definition at line 4419 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), y0(), and y1().
Referenced by Aleph::FFT< Real >::gain_margin_impl(), Aleph::FFT< Real >::gain_margin_refined_impl(), Aleph::FFT< Real >::phase_margin_impl(), and Aleph::FFT< Real >::phase_margin_refined_impl().
|
inlinestaticprivate |
Definition at line 3147 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::ellint_1_impl(), and value.
Referenced by Aleph::FFT< Real >::elliptic_prototype().
|
inlinestatic |
Computes the Inverse Fast Fourier Transform (IFFT).
Functional wrapper for the inverse transform. Generic iterable containers of std::complex values are accepted through a separate overload.
| input | The frequency-domain complex values. |
| std::invalid_argument | if the input size is zero. |
Definition at line 8670 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transformed().
|
inlinestatic |
Forward IFFT for complex-valued containers.
Definition at line 8687 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transformed().
|
inlinestatic |
Functional inverse 2-D FFT wrapper.
Definition at line 8133 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transformed2d().
|
inlinestatic |
Functional inverse 3-D FFT wrapper.
Definition at line 8228 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transformed3d().
|
inlinestatic |
Functional batch IFFT wrapper.
Definition at line 7952 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transformed_batch().
|
inlinestatic |
Computes the IFFT and projects the result back to real values.
Useful when the result is expected to be real (e.g., after processing the spectrum of a real signal). Generic iterable containers of std::complex values are accepted through a separate overload.
| input | The frequency-domain complex values. |
| std::invalid_argument | if the input size is zero. |
| std::domain_error | if the result has non-negligible imaginary parts. |
Definition at line 8714 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::inverse_transform_real_general_impl(), Aleph::FFT< Real >::inverse_transform_real_optimized_impl(), Aleph::FFT< Real >::is_power_of_two(), and Aleph::FFT< Real >::transform_impl().
Referenced by Aleph::FFT< Real >::inverse_transform_real(), and Aleph::FFT< Real >::irfft().
|
inlinestatic |
Inverse real transform for complex-valued containers.
Definition at line 8781 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::inverse_transform_real().
|
inlinestaticprivate |
Definition at line 7812 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, Aleph::FFT< Real >::project_real_output(), Aleph::FFT< Real >::transform_any_size_impl(), and Aleph::FFT< Real >::validate_real_spectrum().
Referenced by Aleph::FFT< Real >::inverse_transform_real(), and Aleph::FFT< Real >::pinverse_transform_real().
|
inlinestaticprivate |
Rationale: Optimized Inverse FFT for real signals of size N (power-of-two).
Processes an N-point complex spectrum into an N/2 complex array, applies IFFT, and extracts N real samples.
Definition at line 5612 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::is_power_of_two(), k, Aleph::ThreadPool::num_threads(), output, Aleph::parallel_for_index(), Aleph::Array< T >::size(), Aleph::FFT< Real >::twiddle_at(), and Aleph::FFT< Real >::validate_real_spectrum().
Referenced by Aleph::FFT< Real >::inverse_transform_real(), Aleph::FFT< Real >::Plan::inverse_transform_real(), Aleph::FFT< Real >::pinverse_transform_real(), and Aleph::FFT< Real >::Plan::pinverse_transform_real().
|
inlinestatic |
Reconstructs a real signal from a compact rfft() spectrum.
If signal_size is zero, the method infers the original length as 2 * (spectrum.size() - 1). Odd original lengths therefore require an explicit signal_size.
Definition at line 8756 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::expand_real_spectrum(), Aleph::FFT< Real >::inverse_transform_real(), and Aleph::FFT< Real >::spectrum().
Referenced by Aleph::FFT< Real >::irfft().
|
inlinestatic |
Inverse real transform (compact) for complex-valued containers.
Definition at line 8800 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), Aleph::FFT< Real >::irfft(), and Aleph::FFT< Real >::spectrum().
|
inlinestatic |
Functional compact real inverse FFT for equal-length batches.
Definition at line 7992 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
|
inlinestaticprivatenoexcept |
Identifies non-redundant spectrum bins (excluding DC and Nyquist).
Definition at line 794 of file fft.H.
References Aleph::and, and Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::apply_one_sided_density_scaling().
|
inlinestaticconstexprnoexcept |
Checks if a given number is a power of two.
| n | The number to check. |
Definition at line 6000 of file fft.H.
References Aleph::and.
Referenced by Aleph::FFT< Real >::Plan::Plan(), Aleph::FFT< Real >::inverse_transform_real(), Aleph::FFT< Real >::inverse_transform_real_optimized_impl(), Aleph::FFT< Real >::pinverse_transform_real(), Aleph::FFT< Real >::transform_any_size_impl(), Aleph::FFT< Real >::transform_impl(), and Aleph::FFT< Real >::transform_real_optimized().
|
inlinestatic |
Definition at line 12516 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::is_stable().
|
inlinestatic |
Checks BIBO stability from denominator roots.
Definition at line 12497 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::stability_margin().
Referenced by Aleph::FFT< Real >::is_stable(), Aleph::FFT< Real >::is_stable(), Aleph::FFT< Real >::is_stable(), Aleph::FFT< Real >::is_stable(), and Aleph::FFT< Real >::is_stable().
|
inlinestatic |
Definition at line 12510 of file fft.H.
References Aleph::FFT< Real >::is_stable(), and section().
|
inlinestatic |
Definition at line 12527 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::is_stable().
|
inlinestatic |
Definition at line 12504 of file fft.H.
References Aleph::FFT< Real >::IIRCoefficients::denominator, and Aleph::FFT< Real >::is_stable().
|
inlinestatic |
Definition at line 12535 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::is_stable().
|
inlinestatic |
Reconstructs a real signal using explicit ISTFT options.
Definition at line 10180 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::istft_impl(), and options.
|
inlinestatic |
Reconstructs a real signal from an STFT using overlap-add.
The STFT frames are assumed to come from a real signal transformed with the analysis window analysis_window. Each inverse frame is overlap- added after multiplying by synthesis_window and normalized by the accumulated window products.
Definition at line 10080 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::ISTFTOptions::hop_size, Aleph::FFT< Real >::istft_impl(), and options.
Referenced by Aleph::FFT< Real >::istft(), Aleph::FFT< Real >::istft(), Aleph::FFT< Real >::istft(), and Aleph::FFT< Real >::istft().
|
inlinestatic |
Reconstructs a real signal using one shared analysis/synthesis window.
Definition at line 10195 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::istft(), and options.
|
inlinestatic |
Reconstructs a real signal using the same window for analysis and synthesis.
Definition at line 10101 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::istft().
|
inlinestatic |
Reconstructs a Hann-window STFT with explicit options.
Definition at line 10204 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::hann_window(), Aleph::FFT< Real >::istft(), and options.
|
inlinestatic |
Reconstructs a real signal using a Hann window pair.
Definition at line 10111 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::hann_window(), and Aleph::FFT< Real >::istft().
|
inlinestaticprivate |
implementation of the Inverse Short-Time Fourier Transform.
Definition at line 4899 of file fft.H.
References ah_domain_error_if, ah_invalid_argument_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::max_abs_value(), offset, options, output, Aleph::Array< T >::size(), Aleph::size(), Aleph::FFT< Real >::slice_copy(), and Aleph::FFT< Real >::validate_istft_configuration().
Referenced by Aleph::FFT< Real >::istft(), Aleph::FFT< Real >::istft(), Aleph::FFT< Real >::pistft(), and Aleph::FFT< Real >::pistft().
|
inlinestaticprivate |
Rationale: Simultanous calculation of Jacobi sn, cn, dn functions using the descending Landen transformation or AGM.
Definition at line 3061 of file fft.H.
References ah_domain_error_if, ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::JacobiValues::cn, Aleph::FFT< Real >::complete_elliptic_first_kind(), Aleph::FFT< Real >::JacobiValues::dn, Aleph::FFT< Real >::ellint_1_impl(), Aleph::FFT< Real >::scaled_tolerance(), Aleph::FFT< Real >::JacobiValues::sn, and value.
Referenced by Aleph::FFT< Real >::elliptic_cd_minus_imaginary(), and Aleph::FFT< Real >::elliptic_prototype().
|
inlinestatic |
Returns the Kaiser beta that corresponds to an attenuation goal.
Definition at line 8901 of file fft.H.
References ah_invalid_argument_if, and Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::firwin_bandpass(), Aleph::FFT< Real >::firwin_bandstop(), Aleph::FFT< Real >::firwin_highpass(), and Aleph::FFT< Real >::firwin_lowpass().
|
inlinestatic |
Returns a Kaiser window of length n.
Definition at line 8917 of file fft.H.
References ah_invalid_argument_if, Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::modified_bessel_i0(), and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::firwin_bandpass(), Aleph::FFT< Real >::firwin_bandstop(), Aleph::FFT< Real >::firwin_highpass(), and Aleph::FFT< Real >::firwin_lowpass().
|
inlinestatic |
|
inlinestaticprivate |
Lifts a real-valued input array to the complex domain.
Creates a new Array of complex numbers where the real part is taken from the input and the imaginary part is set to zero.
| input | The input array of real values. |
Definition at line 5545 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::prepare_stft_frame_input(), Aleph::FFT< Real >::project_to_plan_batch_spectra(), Aleph::FFT< Real >::project_to_plan_spectrum(), and Aleph::FFT< Real >::transform_real_optimized().
|
inlinestatic |
Returns |X[k]| for each frequency bin in an FFT output.
Definition at line 8822 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::FrequencyResponse::magnitude(), and Aleph::FFT< Real >::magnitude_spectrum().
|
inlinestatic |
Magnitude spectrum for complex-valued containers.
Definition at line 8835 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::magnitude_spectrum().
|
inlinestaticprivate |
Rationale: Validates that an Array of Arrays represents a rectangular matrix and returns its {rows, cols} shape.
Definition at line 5340 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), cols, rows, Aleph::Array< T >::size(), and Aleph::size().
Referenced by Aleph::FFT< Real >::flatten_matrix_row_major(), Aleph::FFT< Real >::ptransformed2d(), and Aleph::FFT< Real >::transformed2d().
|
inlinestaticprivatenoexcept |
L-infinity norm.
Definition at line 733 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::max_value().
Referenced by Aleph::FFT< Real >::analytic_group_delay_impl(), Aleph::FFT< Real >::balance_polynomial_for_roots(), Aleph::FFT< Real >::effective_coeff_length(), Aleph::FFT< Real >::evaluate_analog_transfer_magnitude(), Aleph::FFT< Real >::evaluate_series_at_unit_circle(), Aleph::FFT< Real >::extract_repeated_unit_roots(), Aleph::FFT< Real >::istft_impl(), Aleph::FFT< Real >::normalize_iir_coefficients(), Aleph::FFT< Real >::ISTFTProcessor::normalize_prefix(), Aleph::FFT< Real >::overlap_profile_has_cola(), Aleph::FFT< Real >::overlap_profile_has_nola(), Aleph::FFT< Real >::polynomial_root_lower_bound(), and Aleph::FFT< Real >::polynomial_roots_impl().
|
inlinestaticprivatenoexcept |
Returns the magnitude of the largest root in the set.
Definition at line 2275 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::enforce_conjugate_symmetry(), Aleph::FFT< Real >::root_groups_impl(), and Aleph::FFT< Real >::stability_margin().
|
inlinestaticprivatenoexcept |
Rationale: Estimates the minimum distance between any matched pole and zero to identify potential cancellations.
Definition at line 2362 of file fft.H.
References Aleph::and, and Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::minimum_pole_zero_distance().
|
inlinestatic |
Definition at line 12425 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::poles(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Returns the minimum pole/zero distance in a greedy pairing.
Definition at line 12399 of file fft.H.
References Aleph::FFT< Real >::minimum_cancellation_distance_impl(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::poles(), and Aleph::FFT< Real >::zeros().
Referenced by Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::minimum_pole_zero_distance(), and Aleph::FFT< Real >::minimum_pole_zero_distance().
|
inlinestatic |
Definition at line 12406 of file fft.H.
References Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::poles(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Definition at line 12419 of file fft.H.
References Aleph::FFT< Real >::minimum_pole_zero_distance(), and section().
|
inlinestatic |
Definition at line 12413 of file fft.H.
References Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::minimum_pole_zero_distance(), and Aleph::FFT< Real >::IIRCoefficients::numerator.
|
inlinestatic |
Definition at line 12433 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::minimum_pole_zero_distance().
|
inlinestatic |
Definition at line 12443 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::minimum_pole_zero_distance().
|
inlinestaticprivatenoexcept |
Standard Zeroth-order Modified Bessel function of the first kind.
Definition at line 3791 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), k, and Aleph::sum().
Referenced by Aleph::FFT< Real >::kaiser_window().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Multiplies two complex-valued sequences using convolution.
This method computes the linear convolution of two arrays by:
Generic iterable containers of std::complex values are accepted through a separate overload.
This is equivalent to multiplying two polynomials whose coefficients are given by the input arrays.
| a | The first complex sequence (e.g., polynomial coefficients). |
| b | The second complex sequence. |
| std::invalid_argument | if the resulting size overflows size_t. |
Definition at line 15210 of file fft.H.
References Aleph::FFT< Real >::multiply_complex_impl().
Referenced by Aleph::FFT< Real >::multiply().
|
inlinestatic |
Multiplies two real-valued sequences using convolution.
Computes the linear convolution of two real arrays using the FFT-based multiplication algorithm. Generic iterable containers of real values convertible to Real are accepted through a separate overload.
| a | The first real sequence. |
| b | The second real sequence. |
| std::invalid_argument | if the resulting size overflows size_t. |
| std::domain_error | if the intermediate result has non-negligible imaginary parts (numerical instability). |
Definition at line 15256 of file fft.H.
References Aleph::FFT< Real >::multiply_real_optimized().
|
inlinestatic |
Multiplication for complex-valued containers.
Definition at line 15227 of file fft.H.
References Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::multiply().
|
inlinestatic |
Multiplication for real-valued containers.
Definition at line 15273 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::multiply().
|
inlinestaticprivate |
Rationale: Linear convolution of two complex sequences via FFT.
Definition at line 5724 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), Aleph::FFT< Real >::next_power_of_two(), Aleph::parallel_for_index(), Aleph::Array< T >::size(), Aleph::FFT< Real >::transform_impl(), Aleph::FFT< Real >::trim_to_size(), and Aleph::FFT< Real >::zero_padded_copy().
Referenced by Aleph::FFT< Real >::multiply(), and Aleph::FFT< Real >::pmultiply().
|
inlinestaticprivate |
Rationale: Efficiently multiplies two real sequences using a single N-point complex FFT by packing one sequence into the real part and the other into the imaginary part.
Definition at line 5677 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), k, Aleph::FFT< Real >::next_power_of_two(), Aleph::parallel_for_index(), Aleph::FFT< Real >::project_real_output(), Aleph::Array< T >::reserve(), Aleph::Array< T >::size(), Aleph::FFT< Real >::transform_impl(), Aleph::FFT< Real >::trim_to_size(), and Aleph::FFT< Real >::zero_padded_copy().
Referenced by Aleph::FFT< Real >::multiply(), and Aleph::FFT< Real >::pmultiply().
|
inlinestaticnoexcept |
Returns whether the runtime CPU can execute the NEON kernel when it has been compiled in.
Definition at line 6089 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::detected_simd_backend(), and Aleph::FFT< Real >::neon_runtime_available().
|
inlinestaticconstexprnoexcept |
|
inlinestaticnoexcept |
Returns whether NEON dispatch is supported at runtime.
Definition at line 6268 of file fft.H.
References Aleph::FFT< Real >::neon_dispatch_available().
|
inlinestaticprivate |
Calculates the smallest power of two greater than or equal to n.
Used to determine the required size for FFT-based convolution.
| n | The input size. |
| std::invalid_argument | if n is zero or if an overflow occurs. |
Definition at line 5827 of file fft.H.
References ah_invalid_argument_if.
Referenced by Aleph::FFT< Real >::OverlapAdd::OverlapAdd(), Aleph::FFT< Real >::OverlapAddBank::OverlapAddBank(), Aleph::FFT< Real >::OverlapSave::OverlapSave(), Aleph::FFT< Real >::PartitionedConvolver::PartitionedConvolver(), Aleph::FFT< Real >::OverlapAdd::default_block_size(), Aleph::FFT< Real >::OverlapAddBank::default_block_size(), Aleph::FFT< Real >::OverlapSave::default_block_size(), Aleph::FFT< Real >::PartitionedConvolver::default_partition_size(), Aleph::FFT< Real >::Plan::initialize_bluestein_plan(), Aleph::FFT< Real >::multiply_complex_impl(), Aleph::FFT< Real >::multiply_real_optimized(), Aleph::FFT< Real >::ptransform_padded(), Aleph::FFT< Real >::ptransform_padded(), Aleph::FFT< Real >::resolve_welch_fft_size(), Aleph::FFT< Real >::transform_padded(), Aleph::FFT< Real >::transform_padded(), and Aleph::FFT< Real >::validate_stft_options().
|
inlinestaticprivate |
Rationale: Validates axis indices against the tensor rank and ensures no axis is specified more than once.
Definition at line 5152 of file fft.H.
References ah_invalid_argument_if, ah_out_of_range_error_if, Aleph::blossom_maximum_cardinality_matching(), and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::transform_axes_impl(), and Aleph::FFT< Real >::transform_axis_impl().
|
inlinestaticprivate |
Normalizes FIR coefficients to have unit gain at frequency omega.
Definition at line 3832 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::evaluate_fir_response_magnitude(), Aleph::FFT< Real >::scaled_tolerance(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::firwin_bandpass(), Aleph::FFT< Real >::firwin_bandstop(), Aleph::FFT< Real >::firwin_highpass(), and Aleph::FFT< Real >::firwin_lowpass_impl().
|
inlinestaticprivate |
Definition at line 933 of file fft.H.
References ah_domain_error_if, ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::effective_coeff_length(), Aleph::FFT< Real >::max_abs_value(), and Aleph::FFT< Real >::IIRCoefficients::numerator.
Referenced by Aleph::FFT< Real >::SOSFilter::SOSFilter(), Aleph::FFT< Real >::bilinear_transform_impl(), Aleph::FFT< Real >::evaluate_transfer_at(), Aleph::FFT< Real >::evaluate_transfer_terms_at(), Aleph::FFT< Real >::iir_filtfilt_impl(), Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::section_from_coefficients(), Aleph::FFT< Real >::sos_filtfilt_impl(), and Aleph::FFT< Real >::transfer_function_to_sections().
|
inlinestaticprivate |
Rationale: Validates a tensor layout and infers row-major strides if they are not provided.
Ensures the layout is compatible with the actual flat buffer size.
Definition at line 5116 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), Aleph::FFT< Real >::row_major_strides(), Aleph::FFT< Real >::TensorLayout::shape, Aleph::Array< T >::size(), Aleph::FFT< Real >::tensor_element_count(), and Aleph::FFT< Real >::tensor_max_offset().
Referenced by Aleph::FFT< Real >::transform_axes_impl(), and Aleph::FFT< Real >::transform_axis_impl().
|
inlinestaticprivatenoexcept |
Standard normalized sinc function sin(pi*x)/(pi*x).
Definition at line 3810 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::firwin_lowpass_impl().
|
inlinestaticprivate |
Maps bin indices to frequency in Hz.
Definition at line 777 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), k, and Aleph::Array< T >::size().
|
inlinestatic |
Convenience wrapper for long real convolution via overlap-add.
Definition at line 15064 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::OverlapAdd::convolve(), and Aleph::Array< T >::is_empty().
Referenced by Aleph::FFT< Real >::overlap_add_convolution().
|
inlinestatic |
Overlap-add convolution for real-valued containers.
Definition at line 15138 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::overlap_add_convolution().
|
inlinestatic |
Multichannel overlap-add convolution with a shared kernel FFT.
Definition at line 15089 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::OverlapAddBank::convolve(), and Aleph::Array< T >::is_empty().
|
inlinestatic |
Overlap-adds a frame sequence with a fixed hop size.
Definition at line 9596 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), offset, output, Aleph::Array< T >::size(), Aleph::size(), and Aleph::FFT< Real >::slice_copy().
|
inlinestaticprivate |
Rationale: Computes the effective window product for a windowed overlap-add process to validate reconstruction constraints.
Definition at line 617 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::validate_overlap_constraints(), and Aleph::FFT< Real >::window_overlap_profile().
|
inlinestaticprivatenoexcept |
Rationale: Constant Overlap-Add (COLA) ensures that OLA reconstruction has no amplitude modulation artifacts.
Definition at line 660 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::max_abs_value(), and Aleph::mean().
Referenced by Aleph::FFT< Real >::satisfies_cola(), and Aleph::FFT< Real >::validate_overlap_constraints().
|
inlinestaticprivatenoexcept |
Rationale: Non-zero Overlap-Add (NOLA) ensures the signal can be reconstructed (it's never multiplied by zero in all frames).
Definition at line 646 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::max_abs_value().
Referenced by Aleph::FFT< Real >::satisfies_nola(), and Aleph::FFT< Real >::validate_overlap_constraints().
|
inlinestatic |
Convenience wrapper for overlap-save real convolution.
Definition at line 15114 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::OverlapSave::convolve(), and Aleph::Array< T >::is_empty().
Referenced by Aleph::FFT< Real >::overlap_save_convolution().
|
inlinestatic |
Overlap-save convolution for real-valued containers.
Definition at line 15168 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::overlap_save_convolution().
|
inlinestatic |
Definition at line 12374 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::poles(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Greedily pairs zeros and poles by nearest distance.
Definition at line 12348 of file fft.H.
References Aleph::FFT< Real >::pole_zero_pairs_impl(), Aleph::FFT< Real >::poles(), and Aleph::FFT< Real >::zeros().
Referenced by Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pair_poles_and_zeros(), and Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation().
|
inlinestatic |
Definition at line 12355 of file fft.H.
References Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::poles(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Definition at line 12368 of file fft.H.
References Aleph::FFT< Real >::pair_poles_and_zeros(), and section().
|
inlinestatic |
Definition at line 12362 of file fft.H.
References Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::IIRCoefficients::numerator, and Aleph::FFT< Real >::pair_poles_and_zeros().
|
inlinestatic |
Definition at line 12382 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::pair_poles_and_zeros().
|
inlinestatic |
Definition at line 12392 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::pair_poles_and_zeros().
|
inlinestatic |
Convenience wrapper for low-latency partitioned convolution.
Definition at line 15125 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::PartitionedConvolver::convolve(), and Aleph::Array< T >::is_empty().
Referenced by Aleph::FFT< Real >::partitioned_convolution().
|
inlinestatic |
Partitioned convolution for real-valued containers.
Definition at line 15181 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::partitioned_convolution().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 12121 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::parallel_for_index().
|
inlinestatic |
Parallel batched STFT across signals.
Definition at line 11278 of file fft.H.
References Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::ThreadPool::num_threads(), options, output, Aleph::parallel_for_index(), and Aleph::FFT< Real >::stft_impl().
Referenced by Aleph::FFT< Real >::pbatched_stft().
|
inlinestatic |
Parallel Hann-window batched STFT.
Definition at line 11314 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::hann_window(), options, and Aleph::FFT< Real >::pbatched_stft().
|
inlinestatic |
Parallel zero-phase FIR filtering via forward-backward convolution.
Definition at line 13608 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::default_filtfilt_pad_length(), Aleph::Array< T >::is_empty(), output, Aleph::FFT< Real >::prefix_copy(), Aleph::FFT< Real >::reflect_pad_signal(), Aleph::FFT< Real >::reverse_copy(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::slice_copy().
Referenced by Aleph::FFT< Real >::pfiltfilt().
|
inlinestatic |
Definition at line 13653 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::pfiltfilt().
|
inlinestatic |
Definition at line 12904 of file fft.H.
References Aleph::FFT< Real >::analytic_sos_group_delay_impl(), Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::freqz(), Aleph::FFT< Real >::FrequencyResponse::omega, Aleph::FFT< Real >::phase_spectrum(), Aleph::FFT< Real >::FrequencyResponse::response, Aleph::Array< T >::size(), and Aleph::FFT< Real >::unwrap_phase().
|
inlinestatic |
Definition at line 12818 of file fft.H.
References Aleph::FFT< Real >::analytic_phase_delay_impl(), and Aleph::blossom_maximum_cardinality_matching().
|
inlinestatic |
Definition at line 12843 of file fft.H.
References Aleph::FFT< Real >::analytic_phase_delay_impl(), and Aleph::blossom_maximum_cardinality_matching().
|
inlinestatic |
Definition at line 12882 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::phase_delay(), and section().
|
inlinestatic |
Definition at line 12965 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::phase_delay().
|
inlinestatic |
Estimates phase delay from a sampled frequency response.
Definition at line 12799 of file fft.H.
References Aleph::FFT< Real >::phase_delay_impl().
Referenced by Aleph::FFT< Real >::phase_delay(), Aleph::FFT< Real >::phase_delay(), Aleph::FFT< Real >::phase_delay(), Aleph::FFT< Real >::phase_delay(), and Aleph::FFT< Real >::phase_delay().
|
inlinestatic |
Definition at line 12863 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::IIRCoefficients::numerator, and Aleph::FFT< Real >::phase_delay().
|
inlinestatic |
Definition at line 12941 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::phase_delay().
|
inlinestatic |
Definition at line 12985 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::phase_delay().
|
inlinestaticprivate |
implementation of numeric phase delay calculation.
Definition at line 4842 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::group_delay_impl(), Aleph::Array< T >::is_empty(), Aleph::FFT< Real >::FrequencyResponse::omega, Aleph::FFT< Real >::phase_spectrum(), Aleph::FFT< Real >::FrequencyResponse::response, Aleph::Array< T >::size(), and Aleph::FFT< Real >::unwrap_phase().
Referenced by Aleph::FFT< Real >::phase_delay().
|
inlinestatic |
Definition at line 13087 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::evaluate_sos_transfer_at(), Aleph::FFT< Real >::freqz(), and Aleph::FFT< Real >::phase_margin_refined_impl().
|
inlinestatic |
Definition at line 13007 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::evaluate_transfer_at(), Aleph::FFT< Real >::freqz(), and Aleph::FFT< Real >::phase_margin_refined_impl().
|
inlinestatic |
Definition at line 13065 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::phase_margin(), and section().
|
inlinestatic |
Estimates phase margin around the unity-gain crossover.
Definition at line 12994 of file fft.H.
References Aleph::FFT< Real >::phase_margin_impl().
Referenced by Aleph::FFT< Real >::phase_margin(), Aleph::FFT< Real >::phase_margin(), Aleph::FFT< Real >::phase_margin(), and Aleph::FFT< Real >::phase_margin().
|
inlinestatic |
Definition at line 13049 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::IIRCoefficients::numerator, and Aleph::FFT< Real >::phase_margin().
|
inlinestatic |
Definition at line 13121 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::phase_margin().
|
inlinestatic |
Definition at line 13149 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::phase_margin().
|
inlinestaticprivate |
Definition at line 4508 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::interpolate_crossing(), Aleph::FFT< Real >::interpolate_value_at(), Aleph::FFT< Real >::FrequencyResponse::magnitude(), Aleph::FFT< Real >::FrequencyResponse::omega, Aleph::FFT< Real >::phase_spectrum(), Aleph::FFT< Real >::FrequencyResponse::response, Aleph::Array< T >::size(), and Aleph::FFT< Real >::unwrap_phase().
Referenced by Aleph::FFT< Real >::phase_margin().
|
inlinestaticprivate |
implementation of refined Phase Margin calculation using analytic evaluation.
Definition at line 4638 of file fft.H.
References ah_invalid_argument_if, Aleph::FFT< Real >::align_phase_near_reference(), Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::interpolate_value_at(), Aleph::FFT< Real >::FrequencyResponse::magnitude(), Aleph::FFT< Real >::FrequencyResponse::omega, Aleph::FFT< Real >::phase_spectrum(), Aleph::FFT< Real >::refine_scalar_crossing(), Aleph::FFT< Real >::FrequencyResponse::response, Aleph::Array< T >::size(), Aleph::FFT< Real >::unwrap_phase(), and w.
Referenced by Aleph::FFT< Real >::phase_margin(), and Aleph::FFT< Real >::phase_margin().
|
inlinestatic |
Returns arg(X[k]) for each frequency bin in an FFT output.
Definition at line 8861 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::analytic_phase_delay_impl(), Aleph::FFT< Real >::gain_margin_impl(), Aleph::FFT< Real >::gain_margin_refined_impl(), Aleph::FFT< Real >::group_delay_impl(), Aleph::FFT< Real >::FrequencyResponse::phase(), Aleph::FFT< Real >::phase_delay(), Aleph::FFT< Real >::phase_delay_impl(), Aleph::FFT< Real >::phase_margin_impl(), Aleph::FFT< Real >::phase_margin_refined_impl(), and Aleph::FFT< Real >::phase_spectrum().
|
inlinestatic |
Definition at line 8873 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::phase_spectrum().
|
inlinestatic |
Parallel version of inverse_transform(const Array<Complex>&).
Definition at line 8677 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::ptransformed().
|
inlinestatic |
Parallel version of inverse_transform(const Container&).
Definition at line 8696 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::ptransformed().
|
inlinestatic |
Parallel functional inverse 2-D FFT wrapper.
Definition at line 8140 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::ptransformed2d().
|
inlinestatic |
Parallel functional inverse 3-D FFT wrapper.
Definition at line 8235 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::ptransformed3d().
|
inlinestatic |
Parallel functional batch IFFT wrapper.
Definition at line 7959 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::ptransformed_batch().
|
inlinestatic |
Parallel version of inverse_transform_real(const Array<Complex>&).
Definition at line 8732 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::inverse_transform_real_general_impl(), Aleph::FFT< Real >::inverse_transform_real_optimized_impl(), Aleph::FFT< Real >::is_power_of_two(), and Aleph::FFT< Real >::transform_impl().
Referenced by Aleph::FFT< Real >::pinverse_transform_real(), and Aleph::FFT< Real >::pirfft().
|
inlinestatic |
Parallel version of inverse_transform_real(const Container&).
Definition at line 8790 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::pinverse_transform_real().
|
inlinestatic |
Parallel version of irfft(const Array<Complex>&, size_t).
Definition at line 8765 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::expand_real_spectrum(), Aleph::FFT< Real >::pinverse_transform_real(), and Aleph::FFT< Real >::spectrum().
Referenced by Aleph::FFT< Real >::pirfft().
|
inlinestatic |
Parallel version of irfft(const Container&, size_t).
Definition at line 8809 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), Aleph::FFT< Real >::pirfft(), and Aleph::FFT< Real >::spectrum().
|
inlinestatic |
Parallel compact real inverse FFT for equal-length batches.
Definition at line 8004 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
|
inlinestatic |
Parallel ISTFT with explicit options.
Definition at line 10214 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::istft_impl(), and options.
|
inlinestatic |
Parallel STFT inversion using a thread pool.
Definition at line 10122 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::ISTFTOptions::hop_size, Aleph::FFT< Real >::istft_impl(), and options.
Referenced by Aleph::FFT< Real >::pistft(), Aleph::FFT< Real >::pistft(), Aleph::FFT< Real >::pistft(), and Aleph::FFT< Real >::pistft().
|
inlinestatic |
Parallel ISTFT using a shared analysis/synthesis window.
Definition at line 10231 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), options, and Aleph::FFT< Real >::pistft().
|
inlinestatic |
Parallel STFT inversion using a shared analysis/synthesis window.
Definition at line 10143 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::pistft().
|
inlinestatic |
Parallel Hann-window ISTFT with explicit options.
Definition at line 10242 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::hann_window(), options, and Aleph::FFT< Real >::pistft().
|
inlinestatic |
Parallel STFT inversion using a Hann window pair.
Definition at line 10161 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::hann_window(), and Aleph::FFT< Real >::pistft().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Parallel version of multiply(const Array<Complex>&, const Array<Complex>&).
Definition at line 15217 of file fft.H.
References Aleph::FFT< Real >::multiply_complex_impl().
Referenced by Aleph::FFT< Real >::pmultiply().
|
inlinestatic |
Parallel version of multiply(const Array<Real>&, const Array<Real>&).
Definition at line 15263 of file fft.H.
References Aleph::FFT< Real >::multiply_real_optimized().
|
inlinestatic |
Parallel version of multiply(const Container1&, const Container2&).
Definition at line 15236 of file fft.H.
References Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::pmultiply().
|
inlinestatic |
Parallel version of multiply(const Container1&, const Container2&).
Definition at line 15282 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::pmultiply().
|
inlinestaticprivate |
Rationale: Matches zeros and poles into pairs by minimizing Euclidean distance, aiding in SOS decomposition.
Definition at line 2287 of file fft.H.
References Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), Aleph::count(), Aleph::FFT< Real >::PoleZeroPair::pole, Aleph::FFT< Real >::poles(), Aleph::Array< T >::size(), Aleph::FFT< Real >::PoleZeroPair::zero, and Aleph::FFT< Real >::zeros().
Referenced by Aleph::FFT< Real >::pair_poles_and_zeros().
|
inlinestatic |
Definition at line 12306 of file fft.H.
References Aleph::FFT< Real >::append_all(), Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::FFT< Real >::poles().
|
inlinestatic |
Returns the poles of a transfer denominator.
Definition at line 12263 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::normalize_iir_coefficients(), and Aleph::FFT< Real >::polynomial_roots_impl().
Referenced by Aleph::FFT< Real >::bessel_prototype(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pole_zero_pairs_impl(), Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::stability_margin(), Aleph::FFT< Real >::transfer_function_to_sections(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12291 of file fft.H.
References Aleph::FFT< Real >::poles(), and section().
|
inlinestatic |
Definition at line 12325 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::poles().
|
inlinestatic |
Definition at line 12279 of file fft.H.
References Aleph::FFT< Real >::IIRCoefficients::denominator, and Aleph::FFT< Real >::poles().
|
inlinestatic |
Definition at line 12341 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::poles().
|
inlinestaticprivatenoexcept |
Definition at line 1841 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::PolynomialEvaluation::derivative, Aleph::FFT< Real >::evaluate_polynomial_and_derivative(), and Aleph::FFT< Real >::PolynomialEvaluation::value.
Referenced by Aleph::FFT< Real >::polynomial_roots_impl().
|
inlinestaticprivate |
Rationale: Polynomial expansion (z-r1)(z-r2)...
Definition at line 2501 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::next(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::real_polynomial_from_roots().
|
inlinestaticprivate |
Rationale: Standard polynomial multiplication (O(N*M)).
Definition at line 2407 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::Array< T >::is_empty(), output, and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::apply_analog_rational_transform(), Aleph::FFT< Real >::bilinear_substitute_polynomial(), Aleph::FFT< Real >::polynomial_power(), and Aleph::FFT< Real >::substitute_rational_polynomial().
|
inlinestaticprivate |
implementation of P(x)^n via successive multiplication.
Definition at line 2536 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), output, and Aleph::FFT< Real >::polynomial_multiply().
Referenced by Aleph::FFT< Real >::apply_analog_rational_transform().
|
inlinestaticprivatenoexcept |
Definition at line 1632 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::max_abs_value(), and Aleph::FFT< Real >::scaled_tolerance().
Referenced by Aleph::FFT< Real >::balance_polynomial_for_roots(), and Aleph::FFT< Real >::initialize_root_guesses().
|
inlinestaticprivatenoexcept |
Definition at line 1621 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::balance_polynomial_for_roots(), and Aleph::FFT< Real >::initialize_root_guesses().
|
inlinestaticprivate |
Rationale: Master implementation for polynomial root-finding.
It uses a multi-strategy approach (linear/quadratic solvers, Aberth-Ehrlich, Durand-Kerner, and Laguerre) with polynomial balancing and root polishing to ensure convergence and precision.
Definition at line 2028 of file fft.H.
References ah_domain_error_if, Aleph::FFT< Real >::balance_polynomial_for_roots(), Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::effective_coeff_length(), Aleph::FFT< Real >::enforce_real_polynomial_symmetry(), Aleph::FFT< Real >::initialize_root_guesses(), Aleph::FFT< Real >::max_abs_value(), Aleph::FFT< Real >::polish_roots_with_newton(), Aleph::repeated(), Aleph::FFT< Real >::roots_pass_residual_check(), Aleph::FFT< Real >::scaled_tolerance(), Aleph::Array< T >::size(), Aleph::FFT< Real >::try_aberth_ehrlich_roots(), Aleph::FFT< Real >::try_durand_kerner_roots(), and Aleph::FFT< Real >::try_laguerre_roots().
Referenced by Aleph::FFT< Real >::bessel_prototype(), Aleph::FFT< Real >::poles(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Parallel convenience wrapper for overlap-add convolution.
Parallel version of overlap_add_convolution(const Array<Real>&, const Array<Real>&, size_t).
Definition at line 15076 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), and Aleph::FFT< Real >::OverlapAdd::pconvolve().
Referenced by Aleph::FFT< Real >::poverlap_add_convolution().
|
inlinestatic |
Parallel version of overlap_add_convolution(const Container1&, const Container2&, size_t).
Definition at line 15151 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::poverlap_add_convolution().
|
inlinestatic |
Parallel version of overlap_add_convolution_batch.
Definition at line 15100 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), and Aleph::FFT< Real >::OverlapAddBank::pconvolve().
|
inlinestatic |
Returns |X[k]|^2 for each frequency bin in an FFT output.
Definition at line 8842 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::FrequencyResponse::power(), and Aleph::FFT< Real >::power_spectrum().
|
inlinestatic |
Definition at line 8854 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::power_spectrum().
|
inlinestaticprivate |
Functional prefix extraction.
Definition at line 516 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::filtfilt(), and Aleph::FFT< Real >::pfiltfilt().
|
inlinestaticprivate |
Definition at line 1381 of file fft.H.
References Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::lift_real_input(), and Aleph::FFT< Real >::zero_padded_copy().
Referenced by Aleph::FFT< Real >::transform_stft_frames().
|
inlinestaticprivate |
Rationale: Encapsulates frame extraction, detrending and windowing common to Welch and other spectral estimators.
Definition at line 833 of file fft.H.
References ah_invalid_argument_if, Aleph::FFT< Real >::apply_window(), Aleph::FFT< Real >::demean_copy(), Aleph::FFT< Real >::frame_signal(), Aleph::Array< T >::is_empty(), options, Aleph::FFT< Real >::resolve_welch_hop_size(), and Aleph::Array< T >::size().
|
inlinestaticprivate |
Prewarps a pair of band edges for bilinear transform.
Definition at line 3606 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::prewarp_frequency().
Referenced by Aleph::FFT< Real >::bessel_bandpass(), Aleph::FFT< Real >::butterworth_bandpass(), Aleph::FFT< Real >::chebyshev1_bandpass(), Aleph::FFT< Real >::chebyshev2_bandpass(), Aleph::FFT< Real >::chebyshev2_bandstop(), Aleph::FFT< Real >::design_bandstop_sections_without_numerator_roots(), Aleph::FFT< Real >::elliptic_bandpass(), and Aleph::FFT< Real >::elliptic_bandstop().
|
inlinestaticprivate |
Rationale: Prewarps an analog cutoff frequency to compensate for the non-linear frequency mapping of the bilinear transform.
Definition at line 2926 of file fft.H.
References ah_invalid_argument_if, and Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::design_low_high_sections(), Aleph::FFT< Real >::design_prototype_sections(), and Aleph::FFT< Real >::prewarp_band_edges().
|
inlinestatic |
Parallel version of rfft(const Array<Real>&).
Definition at line 8493 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::compact_real_spectrum(), and Aleph::FFT< Real >::ptransform().
Referenced by Aleph::FFT< Real >::prfft().
|
inlinestatic |
Parallel version of rfft(const Container&).
Definition at line 8585 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::prfft().
|
inlinestatic |
Parallel compact real FFT for equal-length real batches.
Definition at line 7979 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::size().
|
inlinestaticprivate |
Definition at line 7776 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, Aleph::FFT< Real >::project_real_output(), and Aleph::Array< T >::reserve().
|
inlinestaticprivate |
Projects a complex-valued output array back to the real domain.
Extracts the real parts of the complex numbers in the input array. It verifies that the imaginary parts are within a negligible tolerance relative to the magnitude of the values.
| input | The input array of complex values. |
| ctx | A context string for error reporting (usually the caller name). |
| std::domain_error | if any imaginary part exceeds the tolerance. |
Definition at line 5772 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), output, Aleph::Array< T >::reserve(), and Aleph::FFT< Real >::transform_stages().
Referenced by Aleph::FFT< Real >::Plan::inverse_transform_real(), Aleph::FFT< Real >::inverse_transform_real_general_impl(), Aleph::FFT< Real >::multiply_real_optimized(), Aleph::FFT< Real >::Plan::pinverse_transform_real(), and Aleph::FFT< Real >::project_real_batch_output().
|
inlinestaticprivate |
Definition at line 7678 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::lift_real_input(), and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::Plan::prfft_batch(), and Aleph::FFT< Real >::Plan::rfft_batch().
|
inlinestaticprivate |
Definition at line 7664 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::lift_real_input().
Referenced by Aleph::FFT< Real >::Plan::prfft(), and Aleph::FFT< Real >::Plan::rfft().
|
inlinestatic |
Parallel version of spectrum(const Array<Complex>&).
Definition at line 8600 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::ptransformed().
|
inlinestatic |
Parallel version of spectrum(const Array<Real>&).
Definition at line 8615 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::ptransform().
|
inlinestatic |
Parallel version of spectrum(const Container&).
Definition at line 8634 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::ptransformed().
|
inlinestatic |
Parallel version of spectrum(const Container&).
Definition at line 8653 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::ptransform().
|
inlinestatic |
Parallel STFT using explicit analysis options.
Definition at line 9995 of file fft.H.
References options, and Aleph::FFT< Real >::stft_impl().
Referenced by Aleph::FFT< Real >::pstft(), Aleph::FFT< Real >::pstft(), and Aleph::FFT< Real >::pstft().
|
inlinestatic |
Parallel Hann-window STFT with explicit analysis options.
Definition at line 10015 of file fft.H.
References Aleph::FFT< Real >::hann_window(), options, and Aleph::FFT< Real >::pstft().
|
inlinestatic |
Definition at line 10063 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), options, and Aleph::FFT< Real >::pstft().
|
inlinestatic |
Definition at line 10037 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), options, and Aleph::FFT< Real >::pstft().
|
inlinestatic |
Parallel in-place FFT/IFFT using a thread pool.
Equivalent to transform but distributes work across pool. The transform is applied in-place to the complex array a.
| pool | Thread pool to use for parallel execution. |
| a | Array of complex values to transform in-place. |
| invert | If true, computes the inverse transform (IFFT). |
| chunk_size | Minimum number of elements per worker task (0 = automatic). |
| std::invalid_argument | if the size of a is zero. |
| std::bad_alloc | if memory allocation fails. |
Definition at line 7857 of file fft.H.
References Aleph::FFT< Real >::transform_any_size_impl().
Referenced by Aleph::FFT< Real >::prfft(), Aleph::FFT< Real >::pspectrum(), Aleph::FFT< Real >::pspectrum(), Aleph::FFT< Real >::ptransform(), Aleph::FFT< Real >::ptransform_padded(), Aleph::FFT< Real >::ptransform_padded(), and Aleph::FFT< Real >::ptransformed().
|
inlinestatic |
Parallel real-input FFT.
Parallel equivalent of transform(const Array<Real>&).
| pool | Thread pool for parallel execution. |
| input | Input array of real values. |
| chunk_size | Minimum elements per worker task (0 = automatic). |
Array<Complex> containing the frequency spectrum. | std::invalid_argument | if the input is empty. |
| std::bad_alloc | if memory allocation fails. |
Definition at line 8473 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transform_real_optimized().
|
inlinestatic |
Parallel version of transform(const Container&).
Definition at line 8528 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::ptransformed().
|
inlinestatic |
Parallel version of transform(const Container&).
Definition at line 8566 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::ptransform().
|
inlinestatic |
Parallel in-place FFT/IFFT along multiple tensor axes.
Definition at line 8060 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transform_axes_impl().
Referenced by Aleph::FFT< Real >::ptransformed2d(), Aleph::FFT< Real >::ptransformed2d_batch(), Aleph::FFT< Real >::ptransformed3d(), and Aleph::FFT< Real >::ptransformed_axes().
|
inlinestatic |
Parallel in-place 1-D FFT/IFFT along one tensor axis.
Definition at line 8038 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transform_axis_impl().
|
inlinestatic |
Parallel in-place batch transform for equal-length inputs.
Definition at line 7916 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::size().
Referenced by Aleph::FFT< Real >::ptransformed_batch().
|
inlinestatic |
Definition at line 8355 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::next_power_of_two(), output, Aleph::FFT< Real >::ptransform(), and Aleph::FFT< Real >::zero_padded_copy().
Referenced by Aleph::FFT< Real >::ptransform_padded().
|
inlinestatic |
Parallel version of transform_padded(const Array<Real>&).
Definition at line 8508 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::next_power_of_two(), Aleph::FFT< Real >::ptransform(), and Aleph::FFT< Real >::zero_padded_copy().
|
inlinestatic |
Parallel zero-pad and forward-FFT for a generic complex iterable.
| Container | Any iterable whose elements are std::complex<Real>. |
| pool | Thread pool for parallel execution. |
| input | The input container. |
| chunk_size | Minimum elements per worker task (0 = automatic). |
Array<Complex> zero-padded and transformed. | std::invalid_argument | if the input is empty. |
| std::bad_alloc | if memory allocation fails. |
Definition at line 8398 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::ptransform_padded().
|
inlinestatic |
Parallel version of transform_padded(const Container&).
Definition at line 8547 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::ptransform_padded().
|
inlinestatic |
Parallel FFT/IFFT that returns a new array.
Functional parallel wrapper around ptransform.
| pool | Thread pool to use for parallel execution. |
| input | Input array of complex values. |
| invert | If true, computes the inverse transform. |
| chunk_size | Minimum elements per worker task (0 = automatic). |
| std::invalid_argument | if the input size is zero. |
| std::bad_alloc | if memory allocation fails. |
Definition at line 7895 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::FFT< Real >::ptransform().
Referenced by Aleph::FFT< Real >::pinverse_transform(), Aleph::FFT< Real >::pinverse_transform(), Aleph::FFT< Real >::pspectrum(), Aleph::FFT< Real >::pspectrum(), Aleph::FFT< Real >::ptransform(), and Aleph::FFT< Real >::ptransformed().
|
inlinestatic |
Parallel FFT/IFFT for a generic complex iterable.
| Container | Any iterable whose elements are std::complex<Real>. |
| pool | Thread pool for parallel execution. |
| input | The input container. |
| invert | If true, computes the inverse transform. |
| chunk_size | Minimum elements per worker task (0 = automatic). |
Array<Complex> containing the transformed values. | std::invalid_argument | if the input is empty. |
| std::bad_alloc | if memory allocation fails. |
Definition at line 8439 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::ptransformed().
|
inlinestatic |
Parallel functional 2-D FFT/IFFT wrapper for matrices.
Definition at line 8112 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::flatten_matrix_row_major(), Aleph::FFT< Real >::matrix_shape(), Aleph::FFT< Real >::ptransform_axes(), Aleph::FFT< Real >::reshape_matrix_row_major(), and Aleph::FFT< Real >::row_major_layout().
Referenced by Aleph::FFT< Real >::pinverse_transform2d().
|
inlinestatic |
Parallel functional 2-D batched FFT/IFFT wrapper.
Definition at line 8165 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::flatten_tensor3_row_major(), Aleph::FFT< Real >::ptransform_axes(), Aleph::FFT< Real >::reshape_tensor3_row_major(), Aleph::FFT< Real >::row_major_layout(), and Aleph::FFT< Real >::tensor3_shape().
|
inlinestatic |
Parallel functional 3-D FFT/IFFT wrapper for tensors.
Definition at line 8206 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::flatten_tensor3_row_major(), Aleph::FFT< Real >::ptransform_axes(), Aleph::FFT< Real >::reshape_tensor3_row_major(), Aleph::FFT< Real >::row_major_layout(), and Aleph::FFT< Real >::tensor3_shape().
Referenced by Aleph::FFT< Real >::pinverse_transform3d().
|
inlinestatic |
Parallel functional tensor FFT/IFFT wrapper for flat buffers.
Definition at line 8084 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::FFT< Real >::ptransform_axes().
|
inlinestatic |
Parallel functional batch FFT/IFFT wrapper.
Definition at line 7940 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::FFT< Real >::ptransform_batch().
Referenced by Aleph::FFT< Real >::pinverse_transform_batch().
|
inlinestaticprivate |
Rationale: Constructs a real-coefficient polynomial from a set of complex roots, verifying that roots appear in conjugate pairs.
Definition at line 2666 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::polynomial_from_roots_complex(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::bessel_prototype(), Aleph::FFT< Real >::chebyshev1_prototype(), Aleph::FFT< Real >::chebyshev2_prototype(), Aleph::FFT< Real >::design_bandstop_sections_without_numerator_roots(), Aleph::FFT< Real >::design_prototype_sections(), Aleph::FFT< Real >::design_transformed_sections(), Aleph::FFT< Real >::elliptic_prototype(), and Aleph::FFT< Real >::transfer_function_to_sections().
|
inlinestaticprivatenoexcept |
Rationale: Estimates the maximum expected numerical noise for a value after an N-point transform, used to validate real projections.
Definition at line 418 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::transform_stages(), and value.
Referenced by Aleph::FFT< Real >::validate_real_spectrum().
|
inlinestaticprivatenoexcept |
Definition at line 1329 of file fft.H.
References Aleph::and, and Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::transform_stft_frames().
|
inlinestaticprivate |
Definition at line 4444 of file fft.H.
References Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::interpolate_crossing(), Aleph::FFT< Real >::scaled_tolerance(), y0(), and y1().
Referenced by Aleph::FFT< Real >::gain_margin_refined_impl(), and Aleph::FFT< Real >::phase_margin_refined_impl().
|
inlinestaticprivate |
Rationale: Applies reflection padding at signal edges to reduce boundary artifacts during filtering.
Definition at line 568 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), output, Aleph::Array< T >::reserve(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::iir_filtfilt_impl(), Aleph::FFT< Real >::pfiltfilt(), and Aleph::FFT< Real >::sos_filtfilt_impl().
|
inlinestatic |
FIR equiripple design via a dense-grid Remez exchange.
Definition at line 9237 of file fft.H.
Referenced by Aleph::FFT< Real >::remez(), and Aleph::FFT< Real >::remez().
|
inlinestatic |
Definition at line 9259 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::remez().
|
inlinestatic |
Definition at line 9277 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::remez().
|
inlinestaticprivate |
Definition at line 4326 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_weighted_frequency_grid(), Aleph::FFT< Real >::choose_remez_extrema(), Aleph::Array< T >::create(), Aleph::FFT< Real >::evaluate_cosine_series(), Aleph::FFT< Real >::evenly_spaced_extrema(), k, Aleph::Array< T >::size(), and Aleph::FFT< Real >::solve_remez_cosine_series().
|
inlinestatic |
Polyphase resampling with explicit FIR coefficients.
Definition at line 9348 of file fft.H.
References ah_invalid_argument_if, ah_runtime_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::effective_coeff_length(), Aleph::Array< T >::is_empty(), output, Aleph::Array< T >::size(), Aleph::FFT< Real >::slice_copy(), and Aleph::FFT< Real >::upfirdn().
Referenced by Aleph::FFT< Real >::resample_poly().
|
inlinestatic |
Definition at line 9424 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::resample_poly().
|
inlinestatic |
|
inlinestaticprivate |
Rationale: Reshapes a 1D row-major array back into a 2D matrix.
Definition at line 5373 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), col, cols, Aleph::Array< T >::create(), output, row, and rows.
Referenced by Aleph::FFT< Real >::ptransformed2d(), and Aleph::FFT< Real >::transformed2d().
|
inlinestaticprivate |
Rationale: Reshapes a 1D row-major array back into a 3D tensor.
Definition at line 5443 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), k, and output.
Referenced by Aleph::FFT< Real >::ptransformed2d_batch(), Aleph::FFT< Real >::ptransformed3d(), Aleph::FFT< Real >::transformed2d_batch(), and Aleph::FFT< Real >::transformed3d().
|
inlinestaticprivate |
Definition at line 7719 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::spectrum().
Referenced by Aleph::FFT< Real >::expand_real_spectrum().
|
inlinestaticprivate |
Default FFT size for Welch analysis (zero-padded to power of 2).
Definition at line 818 of file fft.H.
References ah_invalid_argument_if, Aleph::FFT< Real >::next_power_of_two(), and options.
|
inlinestaticprivate |
Default hop size for Welch analysis (50% overlap).
Definition at line 806 of file fft.H.
References ah_invalid_argument_if, and options.
Referenced by Aleph::FFT< Real >::prepare_welch_frames().
|
inlinestaticprivate |
Rationale: Generates coefficients for the Reverse Bessel Polynomial used in Bessel filter prototypes.
Definition at line 3457 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), and k.
Referenced by Aleph::FFT< Real >::bessel_prototype().
|
inlinestaticprivate |
Functional reverse.
Definition at line 504 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::iir_filtfilt_impl(), Aleph::FFT< Real >::pfiltfilt(), and Aleph::FFT< Real >::sos_filtfilt_impl().
|
inlinestatic |
Computes the compact real FFT of size floor(N/2) + 1.
The returned layout stores bins 0..floor(N/2) only. For odd-length signals, callers must pass the original signal length back to irfft because the compact layout alone is ambiguous.
Definition at line 8486 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::compact_real_spectrum(), and Aleph::FFT< Real >::transform().
Referenced by Aleph::FFT< Real >::rfft().
|
inlinestatic |
Compact real FFT for real-valued containers.
Definition at line 8576 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::rfft().
|
inlinestatic |
Functional compact real FFT for equal-length real batches.
Definition at line 7968 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::size().
|
inlinestaticprivate |
Rationale: Partitions a set of roots into real sections and conjugate pairs to facilitate SOS decomposition.
Definition at line 2754 of file fft.H.
References ah_domain_error_if, Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::enforce_conjugate_symmetry(), Aleph::error(), Aleph::FFT< Real >::group_center(), Aleph::FFT< Real >::max_root_radius(), Aleph::FFT< Real >::RootGroup::roots, and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::design_prototype_sections(), Aleph::FFT< Real >::transfer_function_to_sections(), and Aleph::FFT< Real >::transfer_function_to_sections().
|
inlinestaticprivatenoexcept |
Definition at line 1910 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::evaluate_polynomial_and_derivative(), k, and Aleph::FFT< Real >::PolynomialEvaluation::value.
Referenced by Aleph::FFT< Real >::polynomial_roots_impl().
|
inlinestatic |
Builds a default row-major tensor layout for a flat buffer.
Definition at line 8018 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::row_major_strides(), and Aleph::FFT< Real >::TensorLayout::shape.
Referenced by Aleph::FFT< Real >::ptransformed2d(), Aleph::FFT< Real >::ptransformed2d_batch(), Aleph::FFT< Real >::ptransformed3d(), Aleph::FFT< Real >::transformed2d(), Aleph::FFT< Real >::transformed2d_batch(), and Aleph::FFT< Real >::transformed3d().
|
inlinestaticprivate |
Definition at line 5078 of file fft.H.
References Aleph::Array< T >::create(), Aleph::FFT< Real >::saturating_product(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::tensor_element_count().
Referenced by Aleph::FFT< Real >::normalize_tensor_layout(), and Aleph::FFT< Real >::row_major_layout().
|
inlinestatic |
Returns true when the window pair satisfies COLA.
Definition at line 9862 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::overlap_profile_has_cola(), and Aleph::FFT< Real >::window_overlap_profile().
Referenced by Aleph::FFT< Real >::satisfies_cola().
|
inlinestatic |
Returns true when one window satisfies COLA by itself.
Definition at line 9880 of file fft.H.
References Aleph::FFT< Real >::satisfies_cola().
|
inlinestatic |
Returns true when the window pair satisfies NOLA.
Definition at line 9851 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::overlap_profile_has_nola(), and Aleph::FFT< Real >::window_overlap_profile().
Referenced by Aleph::FFT< Real >::satisfies_nola().
|
inlinestatic |
Returns true when one window satisfies NOLA by itself.
Definition at line 9873 of file fft.H.
References Aleph::FFT< Real >::satisfies_nola().
|
inlinestaticconstexprprivatenoexcept |
Definition at line 1297 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::axis_base_offsets(), Aleph::FFT< Real >::row_major_strides(), Aleph::FFT< Real >::should_parallelize_batch_work(), Aleph::FFT< Real >::tensor_element_count(), and Aleph::FFT< Real >::tensor_max_offset().
|
inlinestaticprivate |
Scalar scaling.
Definition at line 885 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), and output.
Referenced by Aleph::FFT< Real >::iir_filtfilt_impl(), and Aleph::FFT< Real >::sos_filtfilt_impl().
|
inlinestaticprivatenoexcept |
Definition at line 916 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::apply_analog_rational_transform(), Aleph::FFT< Real >::balance_polynomial_for_roots(), Aleph::FFT< Real >::build_weighted_frequency_grid(), Aleph::FFT< Real >::choose_remez_extrema(), Aleph::FFT< Real >::elliptic_cd_minus_imaginary(), Aleph::FFT< Real >::elliptic_prototype(), Aleph::FFT< Real >::evaluate_analog_transfer_magnitude(), Aleph::FFT< Real >::extract_repeated_unit_roots(), Aleph::FFT< Real >::firls_impl(), Aleph::FFT< Real >::jacobi_sn_cn_dn(), Aleph::FFT< Real >::normalize_fir_at_omega(), Aleph::FFT< Real >::polynomial_root_lower_bound(), Aleph::FFT< Real >::polynomial_roots_impl(), and Aleph::FFT< Real >::refine_scalar_crossing().
|
inlinestaticprivate |
Rationale: Writes back a transformed contiguous slice into its original (potentially non-contiguous) memory locations.
Definition at line 5249 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::transform_axis_impl().
|
inlinestaticprivate |
Rationale: Converts generic IIR coefficients into a stabilized BiquadSection structure, enforcing the second-order limit.
Definition at line 2860 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::normalize_iir_coefficients(), Aleph::FFT< Real >::IIRCoefficients::numerator, section(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::design_prototype_sections(), and Aleph::FFT< Real >::transfer_function_to_sections().
|
inlinestaticprivatenoexcept |
Definition at line 924 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::analytic_group_delay_impl(), Aleph::FFT< Real >::analytic_sos_group_delay_impl(), Aleph::FFT< Real >::evaluate_transfer_at(), and Aleph::FFT< Real >::evaluate_transfer_terms_at().
|
inlinestaticprivatenoexcept |
Definition at line 1307 of file fft.H.
References Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::ThreadPool::num_threads(), and Aleph::FFT< Real >::saturating_product().
Referenced by Aleph::FFT< Real >::OverlapAddBank::convolve_impl(), Aleph::FFT< Real >::OverlapAddBank::process_chunk_batch_impl(), and Aleph::FFT< Real >::transform_stft_frames().
|
inlinestaticprivate |
Rationale: Computes (1 + sign*x)^power coefficients.
Definition at line 2450 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), and k.
Referenced by Aleph::FFT< Real >::bilinear_substitute_polynomial().
|
inlinestaticnoexcept |
Returns the default SIMD backend used by standalone plan transforms for this precision.
Definition at line 6199 of file fft.H.
References Aleph::FFT< Real >::automatic, Aleph::FFT< Real >::avx2, Aleph::FFT< Real >::avx2_only, Aleph::FFT< Real >::detected_simd_backend(), Aleph::FFT< Real >::neon, Aleph::FFT< Real >::neon_only, Aleph::FFT< Real >::scalar, Aleph::FFT< Real >::scalar_only, and Aleph::FFT< Real >::simd_preference().
Referenced by Aleph::FFT< Real >::simd_backend_name().
|
inlinestaticnoexcept |
Returns the active default SIMD backend name for this precision.
Definition at line 6216 of file fft.H.
References Aleph::FFT< Real >::simd_backend(), and Aleph::FFT< Real >::simd_backend_name().
Referenced by Aleph::FFT< Real >::batched_plan_simd_backend_name(), Aleph::FFT< Real >::detected_simd_backend_name(), and Aleph::FFT< Real >::simd_backend_name().
|
inlinestaticconstexprnoexcept |
Returns the human-readable name of a SIMD backend.
Definition at line 6007 of file fft.H.
References Aleph::FFT< Real >::avx2, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::neon, and Aleph::FFT< Real >::scalar.
|
inlinestaticnoexcept |
Returns the runtime SIMD preference requested via environment.
ALEPH_FFT_SIMD=auto|scalar|avx2 is preferred. Legacy compatibility is preserved through ALEPH_FFT_ENABLE_AVX2=1 and ALEPH_FFT_DISABLE_AVX2=1.
Definition at line 6165 of file fft.H.
References Aleph::and, Aleph::FFT< Real >::automatic, Aleph::FFT< Real >::avx2_only, Aleph::blossom_maximum_cardinality_matching(), Aleph::mode(), Aleph::FFT< Real >::neon_only, Aleph::FFT< Real >::scalar_only, and value.
Referenced by Aleph::FFT< Real >::batched_plan_simd_backend(), Aleph::FFT< Real >::Plan::should_use_avx2(), Aleph::FFT< Real >::Plan::should_use_neon(), Aleph::FFT< Real >::simd_backend(), and Aleph::FFT< Real >::simd_preference_name().
|
inlinestaticnoexcept |
Returns the requested SIMD policy name.
Definition at line 6254 of file fft.H.
References Aleph::FFT< Real >::simd_preference(), and Aleph::FFT< Real >::simd_preference_name().
Referenced by Aleph::FFT< Real >::simd_preference_name().
|
inlinestaticconstexprnoexcept |
Returns the human-readable name of a SIMD preference.
Definition at line 6023 of file fft.H.
References Aleph::FFT< Real >::automatic, Aleph::FFT< Real >::avx2_only, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::neon_only, and Aleph::FFT< Real >::scalar_only.
|
inlinestaticprivate |
Functional slice extraction.
Definition at line 532 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), offset, output, and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::filtfilt(), Aleph::FFT< Real >::OverlapSave::flush(), Aleph::FFT< Real >::PartitionedConvolver::flush(), Aleph::FFT< Real >::iir_filtfilt_impl(), Aleph::FFT< Real >::istft_impl(), Aleph::FFT< Real >::overlap_add_frames(), Aleph::FFT< Real >::pfiltfilt(), Aleph::FFT< Real >::OverlapSave::process_block(), Aleph::FFT< Real >::PartitionedConvolver::process_block(), Aleph::FFT< Real >::OverlapSave::process_chunk_impl(), Aleph::FFT< Real >::resample_poly(), and Aleph::FFT< Real >::sos_filtfilt_impl().
|
inlinestaticprivate |
Definition at line 972 of file fft.H.
References ah_domain_error_if, ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), col, Aleph::Array< T >::create(), k, row, Aleph::Array< T >::size(), and Aleph::sum().
Referenced by Aleph::FFT< Real >::firls_impl(), Aleph::FFT< Real >::iir_steady_state(), and Aleph::FFT< Real >::solve_remez_cosine_series().
|
inlinestaticprivate |
Definition at line 3161 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::complete_elliptic_first_kind().
Referenced by Aleph::FFT< Real >::elliptic_prototype().
|
inlinestaticprivate |
Definition at line 4292 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), col, Aleph::Array< T >::create(), row, Aleph::Array< T >::size(), and Aleph::FFT< Real >::solve_dense_system().
Referenced by Aleph::FFT< Real >::remez_impl().
|
inlinestaticprivate |
Definition at line 1196 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::default_filtfilt_pad_length(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::iir_filter_impl(), Aleph::FFT< Real >::iir_steady_state(), Aleph::Array< T >::is_empty(), Aleph::FFT< Real >::normalize_iir_coefficients(), output, Aleph::FFT< Real >::reflect_pad_signal(), Aleph::Array< T >::reserve(), Aleph::FFT< Real >::reverse_copy(), Aleph::FFT< Real >::scaled_copy(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::slice_copy().
Referenced by Aleph::FFT< Real >::filtfilt().
|
inlinestatic |
One-shot causal filtering of a cascade of second-order sections.
Definition at line 12090 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::SOSFilter::filter().
Referenced by Aleph::FFT< Real >::batched_sosfilt(), and Aleph::FFT< Real >::sosfilt().
|
inlinestatic |
Definition at line 12100 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::sosfilt().
|
inlinestatic |
DSP alias for the forward FFT.
Definition at line 8593 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transformed().
Referenced by Aleph::FFT< Real >::OverlapAdd::convolve_impl(), Aleph::FFT< Real >::expand_real_spectrum(), Aleph::FFT< Real >::Plan::irfft(), Aleph::FFT< Real >::irfft(), Aleph::FFT< Real >::irfft(), Aleph::FFT< Real >::Plan::pirfft(), Aleph::FFT< Real >::pirfft(), Aleph::FFT< Real >::pirfft(), Aleph::FFT< Real >::OverlapAdd::pointwise_multiply(), Aleph::FFT< Real >::ISTFTProcessor::pprocess_frame(), Aleph::FFT< Real >::ISTFTProcessor::pprocess_frame(), Aleph::FFT< Real >::OverlapAdd::process_chunk_impl(), Aleph::FFT< Real >::ISTFTProcessor::process_frame(), Aleph::FFT< Real >::ISTFTProcessor::process_frame(), Aleph::FFT< Real >::ISTFTProcessor::process_frame_impl(), Aleph::FFT< Real >::resolve_irfft_signal_size(), Aleph::FFT< Real >::transform_real_optimized(), Aleph::FFT< Real >::windowed_spectrum(), Aleph::FFT< Real >::windowed_spectrum(), and Aleph::FFT< Real >::PartitionedConvolver::zero_spectrum().
|
inlinestatic |
DSP alias for the real forward FFT.
Definition at line 8608 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transform().
|
inlinestatic |
DSP alias for complex-valued container forward FFT.
Definition at line 8625 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transformed().
|
inlinestatic |
DSP alias for real-valued container forward FFT.
Definition at line 8644 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transform().
|
inlinestatic |
Definition at line 12468 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::stability_margin().
|
inlinestatic |
Signed stability margin relative to the unit circle.
Definition at line 12450 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::max_root_radius(), and Aleph::FFT< Real >::poles().
Referenced by Aleph::FFT< Real >::is_stable(), Aleph::FFT< Real >::stability_margin(), Aleph::FFT< Real >::stability_margin(), Aleph::FFT< Real >::stability_margin(), Aleph::FFT< Real >::stability_margin(), Aleph::FFT< Real >::stability_margin(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12462 of file fft.H.
References section(), and Aleph::FFT< Real >::stability_margin().
|
inlinestatic |
Definition at line 12482 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::stability_margin().
|
inlinestatic |
Definition at line 12456 of file fft.H.
References Aleph::FFT< Real >::IIRCoefficients::denominator, and Aleph::FFT< Real >::stability_margin().
|
inlinestatic |
Definition at line 12490 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::stability_margin().
|
inlinestatic |
Computes a basic STFT for a real signal using a custom window.
Each frame is windowed and transformed with zero-padding to the next power-of-two FFT size when needed.
Definition at line 9941 of file fft.H.
References Aleph::FFT< Real >::STFTOptions::hop_size, options, and Aleph::FFT< Real >::stft_impl().
Referenced by Aleph::FFT< Real >::stft(), Aleph::FFT< Real >::stft(), Aleph::FFT< Real >::stft(), Aleph::FFT< Real >::stft(), Aleph::FFT< Real >::stft(), and Aleph::FFT< Real >::stft().
|
inlinestatic |
Computes an STFT with explicit analysis options.
Definition at line 9986 of file fft.H.
References options, and Aleph::FFT< Real >::stft_impl().
|
inlinestatic |
Computes a basic STFT for a real signal using a Hann window.
Definition at line 9954 of file fft.H.
References Aleph::FFT< Real >::hann_window(), and Aleph::FFT< Real >::stft().
|
inlinestatic |
Computes a Hann-window STFT with explicit analysis options.
Definition at line 10006 of file fft.H.
References Aleph::FFT< Real >::hann_window(), options, and Aleph::FFT< Real >::stft().
|
inlinestatic |
Definition at line 9976 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::stft().
|
inlinestatic |
Definition at line 10053 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), options, and Aleph::FFT< Real >::stft().
|
inlinestatic |
Definition at line 9965 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::stft().
|
inlinestatic |
Definition at line 10027 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), options, and Aleph::FFT< Real >::stft().
|
inlinestaticprivate |
Definition at line 1438 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::frame_signal(), Aleph::Array< T >::is_empty(), options, Aleph::Array< T >::size(), Aleph::FFT< Real >::transform_stft_frames(), Aleph::FFT< Real >::validate_stft_options(), and Aleph::FFT< Real >::zero_pad_edges().
Referenced by Aleph::FFT< Real >::batched_stft(), Aleph::FFT< Real >::pbatched_stft(), Aleph::FFT< Real >::pstft(), Aleph::FFT< Real >::stft(), and Aleph::FFT< Real >::stft().
|
inlinestaticprivate |
Rationale: Evaluates P(N(z)/D(z)) by scaling by the common denominator D(z)^degree and evaluating the resulting nested polynomial expansion.
Definition at line 2553 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::effective_coeff_length(), Aleph::Array< T >::is_empty(), output, Aleph::FFT< Real >::polynomial_multiply(), and Aleph::FFT< Real >::trim_polynomial_leading_zeros().
Referenced by Aleph::FFT< Real >::apply_analog_rational_transform().
|
inlinestaticprivatenoexcept |
L2 norm squared.
Definition at line 753 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::window_enbw(), and Aleph::FFT< Real >::window_energy().
|
inlinestaticprivatenoexcept |
Sum reduction.
Definition at line 743 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::demean_copy(), Aleph::FFT< Real >::window_coherent_gain(), and Aleph::FFT< Real >::window_enbw().
|
inlinestaticprivate |
Rationale: Validates that a nested Array represents a 3D tensor and returns its {d0, d1, d2} shape.
Definition at line 5398 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::size(), and Aleph::size().
Referenced by Aleph::FFT< Real >::flatten_tensor3_row_major(), Aleph::FFT< Real >::ptransformed2d_batch(), Aleph::FFT< Real >::ptransformed3d(), Aleph::FFT< Real >::transformed2d_batch(), and Aleph::FFT< Real >::transformed3d().
|
inlinestaticprivate |
Definition at line 5061 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), Aleph::FFT< Real >::saturating_product(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::normalize_tensor_layout(), and Aleph::FFT< Real >::row_major_strides().
|
inlinestaticprivate |
Definition at line 5093 of file fft.H.
References ah_invalid_argument_if, Aleph::FFT< Real >::saturating_product(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::normalize_tensor_layout().
|
inlinestaticprivate |
Definition at line 5031 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::Array< T >::reserve().
|
inlinestaticprivate |
overload of transfer_function_to_sections using raw coefficients.
Definition at line 3692 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), Aleph::FFT< Real >::normalize_iir_coefficients(), Aleph::FFT< Real >::IIRCoefficients::numerator, Aleph::FFT< Real >::root_groups_impl(), Aleph::FFT< Real >::transfer_function_to_sections(), and Aleph::FFT< Real >::zeros().
|
inlinestaticprivate |
Rationale: Decomposes a general IIR transfer function into a cascade of Second-Order Sections (SOS) by pairing poles and zeros.
Definition at line 3631 of file fft.H.
References ah_invalid_argument_if, Aleph::Array< T >::append(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::IIRCoefficients::denominator, k, Aleph::FFT< Real >::IIRCoefficients::numerator, Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::real_polynomial_from_roots(), Aleph::Array< T >::reserve(), Aleph::FFT< Real >::root_groups_impl(), Aleph::FFT< Real >::section_from_coefficients(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::design_bandstop_sections_without_numerator_roots(), Aleph::FFT< Real >::design_transformed_sections(), and Aleph::FFT< Real >::transfer_function_to_sections().
|
inlinestatic |
Computes the Fast Fourier Transform (FFT) in-place.
Implements a mixed radix-2/radix-4 iterative Cooley-Tukey algorithm. Power-of-two sizes use the optimized radix-2/radix-4 kernel, while other sizes dispatch to a reusable arbitrary-length plan.
If 'invert' is true, it computes the Inverse Fast Fourier Transform (IFFT), including the 1/N scaling factor.
| a | The array of complex values to transform. Modified in-place. |
| invert | Whether to perform the inverse transform. |
| std::invalid_argument | if the size of 'a' is zero. |
Definition at line 7838 of file fft.H.
References Aleph::FFT< Real >::transform_any_size_impl().
Referenced by Aleph::FFT< Real >::rfft(), Aleph::FFT< Real >::spectrum(), Aleph::FFT< Real >::spectrum(), Aleph::FFT< Real >::transform(), Aleph::FFT< Real >::transform_padded(), Aleph::FFT< Real >::transform_padded(), and Aleph::FFT< Real >::transformed().
|
inlinestatic |
Computes the FFT of a real-valued input sequence.
The input sequence is first lifted to the complex domain (imaginary parts set to zero) before the transform is applied. Generic iterable containers of real values are accepted through a separate overload.
| input | The input array of real values. |
| std::invalid_argument | if the input size is zero. |
Definition at line 8456 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transform_real_optimized().
|
inlinestatic |
Forward FFT for complex-valued containers.
Definition at line 8519 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transformed().
|
inlinestatic |
Forward FFT for real-valued containers.
Definition at line 8557 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::transform().
|
inlinestaticprivate |
Definition at line 7787 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::is_power_of_two(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::transform_impl().
Referenced by Aleph::FFT< Real >::inverse_transform_real_general_impl(), Aleph::FFT< Real >::ptransform(), Aleph::FFT< Real >::transform(), and Aleph::FFT< Real >::transform_real_optimized().
|
inlinestatic |
In-place FFT/IFFT along multiple tensor axes of a flat buffer.
Definition at line 8050 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transform_axes_impl().
Referenced by Aleph::FFT< Real >::transformed2d(), Aleph::FFT< Real >::transformed2d_batch(), Aleph::FFT< Real >::transformed3d(), and Aleph::FFT< Real >::transformed_axes().
|
inlinestaticprivate |
Rationale: Internal implementation of a multi-axis tensor transform.
Applies the 1D transform sequentially along each requested axis.
Definition at line 5316 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::normalize_axes(), Aleph::FFT< Real >::normalize_tensor_layout(), and Aleph::FFT< Real >::transform_axis_impl().
Referenced by Aleph::FFT< Real >::ptransform_axes(), and Aleph::FFT< Real >::transform_axes().
|
inlinestatic |
In-place 1-D FFT/IFFT along one tensor axis of a flat buffer.
Definition at line 8028 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transform_axis_impl().
|
inlinestaticprivate |
Rationale: Internal implementation of a 1D FFT along a single tensor axis.
It gathers slices, transforms them, and scatters them back.
Definition at line 5262 of file fft.H.
References Aleph::and, Aleph::FFT< Real >::axis_base_offsets(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::gather_axis_slice(), Aleph::FFT< Real >::normalize_axes(), Aleph::FFT< Real >::normalize_tensor_layout(), Aleph::parallel_for_index(), Aleph::FFT< Real >::scatter_axis_slice(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::ptransform_axis(), Aleph::FFT< Real >::transform_axes_impl(), and Aleph::FFT< Real >::transform_axis().
|
inlinestatic |
In-place batch transform for equal-length complex inputs.
Definition at line 7905 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::size().
Referenced by Aleph::FFT< Real >::transformed_batch().
|
inlinestaticprivate |
implementation of the power-of-two iterative FFT using mixed radix-2/4.
Definition at line 5845 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::FFT< Real >::bit_reverse(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::is_power_of_two(), Aleph::parallel_for_index(), r, Aleph::Array< T >::size(), Aleph::FFT< Real >::twiddle_at(), and Aleph::FFT< Real >::twiddle_refresh_period.
Referenced by Aleph::FFT< Real >::inverse_transform_real(), Aleph::FFT< Real >::multiply_complex_impl(), Aleph::FFT< Real >::multiply_real_optimized(), Aleph::FFT< Real >::pinverse_transform_real(), Aleph::FFT< Real >::transform_any_size_impl(), and Aleph::FFT< Real >::transform_real_optimized().
|
inlinestatic |
Definition at line 8347 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::next_power_of_two(), output, Aleph::FFT< Real >::transform(), and Aleph::FFT< Real >::zero_padded_copy().
Referenced by Aleph::FFT< Real >::transform_padded().
|
inlinestatic |
Computes the FFT after zero-padding the input to the next power of two.
Definition at line 8501 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::next_power_of_two(), Aleph::FFT< Real >::transform(), and Aleph::FFT< Real >::zero_padded_copy().
|
inlinestatic |
Zero-pad and forward-FFT a generic complex iterable.
Accepts any container of std::complex<Real> values (e.g. std::vector<Complex>, DynList<Complex>). The input is copied to an internal Array<Complex> via build_complex_input before the transform is applied.
| Container | Any iterable whose elements are std::complex<Real>. |
| input | The input container. |
Array<Complex> zero-padded to a power-of-two length and transformed. | std::invalid_argument | if the input is empty. |
| std::bad_alloc | if memory allocation fails. |
Definition at line 8380 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::transform_padded().
|
inlinestatic |
Forward FFT with padding for real-valued containers.
Definition at line 8538 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::transform_padded().
|
inlinestaticprivate |
Rationale: Optimized FFT for real signals of size N (power-of-two).
Computes an N/2 complex FFT and uses symmetry to extract the full N-point complex spectrum.
Definition at line 5555 of file fft.H.
References ah_invalid_argument_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::FFT< Real >::is_power_of_two(), k, Aleph::FFT< Real >::lift_real_input(), Aleph::parallel_for_index(), Aleph::Array< T >::reserve(), Aleph::Array< T >::size(), Aleph::FFT< Real >::spectrum(), Aleph::FFT< Real >::transform_any_size_impl(), Aleph::FFT< Real >::transform_impl(), and Aleph::FFT< Real >::twiddle_at().
Referenced by Aleph::FFT< Real >::ptransform(), and Aleph::FFT< Real >::transform().
|
inlinestaticprivatenoexcept |
Returns log2(N) stages, used for numerical error scaling.
Definition at line 408 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::hermitian_tolerance(), Aleph::FFT< Real >::project_real_output(), and Aleph::FFT< Real >::real_projection_tolerance().
|
inlinestaticprivate |
Definition at line 1389 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::count(), Aleph::ThreadPool::num_threads(), offset, output, Aleph::parallel_for_index(), Aleph::FFT< Real >::prepare_stft_frame_input(), Aleph::FFT< Real >::recommended_cache_tile_size(), and Aleph::FFT< Real >::should_parallelize_batch_work().
Referenced by Aleph::FFT< Real >::STFTProcessor::emit_ready_frames(), and Aleph::FFT< Real >::stft_impl().
|
inlinestatic |
Computes the FFT or IFFT and returns a new array.
Functional wrapper around the in-place transform method. Overloads are also available for generic iterable containers of std::complex values.
| input | The input array of complex values. |
| invert | Whether to perform the inverse transform. |
| std::invalid_argument | if the input size is zero. |
Definition at line 7875 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::FFT< Real >::transform().
Referenced by Aleph::FFT< Real >::inverse_transform(), Aleph::FFT< Real >::inverse_transform(), Aleph::FFT< Real >::spectrum(), Aleph::FFT< Real >::spectrum(), Aleph::FFT< Real >::transform(), and Aleph::FFT< Real >::transformed().
|
inlinestatic |
FFT/IFFT for a generic complex iterable.
Accepts any container of std::complex<Real> values. The input is converted to Array<Complex> via build_complex_input before the transform is applied.
| Container | Any iterable whose elements are std::complex<Real>. |
| input | The input container. |
| invert | If true, computes the inverse transform (IFFT). |
Array<Complex> containing the transformed values. | std::invalid_argument | if the input is empty. |
| std::bad_alloc | if memory allocation fails. |
Definition at line 8420 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_complex_input(), and Aleph::FFT< Real >::transformed().
|
inlinestatic |
Functional 2-D FFT/IFFT wrapper for rectangular complex matrices.
Definition at line 8098 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::flatten_matrix_row_major(), Aleph::FFT< Real >::matrix_shape(), Aleph::FFT< Real >::reshape_matrix_row_major(), Aleph::FFT< Real >::row_major_layout(), and Aleph::FFT< Real >::transform_axes().
Referenced by Aleph::FFT< Real >::inverse_transform2d().
|
inlinestatic |
Functional 2-D batched FFT/IFFT wrapper over a matrix stack.
Definition at line 8149 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::flatten_tensor3_row_major(), Aleph::FFT< Real >::reshape_tensor3_row_major(), Aleph::FFT< Real >::row_major_layout(), Aleph::FFT< Real >::tensor3_shape(), and Aleph::FFT< Real >::transform_axes().
|
inlinestatic |
Functional 3-D FFT/IFFT wrapper for rectangular complex tensors.
Definition at line 8188 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::flatten_tensor3_row_major(), Aleph::FFT< Real >::reshape_tensor3_row_major(), Aleph::FFT< Real >::row_major_layout(), Aleph::FFT< Real >::tensor3_shape(), and Aleph::FFT< Real >::transform_axes().
Referenced by Aleph::FFT< Real >::inverse_transform3d().
|
inlinestatic |
Functional tensor FFT/IFFT wrapper for flat buffers.
Definition at line 8072 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::FFT< Real >::transform_axes().
|
inlinestatic |
Functional batch FFT/IFFT wrapper.
Definition at line 7930 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::FFT< Real >::transform_batch().
Referenced by Aleph::FFT< Real >::inverse_transform_batch().
|
inlinestatic |
Converts multichannel spectrograms between channel-major and frame-major layouts.
Definition at line 8246 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::transpose_spectrogram_layout_impl().
|
inlinestaticprivate |
Rationale: Internal implementation for transposing between multichannel spectrogram layouts (e.g.
Channel-major to Frame-major).
Definition at line 5474 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::channel_frame_bin, output, Aleph::Array< T >::size(), and Aleph::size().
Referenced by Aleph::FFT< Real >::transpose_spectrogram_layout().
|
inlinestaticprivatenoexcept |
Rationale: Copy utility that removes leading zero coefficients, effectively normalizing the polynomial degree.
Definition at line 2116 of file fft.H.
References Aleph::and, Aleph::blossom_maximum_cardinality_matching(), and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::extract_repeated_unit_roots(), Aleph::FFT< Real >::trim_polynomial_leading_zeros(), and Aleph::FFT< Real >::zeros().
|
inlinestaticprivate |
Validation wrapper for trim_leading_zeros_copy.
Definition at line 2526 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::trim_leading_zeros_copy().
Referenced by Aleph::FFT< Real >::apply_analog_rational_transform(), and Aleph::FFT< Real >::substitute_rational_polynomial().
|
inlinestaticprivate |
Trims input to size n.
Definition at line 5013 of file fft.H.
References ah_invalid_argument_if, and Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::multiply_complex_impl(), and Aleph::FFT< Real >::multiply_real_optimized().
|
inlinestaticprivatenoexcept |
Definition at line 1732 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::PolynomialEvaluation::derivative, Aleph::FFT< Real >::evaluate_polynomial_and_derivative(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::PolynomialEvaluation::value.
Referenced by Aleph::FFT< Real >::polynomial_roots_impl().
|
inlinestaticprivatenoexcept |
Definition at line 1787 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::evaluate_polynomial_and_derivative(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::PolynomialEvaluation::value.
Referenced by Aleph::FFT< Real >::polynomial_roots_impl().
|
inlinestaticprivatenoexcept |
Definition at line 1933 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), k, and m.
Referenced by Aleph::FFT< Real >::polynomial_roots_impl().
|
inlinestaticprivate |
Computes a single twiddle factor exp(j * angle * index).
Definition at line 401 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching().
Referenced by Aleph::FFT< Real >::inverse_transform_real_optimized_impl(), Aleph::FFT< Real >::transform_impl(), and Aleph::FFT< Real >::transform_real_optimized().
|
inlinestaticprivate |
implementation of phase unwrapping (removes +/- 2*pi jumps).
Definition at line 4787 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::Array< T >::is_empty(), offset, output, and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::analytic_phase_delay_impl(), Aleph::FFT< Real >::gain_margin_impl(), Aleph::FFT< Real >::gain_margin_refined_impl(), Aleph::FFT< Real >::group_delay_impl(), Aleph::FFT< Real >::phase_delay(), Aleph::FFT< Real >::phase_delay_impl(), Aleph::FFT< Real >::phase_margin_impl(), and Aleph::FFT< Real >::phase_margin_refined_impl().
|
inlinestatic |
Polyphase upsample-filter-downsample for real signals.
Definition at line 9296 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::create(), Aleph::Array< T >::is_empty(), k, output, and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::resample_poly(), and Aleph::FFT< Real >::upfirdn().
|
inlinestatic |
Definition at line 9335 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::upfirdn().
|
inlinestaticprivate |
Rationale: Validates and normalizes ISTFT parameters, checking window constraints and FFT size.
Definition at line 4867 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), options, and Aleph::FFT< Real >::validate_overlap_constraints().
Referenced by Aleph::FFT< Real >::ISTFTProcessor::ISTFTProcessor(), and Aleph::FFT< Real >::istft_impl().
|
inlinestatic |
Definition at line 12760 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Definition at line 12718 of file fft.H.
References ah_domain_error_if, Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::poles(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::zeros().
Referenced by Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), and Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation().
|
inlinestatic |
Definition at line 12732 of file fft.H.
References Aleph::FFT< Real >::poles(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Definition at line 12751 of file fft.H.
References section(), and Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation().
|
inlinestatic |
Definition at line 12742 of file fft.H.
References Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::IIRCoefficients::numerator, and Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation().
|
inlinestatic |
Definition at line 12771 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation().
|
inlinestatic |
Definition at line 12783 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation().
|
inlinestaticprivate |
Rationale: Internal validator for STFT/ISTFT windowing parameters.
Definition at line 676 of file fft.H.
References ah_domain_error_if, Aleph::and, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::overlap_profile(), Aleph::FFT< Real >::overlap_profile_has_cola(), and Aleph::FFT< Real >::overlap_profile_has_nola().
Referenced by Aleph::FFT< Real >::validate_istft_configuration(), and Aleph::FFT< Real >::validate_stft_options().
|
inlinestaticprivate |
Rationale: Ensures a complex spectrum has the Hermitian symmetry (X[k] = X[N-k]*) required to be the transform of a real signal.
Definition at line 443 of file fft.H.
References ah_domain_error_if, ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::hermitian_tolerance(), k, and Aleph::FFT< Real >::real_projection_tolerance().
Referenced by Aleph::FFT< Real >::Plan::inverse_transform_real(), Aleph::FFT< Real >::inverse_transform_real_general_impl(), Aleph::FFT< Real >::inverse_transform_real_optimized_impl(), and Aleph::FFT< Real >::Plan::pinverse_transform_real().
|
inlinestatic |
Definition at line 12640 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12688 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::stability_margin(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12613 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::poles(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::stability_margin().
Referenced by Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), Aleph::FFT< Real >::validate_stable(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12663 of file fft.H.
References ah_domain_error_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::stability_margin(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12634 of file fft.H.
References section(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12681 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), section(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12649 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12702 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12628 of file fft.H.
References Aleph::FFT< Real >::IIRCoefficients::denominator, and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12674 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::IIRCoefficients::denominator, and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12657 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::validate_stable().
|
inlinestatic |
Definition at line 12711 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::validate_stable().
|
inlinestaticprivate |
Definition at line 1360 of file fft.H.
References ah_invalid_argument_if, Aleph::Array< T >::is_empty(), Aleph::FFT< Real >::next_power_of_two(), options, Aleph::Array< T >::size(), and Aleph::FFT< Real >::validate_overlap_constraints().
Referenced by Aleph::FFT< Real >::stft_impl().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Returns the average window gain.
Definition at line 9536 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::sum_values().
Referenced by Aleph::FFT< Real >::window_coherent_gain().
|
inlinestatic |
Definition at line 9567 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::window_coherent_gain().
|
inlinestatic |
Returns the equivalent noise bandwidth of a window in bins.
Definition at line 9545 of file fft.H.
References ah_domain_error_if, ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), Aleph::Array< T >::is_empty(), Aleph::Array< T >::size(), Aleph::FFT< Real >::sum_squares(), and Aleph::FFT< Real >::sum_values().
Referenced by Aleph::FFT< Real >::window_enbw().
|
inlinestatic |
Definition at line 9575 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::window_enbw().
|
inlinestatic |
Returns the sum of squared window samples.
Definition at line 9528 of file fft.H.
References ah_invalid_argument_if, Aleph::Array< T >::is_empty(), and Aleph::FFT< Real >::sum_squares().
Referenced by Aleph::FFT< Real >::window_energy().
|
inlinestatic |
Definition at line 9559 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::window_energy().
|
inlinestatic |
Returns the overlap-add normalization profile for one hop period.
Definition at line 9839 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::overlap_profile().
Referenced by Aleph::FFT< Real >::satisfies_cola(), and Aleph::FFT< Real >::satisfies_nola().
|
inlinestatic |
Returns the FFT of a complex signal after applying a window.
Definition at line 9503 of file fft.H.
References Aleph::FFT< Real >::apply_window(), and Aleph::FFT< Real >::spectrum().
|
inlinestatic |
Returns the FFT of a real signal after applying a window.
Definition at line 9496 of file fft.H.
References Aleph::FFT< Real >::apply_window(), and Aleph::FFT< Real >::spectrum().
Referenced by Aleph::FFT< Real >::windowed_spectrum().
|
inlinestatic |
Definition at line 9511 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::windowed_spectrum().
|
inlinestatic |
Definition at line 9520 of file fft.H.
References Aleph::FFT< Real >::build_complex_input(), Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::windowed_spectrum().
|
inlinestaticprivate |
functional zero-padding at both ends.
Definition at line 596 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), output, Aleph::Array< T >::reserve(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::stft_impl().
|
inlinestaticprivate |
Returns a copy of input zero-padded to size n.
Definition at line 4979 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), output, Aleph::Array< T >::reserve(), and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::multiply_complex_impl(), Aleph::FFT< Real >::multiply_real_optimized(), Aleph::FFT< Real >::prepare_stft_frame_input(), Aleph::FFT< Real >::ptransform_padded(), Aleph::FFT< Real >::ptransform_padded(), Aleph::FFT< Real >::transform_padded(), and Aleph::FFT< Real >::transform_padded().
|
inlinestaticprivate |
Returns a copy of input zero-padded to size n.
Definition at line 4996 of file fft.H.
References ah_invalid_argument_if, Aleph::blossom_maximum_cardinality_matching(), output, Aleph::Array< T >::reserve(), and Aleph::Array< T >::size().
|
inlinestatic |
Definition at line 12297 of file fft.H.
References Aleph::FFT< Real >::append_all(), Aleph::blossom_maximum_cardinality_matching(), output, and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Returns the finite zeros of a transfer numerator.
Definition at line 12248 of file fft.H.
References Aleph::FFT< Real >::append_all(), Aleph::blossom_maximum_cardinality_matching(), Aleph::FFT< Real >::extract_repeated_unit_roots(), Aleph::FFT< Real >::polynomial_roots_impl(), and Aleph::FFT< Real >::trim_leading_zeros_copy().
Referenced by Aleph::FFT< Real >::OverlapSave::flush(), Aleph::FFT< Real >::PartitionedConvolver::flush(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::has_near_pole_zero_cancellation(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::minimum_pole_zero_distance(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pair_poles_and_zeros(), Aleph::FFT< Real >::pole_zero_pairs_impl(), Aleph::FFT< Real >::transfer_function_to_sections(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), Aleph::FFT< Real >::validate_no_near_pole_zero_cancellation(), Aleph::FFT< Real >::zeros(), Aleph::FFT< Real >::zeros(), Aleph::FFT< Real >::zeros(), Aleph::FFT< Real >::zeros(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Definition at line 12285 of file fft.H.
References section(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Definition at line 12317 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Definition at line 12273 of file fft.H.
References Aleph::FFT< Real >::IIRCoefficients::numerator, and Aleph::FFT< Real >::zeros().
|
inlinestatic |
Definition at line 12333 of file fft.H.
References Aleph::blossom_maximum_cardinality_matching(), and Aleph::FFT< Real >::zeros().
|
staticconstexprprivate |
|
staticconstexprprivate |
|
staticconstexprprivate |
|
staticconstexprprivate |
|
staticconstexprprivate |
Definition at line 397 of file fft.H.
Referenced by Aleph::FFT< Real >::transform_impl().