glucat 0.13.0
matrix_imp.h File Reference
#include "glucat/errors.h"
#include "glucat/scalar.h"
#include "glucat/matrix.h"
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/vector_proxy.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/matrix_expression.hpp>
#include <boost/numeric/ublas/matrix_proxy.hpp>
#include <boost/numeric/ublas/matrix_sparse.hpp>
#include <boost/numeric/ublas/operation.hpp>
#include <boost/numeric/ublas/operation_sparse.hpp>
#include <blaze/Math.h>
#include <blaze/math/DynamicMatrix.h>
#include <blaze/math/DynamicVector.h>
#include <set>
#include <vector>
Include dependency graph for matrix_imp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  glucat
namespace  glucat::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>
void glucat::matrix::nork_range (RHS_T &result, const typename LHS_T::const_iterator2 lhs_it2, const RHS_T &rhs, const typename RHS_T::size_type res_s1, const typename RHS_T::size_type res_s2)
 Utility routine for nork: calculate result for a range of indices.
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>
static auto glucat::matrix::to_blaze (const Matrix_T &val) -> blaze::DynamicMatrix< double, blaze::rowMajor >
 Convert matrix to Blaze format.
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.