#include "config.hpp"
#include <cmath>
#include <iostream>
#include <iomanip>
#include <functional>
#include "type_opers.hpp"
#include "type_traits.hpp"
#include "factory.hpp"
#include "exception.hpp"
#include "powerest.hpp"
#include "vector.hpp"
#include "matrix.hpp"
#include "std_import.hpp"
#include "gauss.cpp"
Go to the source code of this file.
Namespaces | |
namespace | Arageli |
namespace | Arageli::ctrl |
namespace | Arageli::_Internal |
Classes | |
struct | Arageli::ctrl::rref_gauss_field_idler |
class | Arageli::ctrl::rref_gauss_field_idler::abort |
struct | Arageli::ctrl::rref_gauss_bareiss_idler |
class | Arageli::ctrl::rref_gauss_bareiss_idler::abort |
struct | Arageli::ctrl::rref_field_idler |
class | Arageli::ctrl::rref_field_idler::abort |
struct | Arageli::ctrl::rref_int_idler |
class | Arageli::ctrl::rref_int_idler::abort |
struct | Arageli::ctrl::rref_idler |
class | Arageli::ctrl::rref_idler::abort |
Defines | |
#define | ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_GAUSS |
Functions | |
template<typename M> | |
void | Arageli::gauss_field_row_iter (M &a, typename M::size_type row, typename M::size_type col) |
Gauss elimination of column col with row manipulation. | |
template<typename M> | |
void | Arageli::gauss_field_col_iter (M &a, typename M::size_type row, typename M::size_type col) |
Gauss elimination of row with column manipulation. | |
template<typename M, typename T> | |
void | Arageli::gauss_bareiss_row_iter (M &a, typename M::size_type row, typename M::size_type col, T &det, T &det_denom) |
Gauss-Bareiss elimination of column col with row manipulation. | |
template<typename M, typename T> | |
void | Arageli::gauss_bareiss_col_iter (M &a, typename M::size_type row, typename M::size_type col, T &det, T &det_denom) |
Gauss-Bareiss elimination of row with column manipulation. | |
template<typename M> | |
void | Arageli::gauss_bareiss_row_iter (M &a, typename M::size_type row, typename M::size_type col) |
Gauss-Bareiss elimination of column col with row manipulation. | |
template<typename M> | |
void | Arageli::gauss_bareiss_col_iter (M &a, typename M::size_type row, typename M::size_type col) |
Gauss-Bareiss elimination of row with column manipulation. | |
template<typename A, typename B, typename Q, typename Basis, typename T, typename T_factory, typename Ctrler> | |
void | Arageli::rref_gauss_field (const A &a, B &b, Q &q, Basis &basis, T &det, const T_factory &tfctr, Ctrler ctrler) |
Produces the reduced row echelon form B of the matrix a over a field. | |
template<typename A, typename B, typename Q, typename Basis, typename T, typename Ctrler> | |
void | Arageli::rref_gauss_field (const A &a, B &b, Q &q, Basis &basis, T &det, Ctrler ctrler) |
Produces the reduced row echelon form B of a matrix A. | |
template<typename A, typename B, typename Q, typename Basis, typename T> | |
void | Arageli::rref_gauss_field (const A &a, B &b, Q &q, Basis &basis, T &det) |
Produces the reduced row echelon form B of a matrix A. | |
template<typename A, typename B, typename Q, typename Basis> | |
void | Arageli::rref_gauss_field (const A &a, B &b, Q &q, Basis &basis) |
Produces the reduced row echelon form B of a matrix A. | |
template<typename A, typename B, typename Q> | |
void | Arageli::rref_gauss_field (const A &a, B &b, Q &q) |
Produces the reduced row echelon form B of a matrix A. | |
template<typename A, typename B> | |
void | Arageli::rref_gauss_field (const A &a, B &b) |
Produces the reduced row echelon form B of a matrix A. | |
template<typename A> | |
A | Arageli::rref_gauss_field (const A &a) |
Produces the reduced row echelon form B of a matrix A. | |
template<typename A, typename B, typename Q, typename Basis, typename T, typename T_factory, typename Ctrler> | |
void | Arageli::rref_field (const A &a, B &b, Q &q, Basis &basis, T &det, const T_factory &tfctr, Ctrler ctrler) |
Produces the reduced row echelon form B of the matrix a over a field. | |
template<typename A, typename B, typename Q, typename Basis, typename T, typename Ctrler> | |
void | Arageli::rref_field (const A &a, B &b, Q &q, Basis &basis, T &det, Ctrler ctrler) |
Produces the reduced row echelon form B of the matrix a over a field. | |
template<typename A, typename B, typename Q, typename Basis, typename T> | |
void | Arageli::rref_field (const A &a, B &b, Q &q, Basis &basis, T &det) |
Produces the reduced row echelon form B of the matrix a over a field. | |
template<typename A, typename B, typename Q, typename Basis> | |
void | Arageli::rref_field (const A &a, B &b, Q &q, Basis &basis) |
Produces the reduced row echelon form B of the matrix a over a field. | |
template<typename A, typename B, typename Q> | |
void | Arageli::rref_field (const A &a, B &b, Q &q) |
Produces the reduced row echelon form B of the matrix a over a field. | |
template<typename A, typename B> | |
void | Arageli::rref_field (const A &a, B &b) |
Produces the reduced row echelon form B of the matrix a over a field. | |
template<typename A> | |
A | Arageli::rref_field (const A &a) |
Produces the reduced row echelon form B of the matrix a over a field. | |
template<typename A1, typename A2, typename I> | |
void | Arageli::mat_col_copy_order (const A1 &a1, A2 &a2, const I &idx) |
Copies columns from a1 to a2 in order indexes in idx then tails the rest. | |
template<typename A1, typename A2, typename I> | |
void | Arageli::vec_copy_order (const A1 &a1, A2 &a2, const I &idx) |
Copies elements from a1 to a2 in order indexes in idx then tails the rest. | |
template<typename A, typename B> | |
void | Arageli::vec_inverse_permutation (const A &a, B &b) |
Inverses permutation vector. | |
template<typename A, typename B, typename Q, typename Basis_in, typename Basis_out, typename Det> | |
void | Arageli::rref_order (const A &a, B &b, Q &q, const Basis_in &basis_in, Basis_out &basis_out, Det &det) |
Produces the reduced row echelon from B of the matrix A with a specific column order. | |
template<typename T, bool REFCNT> | |
matrix< T, REFCNT > | Arageli::inverse (const matrix< T, REFCNT > &A) |
Matrix inversion. | |
template<typename T, bool REFCNT> | |
T | Arageli::det (const matrix< T, REFCNT > &A) |
Returns determinant of A. | |
template<typename T, bool REFCNT> | |
matrix< T, REFCNT >::size_type | Arageli::rank (const matrix< T, REFCNT > &A) |
Returns a rank of a matrix. | |
template<typename A, typename B, typename Q, typename Basis, typename T, typename T_factory, typename Ctrler> | |
void | Arageli::rref_gauss_bareiss (const A &a, B &b, Q &q, Basis &basis, T &det, const T_factory &tfctr, Ctrler ctrler) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B, typename Q, typename Basis, typename T, typename Ctrler> | |
void | Arageli::rref_gauss_bareiss (const A &a, B &b, Q &q, Basis &basis, T &det, Ctrler ctrler) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B, typename Q, typename Basis, typename T> | |
void | Arageli::rref_gauss_bareiss (const A &a, B &b, Q &q, Basis &basis, T &det) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B, typename Q, typename Basis> | |
void | Arageli::rref_gauss_bareiss (const A &a, B &b, Q &q, Basis &basis) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B, typename Q> | |
void | Arageli::rref_gauss_bareiss (const A &a, B &b, Q &q) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B> | |
void | Arageli::rref_gauss_bareiss (const A &a, B &b) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A> | |
A | Arageli::rref_gauss_bareiss (const A &a) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B, typename Q, typename Basis, typename T, typename T_factory, typename Ctrler> | |
void | Arageli::rref_int (const A &a, B &b, Q &q, Basis &basis, T &det, const T_factory &tfctr, Ctrler ctrler) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B, typename Q, typename Basis, typename T, typename Ctrler> | |
void | Arageli::rref_int (const A &a, B &b, Q &q, Basis &basis, T &det, Ctrler ctrler) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B, typename Q, typename Basis, typename T> | |
void | Arageli::rref_int (const A &a, B &b, Q &q, Basis &basis, T &det) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B, typename Q, typename Basis> | |
void | Arageli::rref_int (const A &a, B &b, Q &q, Basis &basis) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B, typename Q> | |
void | Arageli::rref_int (const A &a, B &b, Q &q) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B> | |
void | Arageli::rref_int (const A &a, B &b) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A> | |
A | Arageli::rref_int (const A &a) |
Produces the reduced row echelon form B of the matrix a over an integer domain. | |
template<typename A, typename B, typename Q, typename Basis, typename T, typename T_factory, typename Ctrler> | |
void | Arageli::_Internal::rref_helper_1 (const A &a, B &b, Q &q, Basis &basis, T &det, const T_factory &tfctr, Ctrler ctrler, const true_type &) |
template<typename A, typename B, typename Q, typename Basis, typename T, typename T_factory, typename Ctrler> | |
void | Arageli::_Internal::rref_helper_1 (const A &a, B &b, Q &q, Basis &basis, T &det, const T_factory &tfctr, Ctrler ctrler, const false_type &) |
template<typename A, typename B, typename Q, typename Basis, typename T, typename T_factory, typename Ctrler> | |
void | Arageli::rref (const A &a, B &b, Q &q, Basis &basis, T &det, const T_factory &tfctr, Ctrler ctrler) |
Produces the reduced row echelon form B of the matrix a. | |
template<typename A, typename B, typename Q, typename Basis, typename T, typename Ctrler> | |
void | Arageli::rref (const A &a, B &b, Q &q, Basis &basis, T &det, Ctrler ctrler) |
Produces the reduced row echelon form B of the matrix a. | |
template<typename A, typename B, typename Q, typename Basis, typename T> | |
void | Arageli::rref (const A &a, B &b, Q &q, Basis &basis, T &det) |
Produces the reduced row echelon form B of the matrix a. | |
template<typename A, typename B, typename Q, typename Basis> | |
void | Arageli::rref (const A &a, B &b, Q &q, Basis &basis) |
Produces the reduced row echelon form B of the matrix a. | |
template<typename A, typename B, typename Q> | |
void | Arageli::rref (const A &a, B &b, Q &q) |
Produces the reduced row echelon form B of the matrix a. | |
template<typename A, typename B> | |
void | Arageli::rref (const A &a, B &b) |
Produces the reduced row echelon form B of the matrix a. | |
template<typename A> | |
A | Arageli::rref (const A &a) |
Produces the reduced row echelon form B of the matrix a. | |
template<typename T, bool REFCNT> | |
T | Arageli::det_int (const matrix< T, REFCNT > &A) |
Returns determinant of integer matrix A. | |
template<typename T, bool REFCNT> | |
matrix< T, REFCNT >::size_type | Arageli::rank_int (const matrix< T, REFCNT > &A) |
Returns a rank of integer matrix. |
Definition in file gauss.hpp.