@mutable.Vector
このページは、現在の 0.4.7 リポジトリ状態における @mutable.Vector の API 基準をまとめたものです。
概要
@mutable.Vectorは、このリポジトリの更新指向ベクトル型です。- ストレージは
Array[T]のラッパーなので、インデックス書き込みは内部バッファを直接更新します。 - それでも多くの代数ヘルパーは新しいベクトルを返すため、更新と値変換を使い分けられます。
基本 API
Vector::from_array(arr)/Vector::make(n, elem)/Vector::makei(n, f)既存データ、反復値、添字関数からベクトルを作ります。length()ベクトル長を返します。v[i]/v[i] = x1 要素を読み書きします。境界挙動はArray[T]に従います。copy()現在のベクトルを深く複製します。iter()現在の要素を順番にたどるイテレータを返します。
新しいベクトルを返すヘルパー
map(f)/zip_with(other, f)selfを変更せず、変換後のベクトルを返します。add_constant(cst)すべての要素へ同じスカラーを加えます。left_scale(scalar)/right_scale(scalar)スカラー倍した新しいベクトルを返します。lerp(other, alpha)(1 - alpha) * self + alpha * otherを計算します。+、*、単項-要素ごとの加算、アダマール積、符号反転です。
インプレースヘルパー
map_inplace(f)すべての要素を書き換えます。left_scale_inplace(scalar)/right_scale_inplace(scalar)スカラー倍をインプレースで適用します。
スカラー・行列ヘルパー
dot(other)内積を計算します。長さが一致しない場合は中止します。lin_comb(weights, vectors)重み配列と入力ベクトル群から 1 本のベクトルを組み立てるトップレベル補助関数です。空入力、個数不一致、長さ不一致は中止します。to_col_matrix()/to_row_matrix()ベクトルを行列形式へ変換します。scaled_matrix()このベクトルを主対角に持つ対角行列を作ります。tensor_product(other)外積を計算して行列を返します。
使い分け
- 更新主体のワークロードでは、直接のインデックス操作や
*_inplaceヘルパーを使います。 - 以前の値を残したい場合や
@immut.Vectorに近い書き方をしたい場合は、新しいベクトルを返すヘルパーを使ってください。 backends/default.DenseVectorは、この concrete 実装を包むラッパーです。 trait 指向の既定バックエンド入口を見たい場合は backends/default API を参照してください。