|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
Reflect an arrow through the origin of its domain: \((U f)(x) =
f(-x)\) — the parity operator U precomposed onto f. The third intensional combinator (beside Scaled / PointwiseSum) that completes the surface: with them it ASSEMBLES the even projector \(P = \tfrac12(I+U)\) as scaled(½, pointwise_sum(f, reflected(f))), rather than hand-rolling pointwise + and scalar ·. Requires the domain to carry unary negation (found by ADL on the domain type).
More...

Public Types | |
| using | Domain = typename std::remove_cvref_t<F>::Domain |
| using | Codomain = typename std::remove_cvref_t<F>::Codomain |
Public Member Functions | |
| constexpr Codomain | operator() (const Domain &x) const |
Public Attributes | |
| F | f |
Reflect an arrow through the origin of its domain: \((U f)(x) =
f(-x)\) — the parity operator U precomposed onto f. The third intensional combinator (beside Scaled / PointwiseSum) that completes the surface: with them it ASSEMBLES the even projector \(P = \tfrac12(I+U)\) as scaled(½, pointwise_sum(f, reflected(f))), rather than hand-rolling pointwise + and scalar ·. Requires the domain to carry unary negation (found by ADL on the domain type).
dedekind::algebra 's halfspace-transport reflection (algebra/halfspace_transport.cppm: image / preimage of x↦c·x, the c=−1 NEGATE branch, \(\{x⋈P\}↦\{x⋈c·P\}\) with the sense flipped): the same sign point-map x↦−x, pulled back CONTRAVARIANTLY. There it lands a typed Halfspace (the collapse-visible closed form, #816's "typed result only where it adds structure"); here it lands a general arrow — the function-space face of one affine/sign transport (translate +K, scale/reflect c·) over distinct carriers (predicate / arrow / dense LinearMap). preimage(f,S)=χ_S∘f is the predicate-side "precompose with a point-map"; this is the arrow-side. Consolidating the point-map family across carriers is tracked as a follow-up.