namespace std::linalg {
constexpr bool multipliable(
const in-matrix auto& in_mat,
const in-vector auto& in_vec,
const in-vector auto& out_vec)
{
return out_vec.extent(0) == in_mat.extent(0) &&
in_mat.extent(1) == in_vec.extent(0);
} // (1)
constexpr bool multipliable(
const in-vector auto& in_vec,
const in-matrix auto& in_mat,
const in-vector auto& out_vec)
{
return out_vec.extent(0) == in_mat.extent(1) &&
in_mat.extent(0) == in_vec.extent(0);
} // (2)
constexpr bool multipliable(
const in-matrix auto& in_mat1,
const in-matrix auto& in_mat2,
const in-matrix auto& out_mat)
{
return out_mat.extent(0) == in_mat1.extent(0) &&
out_mat.extent(1) == in_mat2.extent(1) &&
in1_mat.extent(1) == in_mat2.extent(0);
} // (3)
}
概要
テンプレートパラメータに指定されたベクトルや行列が掛けられるかを静的要素数で判定する、説明専用の関数である。
戻り値
InMat
型の変数をA
, InVec
型の変数をx
, OutVec
型の変数をy
とする。
- (1):
が可能ならtrue
、そうでないならfalse
- (2):
が可能ならtrue
、そうでないならfalse
- (3):
InMat1
型の変数をA
,InMat2
型の変数をB
,OutMat
型の変数C
とすると、 が可能ならtrue
、そうでないならfalse
バージョン
言語
- C++26