Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::linear_algebra::detail Namespace Reference

Classes

struct  ComplexToMatrix2x2Hom
struct  DualToMatrix2x2Hom

Typedefs

using Rat = dedekind::numbers::Rational<dedekind::numbers::default_integer>

Variables

constexpr Complex< Rat > z_probe {Rat{1L}, Rat{2L}}
constexpr Complex< Rat > w_probe {Rat{3L}, Rat{-5L}}
constexpr Dual< Rat > d_probe {Rat{2L}, Rat{3L}}
constexpr Dual< Rat > e_probe {Rat{-1L}, Rat{5L}}
constexpr Dual< Rat > eps_q {Rat{0L}, Rat{1L}}
constexpr Matrix2x2V< Rat > nc_a {Rat{0L}, Rat{1L}, Rat{0L}, Rat{0L}}
constexpr Matrix2x2V< Rat > nc_b {Rat{0L}, Rat{0L}, Rat{1L}, Rat{0L}}
constexpr Matrix2x2V< Rat > decomp_probe
constexpr Vec2V< Rat > tr_vec {Rat{7L}, Rat{-3L}}
constexpr Covec2V< Rat > tr_covec {Rat{2L}, Rat{5L}}
constexpr Matrix2x2V< Rat > orth_I = identity_matrix2x2_v<Rat>
constexpr Matrix2x2V< Rat > orth_R90 {Rat{0L}, Rat{-1L}, Rat{1L}, Rat{0L}}
constexpr Matrix2x2V< Rat > orth_Rx {Rat{1L}, Rat{0L}, Rat{0L}, Rat{-1L}}
constexpr Matrix2x2V< Rat > orth_R180 = orth_R90 * orth_R90
constexpr Vec2V< Rat > col_e1 {Rat{1L}, Rat{0L}}
constexpr Vec2V< Rat > col_e2 {Rat{0L}, Rat{1L}}

Detailed Description

embeddings__Ring_Homomorphism_Witnesses_over_ℚ

The paper-facing existential proofs that both embeddings are ring homomorphisms — exact at compile time over ℚ = Rational<default_integer> (the saturating-cardinal field, not the signed-long shortcut).

— the :contracts slogan-pack

witnessed on the concrete Matrix2x2V / Vec2V / Covec2V triple.

The nine structural claims, shape-conformance, transpose involution / duality, and the orthogonal group O(2, ℚ) — each pinned by static_assert. If a :contracts concept is tightened in a way the concrete carriers fail, the build breaks here.

Variable Documentation

◆ decomp_probe

Matrix2x2V<Rat> dedekind::linear_algebra::detail::decomp_probe
inlineconstexpr
Initial value:
{Rat{1L}, Rat{2L}, Rat{3L},
Rat{4L}}

◆ nc_a

Matrix2x2V<Rat> dedekind::linear_algebra::detail::nc_a {Rat{0L}, Rat{1L}, Rat{0L}, Rat{0L}}
inlineconstexpr

— algebra concepts on ℚ carriers.

Rather than redefine the vector-space / module content, witness that the value-level tuple and matrix carriers satisfy the canonical operator-shape predicates living one level up: HasFieldOperators (in dedekind.algebra:field), HasRingOperators (in dedekind.algebra:ring), and HasVectorSpaceOperators (in dedekind.algebra:vectorspace). This anchors the new tuple / matrix types to the upstream algebraic hierarchy without redefining its concept surface here.

The_Nine_Matrix_Slogans

◆ orth_I

Matrix2x2V<Rat> dedekind::linear_algebra::detail::orth_I = identity_matrix2x2_v<Rat>
inlineconstexpr

(2,_ℚ) — the multiplicative group of orthogonal matrices.

Concrete rational orthogonal matrices. For each one we check MᵀM = M·Mᵀ = I. Composition of orthogonals is orthogonal (group closure); transpose is the inverse (group inverse law).

◆ tr_vec

Vec2V<Rat> dedekind::linear_algebra::detail::tr_vec {Rat{7L}, Rat{-3L}}
inlineconstexpr

— type-level ill-typing of mismatched shapes.

Transpose_Duality_and_Involution