LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
linalg.h File Reference

Dense linear algebra over the templated number type: products, identity, inverse, and powers. More...

#include <cstddef>
#include <vector>
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/lu.h"
#include "line/util/matrix.h"
Include dependency graph for linalg.h:

Go to the source code of this file.

Namespaces

namespace  line

Functions

template<class T>
Matrix< T > line::eye (std::size_t n)
 Identity of order n.
template<class T>
Matrix< T > line::matmul (const Matrix< T > &A, const Matrix< T > &B)
 Matrix product A B.
template<class T>
std::vector< T > line::vecmul (const std::vector< T > &v, const Matrix< T > &A)
 Row vector times matrix, v A.
template<class T>
std::vector< T > line::mulvec (const Matrix< T > &A, const std::vector< T > &v)
 Matrix times column vector, A v.
template<class T>
Matrix< T > line::inverse (const Matrix< T > &A)
 Inverse by LU with one factorization and n back substitutions.
template<class T>
Matrix< T > line::matpow (const Matrix< T > &A, unsigned k)
 Integer matrix power, by repeated squaring.
template<class T>
std::vector< T > line::ones (std::size_t n)
 Column vector of ones, the ubiquitous e in MAP algebra.

Detailed Description

Dense linear algebra over the templated number type: products, identity, inverse, and powers.

Built on the LU in lu.h, so the exact instantiation inverts a rational matrix exactly, with no residual at all.

Definition in file linalg.h.