@mutable.Vector
API baseline for @mutable.Vector in the current 0.4.7 repository state.
Overview
@mutable.Vectoris the repository's mutation-oriented vector type.- Storage is a wrapped
Array[T], so indexed writes update the underlying mutable buffer directly. - Even in this package, many algebraic helpers still return fresh vectors so callers can choose between mutation and value-producing transforms.
Core API
Vector::from_array(arr)/Vector::make(n, elem)/Vector::makei(n, f)Construct vectors from existing data, a repeated value, or an index function.length()Returns the vector length.v[i]/v[i] = xRead and write one element. Bounds followArray[T]behavior.copy()Returns a deep copy of the vector.iter()Exposes an iterator over the current elements.
Value-Producing Helpers
map(f)/zip_with(other, f)Return a transformed vector without mutatingself.add_constant(cst)Adds the same scalar to each element.left_scale(scalar)/right_scale(scalar)Return scaled vectors.lerp(other, alpha)Computes(1 - alpha) * self + alpha * other.+,*, unary-Element-wise addition, Hadamard multiplication, and negation.
In-Place Helpers
map_inplace(f)Rewrites every element in place.left_scale_inplace(scalar)/right_scale_inplace(scalar)Apply scalar multiplication in place.
Scalar And Matrix Helpers
dot(other)Computes the dot product. Length mismatch aborts.lin_comb(weights, vectors)Top-level helper that builds one vector from weighted input vectors. Empty inputs, mismatched counts, or mismatched vector lengths abort.to_col_matrix()/to_row_matrix()Convert the vector into matrix form.scaled_matrix()Builds a diagonal matrix with the vector on the main diagonal.tensor_product(other)Computes the outer product and returns a matrix.
Guidance
- Use direct indexing or
*_inplacehelpers when the workload is truly mutation-heavy. - Use the non-
inplacehelpers when you need a fresh vector or want code that mirrors@immut.Vectormore closely. backends/default.DenseVectoris a wrapper around this concrete implementation. If you want the trait-oriented default backend entry point, see thebackends/defaultAPI.