viva_glyph/vector

Vector - Basic vector operations for latent space

Fixed-dimension float vectors for RVQ operations.

Types

N-dimensional vector (latent space)

pub type Vector =
  List(Float)

Values

pub fn add(a: List(Float), b: List(Float)) -> List(Float)

Add two vectors element-wise

pub fn clamp(
  v: List(Float),
  min: Float,
  max: Float,
) -> List(Float)

Element-wise clamp

pub fn cosine_similarity(a: List(Float), b: List(Float)) -> Float

Cosine similarity between two vectors [-1, 1]

pub fn dimension(v: List(Float)) -> Int

Get vector dimension

pub fn distance(a: List(Float), b: List(Float)) -> Float

Euclidean distance between two vectors

pub fn distance_squared(a: List(Float), b: List(Float)) -> Float

Squared Euclidean distance (faster than distance for comparisons)

pub fn dot(a: List(Float), b: List(Float)) -> Float

Dot product of two vectors

pub fn from_list(values: List(Float)) -> List(Float)

Create vector from list (identity, for clarity)

pub fn lerp(
  from: List(Float),
  to: List(Float),
  t: Float,
) -> List(Float)

Linear interpolation between two vectors

pub fn norm(v: List(Float)) -> Float

L2 norm (magnitude) of vector

pub fn normalize(v: List(Float)) -> List(Float)

Normalize vector to unit length

pub fn scale(v: List(Float), s: Float) -> List(Float)

Scale vector by scalar

pub fn subtract(a: List(Float), b: List(Float)) -> List(Float)

Subtract two vectors: a - b

pub fn zeros(dim: Int) -> List(Float)

Create zero vector of given dimension

Search Document