|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The de Moivre CHARACTER \(\chi_m : \mathbb{Z}/N \to \mu_N\), \(k \mapsto \zeta_N^{\,mk}\) — the plane wave "as such", carried SYMBOLICALLY in UnitRoot<N> (consumes the μ_N layer; resolve() collapses to exact ℂ at N=8).
More...
Public Types | |
| using | Domain = dedekind::morphologies::Modular<N> |
| using | Codomain = UnitRoot<N> |
Public Member Functions | |
| constexpr UnitRoot< N > | operator() (dedekind::morphologies::Modular< N > k) const |
Public Attributes | |
| dedekind::morphologies::Modular< N > | m {} |
The de Moivre CHARACTER \(\chi_m : \mathbb{Z}/N \to \mu_N\), \(k \mapsto \zeta_N^{\,mk}\) — the plane wave "as such", carried SYMBOLICALLY in UnitRoot<N> (consumes the μ_N layer; resolve() collapses to exact ℂ at N=8).
An IsArrow (position k → harmonic), so it feeds the function-space precompose / reflect combinators directly. Its codomain UnitRoot<N> is a group, not a semiring, so for bra-ket contraction (inner_product, which needs IsSemiring) it is first resolve()d into ℂ — see the ChiKet / ChiBra wrappers in plane_wave_spike_test. root8 is its eagerly-ℂ-collapsed m=1 instance. A group homomorphism in k ( \(\chi_m(k)\,\chi_m(k')=\chi_m(k+k')\)) AND in the dual m (it is the self-dual pairing \(\langle m,k\rangle=\zeta^{mk}\), the DFT kernel). The conjugate bra is just the negated frequency: \(\overline{\chi_m}=\chi_{-m}\) ( \(\overline{\zeta^{mk}}=\zeta^{-mk}\)) — so no separate conjugation is needed, an equality/negation suffices.