Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::linear_algebra::Reflected< F > Struct Template Referenceexport

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...

Collaboration diagram for dedekind::linear_algebra::Reflected< F >:

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

Detailed Description

template<typename F>
struct dedekind::linear_algebra::Reflected< 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).

Note
COLLINEAR with 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.

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