30#ifndef SIM_FOURIER_ASSUME_VALID
31#define SIM_FOURIER_ASSUME_VALID 0
38#ifndef SIM_HAVE_SIMCOMPLEXDOUBLE
54#ifndef SIM_FOURIER_MINIBLEP_SPAN
55#define SIM_FOURIER_MINIBLEP_SPAN 4.0
59#ifndef SIM_FOURIER_MINIBLEP_MAX_WINDOW
60#define SIM_FOURIER_MINIBLEP_MAX_WINDOW 0.5
64#ifndef SIM_FOURIER_INTEGRATOR_LEAK
65#define SIM_FOURIER_INTEGRATOR_LEAK 1e-9
108 int harmonic_count,
double *state);
114 double phase_increment_radians,
int harmonic_count,
126 int harmonic_count,
double duty,
double *state);
132 double phase_increment_radians,
int harmonic_count,
144 int harmonic_count,
double *velocity_state,
145 double *position_state);
151 double phase_increment_radians,
Multidimensional contiguous field abstraction with configurable layout.
double sim_fourier_triangle_blit(double phase_radians, double phase_increment_radians, int harmonic_count, double *velocity_state, double *position_state)
Triangle from double-integrated BLIT square (velocity + position states).
SimComplexDouble sim_fourier_miniblamp_complex(double phase, double dphase)
Complex miniBLAMP.
double sim_fourier_saw_blit(double phase_radians, double phase_increment_radians, int harmonic_count, double *state)
Bandlimited saw from BLIT integration.
SimComplexDouble sim_fourier_polyblep_complex(double phase, double dphase)
Complex PolyBLEP (imaginary part = 0).
double sim_fourier_blit(double phase_radians, int harmonic_count)
DC-corrected BLIT for saw/triangle integration: D_M(φ) − 1/M.
double sim_fourier_polyblamp(double phase, double dphase)
PolyBLAMP (integral of PolyBLEP) for slope/kink smoothing.
double sim_fourier_dirichlet(double phase_radians, int harmonic_count)
Normalized Dirichlet kernel D_M(φ) = sin(Mφ/2)/(M sin(φ/2)).
double sim_fourier_square_blit(double phase_radians, double phase_increment_radians, int harmonic_count, double duty, double *state)
Bandlimited square via phase-shifted BLIT difference and integration.
struct SimComplexDouble SimComplexDouble
Fallback ABI-compatible complex double if not defined in field.h.
double sim_fourier_miniblamp(double phase, double dphase)
miniBLAMP (integrated miniBLEP) for slope discontinuities (triangle).
SimComplexDouble sim_fourier_miniblep_complex(double phase, double dphase)
Complex miniBLEP.
double sim_fourier_polyblep(double phase, double dphase)
Two-point PolyBLEP step correction (subtract from naive saw/square).
SimComplexDouble sim_fourier_dirichlet_complex(SimComplexDouble phase_radians, int harmonic_count)
Complex Dirichlet kernel.
SimComplexDouble sim_fourier_saw_blit_complex(SimComplexDouble phase_radians, double phase_increment_radians, int harmonic_count, SimComplexDouble *state)
Complex BLIT saw (integrates complex BLIT).
SimComplexDouble sim_fourier_polyblamp_complex(double phase, double dphase)
Complex PolyBLAMP.
SimComplexDouble sim_fourier_blit_complex(SimComplexDouble phase_radians, int harmonic_count)
Complex BLIT (DC-corrected).
SimComplexDouble sim_fourier_square_blit_complex(SimComplexDouble phase_radians, double phase_increment_radians, int harmonic_count, double duty, SimComplexDouble *state)
Complex BLIT square.
SimComplexDouble sim_fourier_triangle_blit_complex(SimComplexDouble phase_radians, double phase_increment_radians, int harmonic_count, SimComplexDouble *velocity_state, SimComplexDouble *position_state)
Complex BLIT triangle (double integration).
double sim_fourier_miniblep(double phase, double dphase)
Table-driven miniBLEP (windowed-sinc step) for high stopband rejection.
Explicit in-memory representation for a complex double scalar (re, im)
Definition field.h:175
double im
Definition field.h:177
double re
Definition field.h:176