algebra/include/nil/crypto3/algebra/matrix/math.hpp File Reference
#include <algorithm>
#include <nil/crypto3/detail/assert.hpp>
#include <nil/crypto3/algebra/vector/vector.hpp>
#include <nil/crypto3/algebra/vector/math.hpp>
#include <nil/crypto3/algebra/matrix/matrix.hpp>
#include <nil/crypto3/algebra/matrix/utility.hpp>
#include <nil/crypto3/algebra/scalar/math.hpp>
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... | |