|
TRIQS/nda 1.3.0
Multi-dimensional array library for C++
|
#include "../basic_array.hpp"#include "../basic_functions.hpp"#include "../clef/make_lazy.hpp"#include "../concepts.hpp"#include "../exceptions.hpp"#include "../lapack/getrf.hpp"#include "../lapack/getri.hpp"#include "../layout/policies.hpp"#include "../matrix_functions.hpp"#include "../mem/address_space.hpp"#include "../mem/policies.hpp"#include "../print.hpp"#include "../traits.hpp"#include <iostream>#include <type_traits>#include <utility>Provides functions to compute the determinant and inverse of a matrix.
Definition in file det_and_inverse.hpp.
Go to the source code of this file.
Functions | |
|
template<typename... A> requires (nda::clef::is_any_lazy<A...>) | |
| auto | nda::clef::determinant (A &&...__a) |
| Lazy version of nda::determinant. | |
| template<typename M> | |
| auto | nda::determinant (M const &m) |
| Compute the determinant of a square matrix/view. | |
| template<typename M> requires (is_matrix_or_view_v<M>) | |
| auto | nda::determinant_in_place (M &m) |
| Compute the determinant of a square matrix/view. | |
| template<Matrix M> requires (get_algebra<M> == 'M') | |
| auto | nda::inverse (M const &m) |
| Compute the inverse of an n-by-n matrix. | |
| template<MemoryMatrix M> requires (get_algebra<M> == 'M' and mem::on_host<M>) | |
| void | nda::inverse1_in_place (M &&m) |
| Compute the inverse of a 1-by-1 matrix. | |
| template<MemoryMatrix M> requires (get_algebra<M> == 'M' and mem::on_host<M>) | |
| void | nda::inverse2_in_place (M &&m) |
| Compute the inverse of a 2-by-2 matrix. | |
| template<MemoryMatrix M> requires (get_algebra<M> == 'M' and mem::on_host<M>) | |
| void | nda::inverse3_in_place (M &&m) |
| Compute the inverse of a 3-by-3 matrix. | |
| template<MemoryMatrix M> requires (get_algebra<M> == 'M') | |
| void | nda::inverse_in_place (M &&m) |
| Compute the inverse of an n-by-n matrix. | |
| template<typename A> | |
| bool | nda::is_matrix_diagonal (A const &a, bool print_error=false) |
| Check if a given array/view is diagonal, i.e. if it is square (see nda::is_matrix_square) and all the the off-diagonal elements are zero. | |
| template<typename A> | |
| bool | nda::is_matrix_square (A const &a, bool print_error=false) |
| Check if a given array/view is square, i.e. if the first dimension has the same extent as the second dimension. | |