Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::numbers::Character< N > Struct Template Referenceexport

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 {}

Detailed Description

template<unsigned N>
struct dedekind::numbers::Character< N >

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.


The documentation for this struct was generated from the following file: