gauss.hpp File Reference

#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>
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>
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>
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>
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>
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>
Arageli::rref (const A &a)
 Produces the reduced row echelon form B of the matrix a.
template<typename T, bool REFCNT>
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.


Detailed Description

Some algorithms of linear algebra. Bellow T is the type implementing an item of any field, T is the type implementing an integer number.

Definition in file gauss.hpp.


Define Documentation

#define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_GAUSS

Definition at line 827 of file gauss.hpp.


Generated on Thu Aug 31 17:38:17 2006 for Arageli by  doxygen 1.4.7