algebra/include/nil/crypto3/algebra/matrix/math.hpp File Reference
+ Include dependency graph for algebra/include/nil/crypto3/algebra/matrix/math.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 nil
 
 nil::crypto3
 
 nil::crypto3::algebra
 

Functions

template<typename T , std::size_t M, std::size_t N>
constexpr matrix< T, M, N > nil::crypto3::algebra::conj (const matrix< T, M, N > &m)
 computes the elementwise complex conjugate More...
 
template<typename T , std::size_t M>
constexpr T nil::crypto3::algebra::det (const matrix< T, M, M > &m)
 Compute the determinant. More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr matrix< T, N, M > nil::crypto3::algebra::hermitian (const matrix< T, M, N > &m)
 computes the Hermitian transpose More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr matrix< nil::crypto3::detail::remove_complex_t< T >, M, N > nil::crypto3::algebra::imag (const matrix< T, M, N > &m)
 computes the elementwise imag More...
 
template<typename T , std::size_t M>
constexpr matrix< T, M, M > nil::crypto3::algebra::inverse (const matrix< T, M, M > &m)
 computes the matrix inverse More...
 
template<typename T , std::size_t M, std::size_t N, std::size_t P, std::size_t Q>
constexpr matrix< T, M *P, N *Q > nil::crypto3::algebra::kron (const matrix< T, M, N > &a, const matrix< T, P, Q > &b)
 Computes the kronecker tensor product. More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr T nil::crypto3::algebra::macs (const matrix< T, M, N > &m)
 Computes the maximum absolute column sum norm. More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr T nil::crypto3::algebra::mars (const matrix< T, M, N > &m)
 Computes the maximum absolute row sum norm. More...
 
template<typename T , std::size_t M, std::size_t N, std::size_t P>
constexpr matrix< T, M, P > nil::crypto3::algebra::matmul (const matrix< T, M, N > &a, const matrix< T, N, P > &b)
 computes the matrix product More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr vector< T, M > nil::crypto3::algebra::matvectmul (const matrix< T, M, N > &m, const vector< T, N > &v)
 computes the product of matrix and vector More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr std::size_t nil::crypto3::algebra::rank (const matrix< T, M, N > &m)
 Compute the rank. More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr matrix< nil::crypto3::detail::remove_complex_t< T >, M, N > nil::crypto3::algebra::real (const matrix< T, M, N > &m)
 computes the elementwise real More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr matrix< T, M, N > nil::crypto3::algebra::rref (const matrix< T, M, N > &m)
 Compute the reduced row echelon form. More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr matrix< T, M, N > nil::crypto3::algebra::rref (const matrix< T, M, N > &m, T tolerance)
 Compute the reduced row echelon form. More...
 
template<typename T , std::size_t M>
constexpr T nil::crypto3::algebra::trace (const matrix< T, M, M > &m)
 computes the trace More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr matrix< T, N, M > nil::crypto3::algebra::transpose (const matrix< T, M, N > &m)
 computes the transpose More...
 
template<typename T , std::size_t M, std::size_t N>
constexpr vector< T, N > nil::crypto3::algebra::vectmatmul (const vector< T, M > &v, const matrix< T, M, N > &m)
 computes the product of vector and matrix More...