namespace std::linalg {
template<in-object InObj1,
in-object InObj2,
out-object OutObj>
void add(InObj1 x,
InObj2 y,
OutObj z); // (1)
template<class ExecutionPolicy,
in-object InObj1,
in-object InObj2,
out-object OutObj>
void add(ExecutionPolicy&& exec,
InObj1 x,
InObj2 y,
OutObj z); // (2)
}
概要
同じサイズの行列またはベクトルのx
とy
、z
に対して、$x + y$ をz
に代入する:
$$ z \leftarrow x + y $$
テンプレートパラメータ制約
x
とy
、z
の次元が全て等しくなければならない。x.rank() == y.rank() && y.rank() == z.rank()
適格要件
行列またはベクトルのx
、y
、z
の各次元の静的要素数が同じであること。
possibly-addable<InObj1, InObj2, OutObj>() == true
事前条件
行列またはベクトルのx
、y
、z
の各次元が同じであること。
addable(x, y, z) == true
効果
$x + y$ をz
に代入する。
- (1): 逐次実行する。
- (2): 指定された実行ポリシーに応じて実行する。
戻り値
なし
備考
z
をx
またはy
としてもよい。
例
出力
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??