← Back

Module linalg

struct Vector

Dense vector of floating-point numbers

Source: linalg.joule:16

fn zeros(len: usize) -> Self

Create a new vector of zeros

Source: linalg.joule:22

fn ones(len: usize) -> Self where T: One

Create a new vector of ones

Source: linalg.joule:29

fn from_slice(data: &[T]) -> Self

Create vector from slice

Source: linalg.joule:36

fn len(&self) -> usize

Source: linalg.joule:44

fn get(&self, i: usize) -> T

Source: linalg.joule:50

fn set(&mut self, i: usize, value: T)

Source: linalg.joule:56

fn as_slice(&self) -> &[T]

Get raw slice

Source: linalg.joule:61

fn as_mut_slice(&mut self) -> &mut [T]

Get mutable raw slice

Source: linalg.joule:66

struct Matrix

Dense matrix of floating-point numbers Stored in row-major order

Source: linalg.joule:77

fn zeros(rows: usize, cols: usize) -> Self

Create a new matrix of zeros

Source: linalg.joule:85

fn ones(rows: usize, cols: usize) -> Self where T: One

Create a new matrix of ones

Source: linalg.joule:94

fn eye(n: usize) -> Self where T: One + Zero

Create identity matrix

Source: linalg.joule:103

fn from_rows(rows: &[&[T]]) -> Self

Create matrix from nested slices

Source: linalg.joule:112

fn diag(v: &Vector<T>) -> Self where T: Zero

Create diagonal matrix from vector

Source: linalg.joule:130

fn rows(&self) -> usize

Source: linalg.joule:141

fn cols(&self) -> usize

Source: linalg.joule:147

fn shape(&self) -> (usize, usize)

Source: linalg.joule:153

fn get(&self, row: usize, col: usize) -> T

Source: linalg.joule:159

fn set(&mut self, row: usize, col: usize, value: T)

Source: linalg.joule:165

fn row(&self, i: usize) -> Vector<T>

Get row as vector

Source: linalg.joule:170

fn col(&self, j: usize) -> Vector<T>

Get column as vector

Source: linalg.joule:176

fn transpose(&self) -> Self

Transpose matrix

Source: linalg.joule:185

fn as_slice(&self) -> &[T]

Get raw slice (row-major order)

Source: linalg.joule:196

fn as_mut_slice(&mut self) -> &mut [T]

Get mutable raw slice

Source: linalg.joule:201

fn dot(a: &Vector<f64>, b: &Vector<f64>) -> f64

Source: linalg.joule:212

fn norm(v: &Vector<f64>) -> f64

Source: linalg.joule:236

fn norm_l1(v: &Vector<f64>) -> f64

L1 norm (sum of absolute values)

Source: linalg.joule:250

fn norm_inf(v: &Vector<f64>) -> f64

L-infinity norm (maximum absolute value)

Source: linalg.joule:259

fn normalize(v: &Vector<f64>) -> Vector<f64>

Normalize vector to unit length

Source: linalg.joule:269

fn scale(v: &Vector<f64>, s: f64) -> Vector<f64>

Scale vector by scalar

Source: linalg.joule:279

fn add(a: &Vector<f64>, b: &Vector<f64>) -> Vector<f64>

Add two vectors

Source: linalg.joule:288

fn sub(a: &Vector<f64>, b: &Vector<f64>) -> Vector<f64>

Subtract two vectors

Source: linalg.joule:298

fn cross(a: &Vector<f64>, b: &Vector<f64>) -> Vector<f64>

Cross product (3D vectors only)

Source: linalg.joule:308

fn matvec(a: &Matrix<f64>, x: &Vector<f64>) -> Vector<f64>

Source: linalg.joule:324

fn matmul(a: &Matrix<f64>, b: &Matrix<f64>) -> Matrix<f64>

Source: linalg.joule:366

fn frobenius_norm(m: &Matrix<f64>) -> f64

Matrix Frobenius norm

Source: linalg.joule:413

fn trace(m: &Matrix<f64>) -> f64

Trace of square matrix

Source: linalg.joule:425

fn det(m: &Matrix<f64>) -> f64

Source: linalg.joule:436

fn lu_decompose(a: &Matrix<f64>) -> (Matrix<f64>, Vec<usize>, i32)

LU decomposition with partial pivoting Returns (LU combined matrix, pivot indices, sign of permutation)

Source: linalg.joule:468

fn solve(a: &Matrix<f64>, b: &Vector<f64>) -> Vector<f64>

Source: linalg.joule:516

fn inverse(a: &Matrix<f64>) -> Matrix<f64>

Source: linalg.joule:552

fn qr_decompose(a: &Matrix<f64>) -> (Matrix<f64>, Matrix<f64>)

QR decomposition Returns (Q, R) where A = QR

Source: linalg.joule:573

fn eig_symmetric(a: &Matrix<f64>) -> (Vector<f64>, Matrix<f64>)

Source: linalg.joule:630

trait Zero

Source: linalg.joule:712

fn zero() -> Self;

Source: linalg.joule:713

trait One

Source: linalg.joule:716

fn one() -> Self;

Source: linalg.joule:717

fn clone(&self) -> Self

Source: linalg.joule:726

fn clone(&self) -> Self

Source: linalg.joule:732