Matrix Operations

The matrix library provides operations on matrices represented as lists of lists (2D arrays) of Real numbers.

Construction

fpy2.libraries.matrix.zeros(rows, cols)

Create a zero matrix of size rows x cols.

Parameters:
  • rows (int) – Number of rows

  • cols (int) – Number of columns

Returns:

Zero matrix

Return type:

list[list[Real]]

fpy2.libraries.matrix.ones(rows, cols)

Create a matrix of ones of size rows x cols.

Parameters:
  • rows (int) – Number of rows

  • cols (int) – Number of columns

Returns:

Matrix of ones

Return type:

list[list[Real]]

fpy2.libraries.matrix.identity(n)

Create an n x n identity matrix.

Parameters:

n (int) – Matrix size

Returns:

Identity matrix

Return type:

list[list[Real]]

fpy2.libraries.matrix.diagonal(values)

Create a diagonal matrix from a list of values.

Parameters:

values (list[Real]) – Diagonal values

Returns:

Diagonal matrix

Return type:

list[list[Real]]

fpy2.libraries.matrix.vander(x, n)

Generate Vandermonde matrix.

Parameters:
  • x (list[Real]) – Input vector

  • n (int) – Number of columns

Returns:

Vandermonde matrix

Return type:

list[list[Real]]

Predicates

fpy2.libraries.matrix.is_square(A)

Check if matrix is square.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

True if square, False otherwise

Return type:

bool

fpy2.libraries.matrix.is_symmetric(A)

Check if a matrix is symmetric.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

True if matrix is symmetric, False otherwise

Return type:

bool

fpy2.libraries.matrix.is_diagonal(A)

Check if matrix is diagonal.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

True if diagonal, False otherwise

Return type:

bool

fpy2.libraries.matrix.is_upper_triangular(A)

Check if matrix is upper triangular.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

True if upper triangular, False otherwise

Return type:

bool

fpy2.libraries.matrix.is_lower_triangular(A)

Check if matrix is lower triangular.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

True if lower triangular, False otherwise

Return type:

bool

Element-wise Operations

fpy2.libraries.matrix.add(A, B)

Element-wise addition of two matrices.

Parameters:
  • A (list[list[Real]]) – First matrix

  • B (list[list[Real]]) – Second matrix

Returns:

Result matrix A + B

Return type:

list[list[Real]]

fpy2.libraries.matrix.sub(A, B)

Element-wise subtraction of two matrices.

Parameters:
  • A (list[list[Real]]) – First matrix

  • B (list[list[Real]]) – Second matrix

Returns:

Result matrix A - B

Return type:

list[list[Real]]

fpy2.libraries.matrix.hadamard(A, B)

Element-wise multiplication (Hadamard product) of two matrices.

Parameters:
  • A (list[list[Real]]) – First matrix

  • B (list[list[Real]]) – Second matrix

Returns:

Result matrix A ⊙ B

Return type:

list[list[Real]]

fpy2.libraries.matrix.scale(scalar, A)

Scale a matrix by a scalar.

Parameters:
  • scalar (Real) – Scalar multiplier

  • A (list[list[Real]]) – Input matrix

Returns:

Result matrix scalar * A

Return type:

list[list[Real]]

Matrix Multiplication

fpy2.libraries.matrix.matmul(A, B)

Matrix multiplication A * B.

Parameters:
  • A (list[list[Real]]) – First matrix (m x n)

  • B (list[list[Real]]) – Second matrix (n x p)

Returns:

Result matrix (m x p)

Return type:

list[list[Real]]

fpy2.libraries.matrix.matvec(A, x)

Multiply a matrix by a vector: A * x.

Parameters:
  • A (list[list[Real]]) – Matrix (m x n)

  • x (list[Real]) – Vector (length n)

Returns:

Result vector (length m)

Return type:

list[Real]

fpy2.libraries.matrix.outer_product(x, y)

Compute outer product of two vectors: x ⊗ y.

Parameters:
  • x (list[Real]) – First vector (length m)

  • y (list[Real]) – Second vector (length n)

Returns:

Result matrix (m x n)

Return type:

list[list[Real]]

Matrix Transformations

fpy2.libraries.matrix.transpose(A)

Transpose a matrix.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

Transposed matrix A^T

Return type:

list[list[Real]]

Row and Column Operations

fpy2.libraries.matrix.get_row(A, i)

Extract a row from a matrix.

Parameters:
  • A (list[list[Real]]) – Input matrix

  • i (int) – Row index

Returns:

Row vector

Return type:

list[Real]

fpy2.libraries.matrix.get_column(A, j)

Extract a column from a matrix.

Parameters:
  • A (list[list[Real]]) – Input matrix

  • j (int) – Column index

Returns:

Column vector

Return type:

list[Real]

fpy2.libraries.matrix.set_row(A, i, row)

Set a row in a matrix.

Parameters:
  • A (list[list[Real]]) – Input matrix

  • i (int) – Row index

  • row (list[Real]) – New row values

Returns:

Matrix with updated row

Return type:

list[list[Real]]

fpy2.libraries.matrix.set_column(A, j, col)

Set a column in a matrix.

Parameters:
  • A (list[list[Real]]) – Input matrix

  • j (int) – Column index

  • col (list[Real]) – New column values

Returns:

Matrix with updated column

Return type:

list[list[Real]]

Matrix Properties

fpy2.libraries.matrix.trace(A)

Compute the trace (sum of diagonal elements) of a square matrix.

Parameters:

A (list[list[Real]]) – Input square matrix

Returns:

Trace of A

Return type:

Real

fpy2.libraries.matrix.determinant_2x2(A)

Compute determinant of a 2x2 matrix.

Parameters:

A (list[list[Real]]) – 2x2 matrix

Returns:

Determinant of A

Return type:

Real

fpy2.libraries.matrix.determinant_3x3(A)

Compute determinant of a 3x3 matrix using cofactor expansion.

Parameters:

A (list[list[Real]]) – 3x3 matrix

Returns:

Determinant of A

Return type:

Real

Norms

fpy2.libraries.matrix.frobenius_norm(A)

Compute the Frobenius norm of a matrix.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

Frobenius norm ||A||_F

Return type:

Real

fpy2.libraries.matrix.norm_1(A)

Compute 1-norm (maximum absolute column sum) of matrix.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

1-norm of matrix

Return type:

Real

fpy2.libraries.matrix.norm_inf(A)

Compute infinity-norm (maximum absolute row sum) of matrix.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

Infinity-norm of matrix

Return type:

Real

Element Statistics

fpy2.libraries.matrix.max_element(A)

Find the maximum element in a matrix.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

Maximum element

Return type:

Real

fpy2.libraries.matrix.min_element(A)

Find the minimum element in a matrix.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

Minimum element

Return type:

Real

fpy2.libraries.matrix.sum_elements(A)

Sum all elements in a matrix.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

Sum of all elements

Return type:

Real

fpy2.libraries.matrix.mean_elements(A)

Compute mean of all matrix elements.

Parameters:

A (list[list[Real]]) – Input matrix

Returns:

Mean of all elements

Return type:

Real