@mutable.Vector
このページは現在のリポジトリ実装を基準にしており、0.3.0 の API 基準として記述されています。
@mutable.Vector[T]
moonbit
pub struct Vector[T](Array[T])設計とパフォーマンスに関する注意
バックエンド固有の最適化: 行列操作と同様に、ベクトルユーティリティも各ターゲットバックエンド(Wasm/JS および Native)向けに最適化されており、API の一貫性を保ちながら最高速度を実現しています。
ランダムアクセス: ランダムなアクセスや変更には、インデックス構文
v[i]およびv[i] = xを直接使用してください。これにより、個々の要素との最も効率的なやり取りが可能になります。一括操作: 可能な場合は、手動のインデックスループの代わりに、
.map_inplace()や.dot()などの最適化されたメソッドを使用して計算を行ってください。説明 可変なベクトルを表します。
Array[T]をラップしており、インデックスによる要素のアクセスと変更が可能です。
セマンティクス
@mutable.Vectorは更新指向であり、インデックス代入と*_inplaceAPI は既存の値を直接変更します。一方で、非
inplaceの代数ヘルパは新しいベクトルを返すため、実行効率重視の更新と値を返す変換を明示的に使い分けられます。関数とメソッド
fn[T] Vector::make(n : Int, elem : T) -> Vector[T]- 説明 長さ
nのベクトルを作成し、すべての要素をelemで初期化します。 - パラメータ
n:Int- ベクトルの長さ。elem:T- 初期値。
- 戻り値
Vector[T]- 新しく作成されたベクトル。
- 説明 長さ
fn[T] Vector::makei(n : Int, f : (Int) -> T) -> Vector[T]- 説明 長さ
nのベクトルを作成し、各要素をインデックス関数fで生成します。 - パラメータ
n:Int- ベクトルの長さ。f:(Int) -> T- インデックスを受け取り要素を返す関数。
- 戻り値
Vector[T]- 生成されたベクトル。
- 説明 長さ
fn[T] Vector::from_array(arr : Array[T]) -> Vector[T]- 説明 既存の配列をベクトルに変換します。
fn[T] length(self : Vector[T]) -> Int- 説明 ベクトルの長さを取得します。
fn[T] Vector::op_get(self : Vector[T], i : Int) -> T- 説明 指定したインデックスの要素を取得します。
v[i]構文をサポートします。
- 説明 指定したインデックスの要素を取得します。
fn[T] Vector::op_set(self : Vector[T], i : Int, x : T) -> Unit- 説明 指定したインデックスに値を設定します。
v[i] = x構文をサポートします。
- 説明 指定したインデックスに値を設定します。
fn[T] copy(self : Vector[T]) -> Vector[T]- 説明 ベクトルの深層コピーを作成します。
fn[T, U] map(self : Vector[T], f : (T) -> U) -> Vector[U]- 説明 写像による変換を行い、新しいベクトルを返します。
fn[T] map_inplace(self : Vector[T], f : (T) -> T) -> Unit- 説明 変換関数をその場で適用し、元のベクトルを変更します。
fn[T : Mul] left_scale(self : Vector[T], scalar : T) -> Vector[T]- 説明 左からのスカラー倍(新しいベクトルを返す):
scalar * x。
- 説明 左からのスカラー倍(新しいベクトルを返す):
fn[T : Mul] right_scale(self : Vector[T], scalar : T) -> Vector[T]- 説明 右からのスカラー倍(新しいベクトルを返す):
x * scalar。
- 説明 右からのスカラー倍(新しいベクトルを返す):
fn[T : Mul] left_scale_inplace(self : Vector[T], scalar : T) -> Unit- 説明 左からのスカラー倍をその場で行います。
fn[T : Mul] right_scale_inplace(self : Vector[T], scalar : T) -> Unit- 説明 右からのスカラー倍をその場で行います。
fn[T : Add + Mul] dot(self : Vector[T], other : Vector[T]) -> T- 説明 2 つのベクトルの点積(内積)を計算します。
fn[T : Zero] scaled_matrix(self : Vector[T]) -> Matrix[T]- 説明 このベクトルを主対角成分とする対角行列を作成します。
fn[T : Mul] tensor_product(self : Vector[T], other : Vector[T]) -> Matrix[T]- 説明 2 つのベクトルのテンソル積(外積)を計算します。