Skip to content

Linalg module

Norm and squared norm

pqlattice.linalg.norm

norm(v: Vector) -> float

computes the square root of the dot product of the vector with itself.

Parameters:

Name Type Description Default
v Vector
required

Returns:

Type Description
float

pqlattice.linalg.norm2

norm2(v: Vector) -> int

computes the squared norm of a given vector, that is the dot product of vector with itself

Parameters:

Name Type Description Default
v Vector
required

Returns:

Type Description
int

pqlattice.linalg.per_row_norm

per_row_norm(A: Matrix) -> list[float]

Computes the list of norms of rows of a given matrix.

Parameters:

Name Type Description Default
A Matrix
required

Returns:

Type Description
list[float]

pqlattice.linalg.per_row_norm2

per_row_norm2(A: Matrix) -> list[int]

Computes the list of squared norms of rows of a given matrix.

Parameters:

Name Type Description Default
A Matrix
required

Returns:

Type Description
list[int]

Helper functions for in place matrix operations

pqlattice.linalg.row_add

row_add(m: Matrix, i: int, k: int, s: int) -> None

utility function for in place row add operation

Parameters:

Name Type Description Default
m Matrix
required
i int

target row

required
k int

source row

required
s int

scaling factor

required

pqlattice.linalg.row_scale

row_scale(m: Matrix, i: int, s: int) -> None

utility function for in place row scale operation

Parameters:

Name Type Description Default
m Matrix
required
i int
required
s int

scaling factor

required

pqlattice.linalg.row_swap

row_swap(m: Matrix, i: int, k: int) -> None

utility function for in place row swap operation

Parameters:

Name Type Description Default
m Matrix
required
i int
required
k int
required

pqlattice.linalg.col_add

col_add(m: Matrix, i: int, k: int, s: int) -> None

utility function for in place column add operation

Parameters:

Name Type Description Default
m Matrix
required
i int

target column

required
k int

source column

required
s int

scaling factor

required

pqlattice.linalg.col_scale

col_scale(m: Matrix, i: int, s: int) -> None

utility function for in place column scale operation

Parameters:

Name Type Description Default
m Matrix
required
i int
required
s int

scaling factor

required

pqlattice.linalg.col_swap

col_swap(m: Matrix, i: int, k: int) -> None

utility function for in place column swap operation

Parameters:

Name Type Description Default
m Matrix
required
i int
required
k int
required

Functions for integral matrices

pqlattice.linalg.hnf

hnf(matrix: SquareMatrix) -> tuple[Matrix, SquareMatrix]

pqlattice.linalg.det

det(A: SquareMatrix) -> int

summary

Parameters:

Name Type Description Default
A SquareMatrix

description

required

Returns:

Type Description
int

description

pqlattice.linalg.left_kernel

left_kernel(A: Matrix)

{x : xA = 0}

Parameters:

Name Type Description Default
A Matrix

description

required

Returns:

Type Description
_type_

description

pqlattice.linalg.right_kernel

right_kernel(A: Matrix) -> Matrix

{x : Ax = 0}

Parameters:

Name Type Description Default
A Matrix

description

required

Returns:

Type Description
Matrix

description

pqlattice.linalg.left_nullity

left_nullity(a: Matrix) -> int

summary

Parameters:

Name Type Description Default
a Matrix

description

required

Returns:

Type Description
int

description

pqlattice.linalg.right_nullity

right_nullity(a: Matrix) -> int

summary

Parameters:

Name Type Description Default
a Matrix

description

required

Returns:

Type Description
int

description

pqlattice.linalg.rank

rank(a: Matrix) -> int

summary

Parameters:

Name Type Description Default
a Matrix

description

required

Returns:

Type Description
int

description

pqlattice.linalg.minor

minor(A: SquareMatrix, i: int, j: int) -> int

summary

Parameters:

Name Type Description Default
A SquareMatrix

description

required
i int

description

required
j int

description

required

Returns:

Type Description
int

description

pqlattice.linalg.cofactor

cofactor(A: SquareMatrix, i: int, j: int) -> int

summary

Parameters:

Name Type Description Default
A SquareMatrix

description

required
i int

description

required
j int

description

required

Returns:

Type Description
int

description

pqlattice.linalg.cofactor_matrix

cofactor_matrix(A: SquareMatrix) -> SquareMatrix

summary

Parameters:

Name Type Description Default
A SquareMatrix

description

required

Returns:

Type Description
SquareMatrix

description


Functions for matrices with coefficients from \(Z_q\)

pqlattice.linalg.mod_ref

mod_ref(
    A: Matrix, modulus: int
) -> tuple[Matrix, SquareMatrix]

summary

Parameters:

Name Type Description Default
A Matrix

description

required
modulus int

description

required

Returns:

Type Description
tuple[Matrix, SquareMatrix]

description

pqlattice.linalg.mod_rref

mod_rref(
    A: Matrix, modulus: int
) -> tuple[Matrix, SquareMatrix]

summary

Parameters:

Name Type Description Default
A Matrix

description

required
modulus int

description

required

Returns:

Type Description
tuple[Matrix, SquareMatrix]

description

pqlattice.linalg.mod_matinv

mod_matinv(A: SquareMatrix, modulus: int) -> SquareMatrix

summary

Parameters:

Name Type Description Default
A SquareMatrix

description

required
modulus int

description

required

Returns:

Type Description
SquareMatrix

description

pqlattice.linalg.mod_right_kernel

mod_right_kernel(A: Matrix, modulus: int) -> Matrix

summary

Parameters:

Name Type Description Default
A Matrix

description

required
modulus int

description

required

Returns:

Type Description
Matrix

description

pqlattice.linalg.mod_left_kernel

mod_left_kernel(A: Matrix, modulus: int) -> Matrix

summary

Parameters:

Name Type Description Default
A Matrix

description

required
modulus int

description

required

Returns:

Type Description
Matrix

description

pqlattice.linalg.mod_left_nullity

mod_left_nullity(A: Matrix, modulus: int) -> int

summary

Parameters:

Name Type Description Default
A Matrix

description

required
modulus int

description

required

Returns:

Type Description
int

description

pqlattice.linalg.mod_right_nullity

mod_right_nullity(A: Matrix, modulus: int) -> int

summary

Parameters:

Name Type Description Default
A Matrix

description

required
modulus int

description

required

Returns:

Type Description
int

description