plll  1.0
linalg.hpp File Reference

Basic linear algebra algorithms. More...

#include <plll/arithmetic.hpp>
#include <plll/matrix.hpp>
#include <utility>

Go to the source code of this file.

Namespaces

 plll
 Contains the plll library.
 
 plll::linalg
 Contains the matrix and vector library as long as other linear algebra functionality.
 

Functions

Linear algebra over rationals and integers.
unsigned plll::linalg::hnf (math_matrix< arithmetic::Integer > &A)
 Computes the Hermite Normal Form (HNF) of the given matrix A by applying row operations. More...
 
unsigned plll::linalg::hnf (math_matrix< arithmetic::Integer > &A, math_matrix< arithmetic::Integer > &T)
 Computes the Hermite Normal Form (HNF) of the given matrix A by applying row operations, together with a transformation matrix T. More...
 
arithmetic::Integer plll::linalg::det (const math_matrix< arithmetic::Integer > &A)
 Computes the determinant of an integer matrix A. More...
 
math_matrix< arithmetic::Integer > plll::linalg::solveUniqInt (const math_matrix< arithmetic::Integer > &A, const math_matrix< arithmetic::Integer > &w, const arithmetic::Integer &startPrime=arithmetic::Integer())
 Assumes that A is a square matrix and that the equation A * res == w has a unique solutions in the integers. Returns the. More...
 
void plll::linalg::invert (math_matrix< arithmetic::Integer > &inverse, const math_matrix< arithmetic::Integer > &A, const arithmetic::Integer &startPrime=arithmetic::Integer())
 Assumes that A is invertible. Inverts the matrix A and stores the result in inverse. More...
 
std::pair< math_colvector
< arithmetic::Integer >
, arithmetic::Integer > 
plll::linalg::solve (const math_matrix< arithmetic::Integer > &A, const math_colvector< arithmetic::Integer > &b)
 Solves the linear system A * x == b over the rationals. More...
 
math_colvector
< arithmetic::Integer > 
plll::linalg::solveInt (const math_matrix< arithmetic::Integer > &A, const math_colvector< arithmetic::Integer > &w)
 Assumes that the linear system A * v == w has a solution in the integers. Finds this solution. More...
 
math_matrix< arithmetic::Integer > plll::linalg::kernel (const math_matrix< arithmetic::Integer > &A)
 Computes a $\mathbb{Z}$-basis of the right-kernel of A. More...
 

Detailed Description

Basic linear algebra algorithms.

This header provides basic linear algebra algorithms over plll integers (plll::arithmetic::Integer), such as solving systems of equations, computing determinants and Hermite Normal Form.

Definition in file linalg.hpp.