Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::linear_algebra::IsColumnVector Concept Referenceexport

A column vector: an IsSemimodule with ColumnOrientation and a finite dimension. "A matrix column is a (semimodule) vector" — every column_type on an IsMatrix carrier models this. Over a ring the carrier further satisfies dedekind::algebra::IsModule; over a dioid (MaxPlus) it does not, and none is asked. More...

Concept definition

template<typename V>
std::same_as<typename V::orientation, ColumnOrientation> &&
V, typename V::scalar_type, std::plus<V>,
typename dedekind::algebra::semiring_ops<typename V::scalar_type>::add,
typename V::scalar_type>::mult>
A commutative additive monoid participating in a Linear Action: dedekind::category::IsSemimodule,...
A carrier exposing a compile-time dimension count (axes or slots).
Definition contracts.cppm:110
A carrier that declares whether it is a column or a row.
Definition contracts.cppm:127
A column vector: an IsSemimodule with ColumnOrientation and a finite dimension. "A matrix column is a...
Definition contracts.cppm:181
Canonical semiring operations of a carrier, so combinators can default their Add / Mult without a cal...
Definition universal.cppm:512

Detailed Description

A column vector: an IsSemimodule with ColumnOrientation and a finite dimension. "A matrix column is a (semimodule) vector" — every column_type on an IsMatrix carrier models this. Over a ring the carrier further satisfies dedekind::algebra::IsModule; over a dioid (MaxPlus) it does not, and none is asked.

and covectors.

A column/row vector is not a new operational predicate — it is the canonical dedekind::algebra::IsSemimodule (an additive commutative monoid under a linear scalar action), plus a ColumnOrientation / RowOrientation tag and a finite dimension. The default is the semimodule (over a semiring), because that is the structure a max-plus / tropical vector actually has — a dioid has no additive inverse. The ring/field carriers (Vec2V<Field>) refine it to dedekind::algebra::IsModule / IsVectorSpace, the concepts that add the inverse; there is no bespoke *Like duplicate here (that operational family was retired in algebra:modules).

The scalar's ⊕/⊗ come straight from its semiring structure — if S IsSemiring it has the ops, so we read them off the single defaulted seam dedekind::algebra::semiring_ops (default +/· for an ordinary ring, specialized for tropical / bool / Mat(S)). The old semiring_ops_of fallback resolver is retired now that the seam defaults.