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

V and Covec are dual under transpose: V → Covec and Covec → V, with both round-trips returning the original type. More...

Concept definition

template<typename V, typename Covec>
std::same_as<std::remove_cvref_t<decltype(std::declval<V>().transpose())>,
std::remove_cvref_t<Covec>> &&
std::same_as<
std::remove_cvref_t<decltype(std::declval<Covec>().transpose())>,
std::remove_cvref_t<V>>
A matrix carrier equipped with a transpose operation.
Definition contracts.cppm:343
V and Covec are dual under transpose: V → Covec and Covec → V, with both round-trips returning the or...
Definition contracts.cppm:382

Detailed Description

V and Covec are dual under transpose: V → Covec and Covec → V, with both round-trips returning the original type.

Formalises the column/row duality. transpose is the canonical isomorphism V ↔ V* in finite dimension; double-transpose returns to the original carrier on each side. Together the pair (V, Covec) carries the same ℤ/2 action as HasInvolutiveTranspose, but spelled across two distinct orientations.