glucat 0.13.0
matrix.h File Reference
#include <boost/numeric/ublas/fwd.hpp>
#include <complex>
#include <vector>
Include dependency graph for matrix.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  glucat::matrix::eig_genus< Matrix_T >
 Structure containing classification of eigenvalues. More...
 

Namespaces

namespace  glucat
 
namespace  glucat::matrix
 

Typedefs

using glucat::matrix::eig_case_t
 Classification of eigenvalues of a matrix.
 

Functions

template<typename LHS_T, typename RHS_T>
auto glucat::matrix::kron (const LHS_T &lhs, const RHS_T &rhs) -> const RHS_T
 Kronecker tensor product of matrices - as per Matlab kron.
 
template<typename LHS_T, typename RHS_T>
auto glucat::matrix::mono_kron (const LHS_T &lhs, const RHS_T &rhs) -> const RHS_T
 Sparse Kronecker tensor product of monomial matrices.
 
template<typename LHS_T, typename RHS_T>
auto glucat::matrix::nork (const LHS_T &lhs, const RHS_T &rhs, const bool mono=true) -> const RHS_T
 Left inverse of Kronecker product.
 
template<typename LHS_T, typename RHS_T>
auto glucat::matrix::signed_perm_nork (const LHS_T &lhs, const RHS_T &rhs) -> const RHS_T
 Left inverse of Kronecker product where lhs is a signed permutation matrix.
 
template<typename Matrix_T>
auto glucat::matrix::nnz (const Matrix_T &m) -> typename Matrix_T::size_type
 Number of non-zeros.
 
template<typename Matrix_T>
auto glucat::matrix::isinf (const Matrix_T &m) -> bool
 Infinite.
 
template<typename Matrix_T>
auto glucat::matrix::isnan (const Matrix_T &m) -> bool
 Not a Number.
 
template<typename Matrix_T>
auto glucat::matrix::unit (const typename Matrix_T::size_type n) -> const Matrix_T
 Unit matrix - as per Matlab eye.
 
template<typename LHS_T, typename RHS_T>
auto glucat::matrix::mono_prod (const ublas::matrix_expression< LHS_T > &lhs, const ublas::matrix_expression< RHS_T > &rhs) -> const typename RHS_T::expression_type
 Product of monomial matrices.
 
template<typename LHS_T, typename RHS_T>
auto glucat::matrix::sparse_prod (const ublas::matrix_expression< LHS_T > &lhs, const ublas::matrix_expression< RHS_T > &rhs) -> const typename RHS_T::expression_type
 Product of sparse matrices.
 
template<typename LHS_T, typename RHS_T>
auto glucat::matrix::prod (const ublas::matrix_expression< LHS_T > &lhs, const ublas::matrix_expression< RHS_T > &rhs) -> const typename RHS_T::expression_type
 Product of matrices.
 
template<typename Scalar_T, typename LHS_T, typename RHS_T>
auto glucat::matrix::inner (const LHS_T &lhs, const RHS_T &rhs) -> Scalar_T
 Inner product: sum(x(i,j)*y(i,j))/x.nrows()
 
template<typename Matrix_T>
auto glucat::matrix::norm_frob2 (const Matrix_T &val) -> typename Matrix_T::value_type
 Square of Frobenius norm.
 
template<typename Matrix_T>
auto glucat::matrix::trace (const Matrix_T &val) -> typename Matrix_T::value_type
 Matrix trace.
 
template<typename Matrix_T>
auto glucat::matrix::eigenvalues (const Matrix_T &val) -> std::vector< std::complex< double > >
 Eigenvalues of a matrix.
 
template<typename Matrix_T>
auto glucat::matrix::classify_eigenvalues (const Matrix_T &val) -> eig_genus< Matrix_T >
 Classify the eigenvalues of a matrix.