|
Int | incl (const Bitset &s1, const Bitset &s2) noexcept |
| See incl(GenericSet,GenericSet)
|
|
template<typename Matrix1 , typename Matrix2 > |
auto | diag (const GenericIncidenceMatrix< Matrix1 > &m1, const GenericIncidenceMatrix< Matrix2 > &m2) -> decltype(make_block_diag< false >(m1.top(), m2.top())) |
| create a block-diagonal incidence matrix
|
|
template<typename Matrix1 , typename Matrix2 > |
auto | diag_1 (const GenericIncidenceMatrix< Matrix1 > &m1, const GenericIncidenceMatrix< Matrix2 > &m2) -> decltype(make_block_diag< true >(m1.top(), m2.top())) |
| create a block-diagonal incidence matrix, fill the corner blocks with 1's
|
|
template<typename TargetType , typename TMatrix > |
const TMatrix & | convert_to (const GenericMatrix< TMatrix, TargetType > &m) |
| explicit conversion of matrix elements to another type
|
|
template<typename TVector , typename = std::enable_if_t<is_generic_vector<TVector>::value>> |
auto | repeat_row (TVector &&v, Int n=0) -> RepeatedRow< diligent_ref_t< unwary_t< TVector >>> |
| Create a matrix with n rows, each equal to v.
|
|
template<typename TVector , typename = std::enable_if_t<is_generic_vector<TVector>::value>> |
auto | repeat_col (TVector &&v, Int n=0) -> RepeatedCol< diligent_ref_t< unwary_t< TVector >>> |
| Create a matrix with n columns, each equal to v.
|
|
template<typename E > |
auto | same_element_matrix (E &&x, Int m, Int n) |
|
template<typename E > |
auto | ones_matrix (Int m, Int n) |
|
template<typename E > |
auto | zero_matrix (Int m, Int n) |
|
template<typename TVector > |
auto | vector2row (GenericVector< TVector > &v) |
| disguise a GenericVector as a matrix with 1 row
|
|
template<typename TVector > |
auto | vector2col (GenericVector< TVector > &v) |
| disguise a GenericVector as a matrix with 1 column
|
|
template<typename TVector > |
auto | diag (const GenericVector< TVector > &v) |
| Create a square diagonal matrix from a GenericVector.
|
|
template<typename TVector > |
auto | anti_diag (const GenericVector< TVector > &v) |
| Create a anti-diagonal matrix.
|
|
template<typename E > |
auto | unit_matrix (Int dim) |
| Create a unit_matrix of dimension dim.
|
|
template<typename E , typename Matrix1 , typename Matrix2 > |
auto | diag (const GenericMatrix< Matrix1, E > &m1, const GenericMatrix< Matrix2, E > &m2) |
| Create a block-diagonal matrix.
|
|
template<typename E , typename Vector1 , typename Matrix2 > |
auto | diag (const GenericVector< Vector1, E > &v1, const GenericMatrix< Matrix2, E > &m2) |
|
template<typename E , typename Matrix1 , typename Vector2 > |
auto | diag (const GenericMatrix< Matrix1, E > &m1, const GenericVector< Vector2, E > &v2) |
|
template<typename E , typename Matrix1 , typename Matrix2 > |
auto | anti_diag (const GenericMatrix< Matrix1, E > &m1, const GenericMatrix< Matrix2, E > &m2) |
| Create a block-anti-diagonal matrix.
|
|
template<typename E , typename Vector1 , typename Matrix2 > |
auto | anti_diag (const GenericVector< Vector1, E > &v1, const GenericMatrix< Matrix2, E > &m2) |
|
template<typename E , typename Matrix1 , typename Vector2 > |
auto | anti_diag (const GenericMatrix< Matrix1, E > &m1, const GenericVector< Vector2, E > &v2) |
|
template<typename Comparator , typename E > |
auto | scalar2set (E &&x) |
| construct an one-element set with explicitly specified comparator type
|
|
template<typename E > |
auto | scalar2set (E &&x) |
| construct an one-element set with standard (lexicographical) comparator type
|
|
template<typename Set1 , typename Set2 , typename E1 , typename E2 , class Comparator > |
Int | incl (const GenericSet< Set1, E1, Comparator > &s1, const GenericSet< Set2, E2, Comparator > &s2) |
|
template<typename TargetType , typename TVector > |
const TVector & | convert_to (const GenericVector< TVector, TargetType > &v) |
| explicit conversion of vector elements to another type
|
|
template<typename E > |
auto | same_element_vector (E &&x, Int dim=0) |
| Create a vector with all entries equal to the given element x.
|
|
template<typename E > |
auto | ones_vector (Int dim=0) |
| Create a vector with all entries equal to 1.
|
|
template<typename E > |
auto | zero_vector (Int dim=0) |
| Create a vector with all entries equal to 0.
|
|
graph::Graph | complete_graph (Int n_nodes) |
| create complete graph on given number of nodes
|
|
template<typename Matrix1 , typename Matrix2 > |
IncidenceMatrix | convolute (const GenericIncidenceMatrix< Matrix1 > &m1, const GenericIncidenceMatrix< Matrix2 > &m2) |
| Convolution of two incidence relations.
|
|
constexpr bool | isfinite (const __mpz_struct &) |
| data from third parties can't have infinite values
|
|
Int | isinf (double x) noexcept |
|
template<typename Target , typename Source > |
inherit_reference_t< Target, Source && > | convert_to (Source &&x, std::enable_if_t< is_derived_from< pure_type_t< Source >, Target >::value||std::is_same< pure_type_t< Source >, Target >::value, void ** >=nullptr) |
| trivial conversion of an object to itself (mutable access)
|
|
template<typename Target , typename Source > |
Target | convert_to (const Source &x, std::enable_if_t< can_initialize< Source, Target >::value &&(!std::is_arithmetic< Source >::value||!std::is_arithmetic< Target >::value) &&!is_derived_from< Source, Target >::value, void ** >=nullptr) |
| conversion via functor
|
|
template<typename E > |
std::enable_if_t< is_field< E >::value, E > | det (Matrix< E > M) |
| determinant of a matrix
|
|
template<typename E > |
std::enable_if_t< is_field< E >::value, Matrix< E > > | inv (Matrix< E > M) |
| matrix inversion
|
|
template<typename E > |
std::enable_if_t< is_field< E >::value, Vector< E > > | lin_solve (Matrix< E > A, Vector< E > b) |
| solving systems of linear equations
|
|
template<typename Iterator , typename Predicate > |
auto | make_unary_predicate_selector (Iterator &&it, const Predicate &pred) |
| Convenience function creating an iterator with element selection.
|
|
template<typename Matrix2 , typename Vector2 , typename E > |
bool | has_solution (const GenericMatrix< Matrix2, E > &A, const GenericVector< Vector2, E > &B) |
|
template<typename T , typename... Args> |
T * | construct_at (T *place, Args &&... args) |
|
template<typename Iterator > |
void | normalize (Iterator dst) |
| Divide each vector in a sequence thru its length (L2-norm)
|
|
template<typename TMatrix , typename E > |
Vector< E > | barycenter (const GenericMatrix< TMatrix, E > &V) |
| Compute the average over the rows of a matrix.
|
|
template<typename TMatrix , typename E > |
std::enable_if_t< is_field< E >::value, E > | det (const GenericMatrix< TMatrix, E > &m) |
| Compute the determinant of a matrix using the Gauss elimination method.
|
|
template<typename TMatrix , typename E > |
E | trace (const GenericMatrix< TMatrix, E > &m) |
| Compute the trace of a matrix.
|
|
template<typename TMatrix , typename TVector , typename E > |
std::enable_if_t< is_field< E >::value, typename TVector::persistent_type > | reduce (const GenericMatrix< TMatrix, E > &A, const GenericVector< TVector, E > &V) |
| Reduce a vector with a given matrix using the Gauss elimination method.
|
|
template<typename TMatrix , typename E > |
std::enable_if_t< is_field< E >::value, typename TMatrix::persistent_nonsymmetric_type > | inv (const GenericMatrix< TMatrix, E > &m) |
|
template<typename TMatrix , typename TVector , typename E > |
std::enable_if_t< is_field< E >::value, Vector< E > > | lin_solve (const GenericMatrix< TMatrix, E > &A, const GenericVector< TVector, E > &b) |
|
template<typename AHRowIterator , typename VectorType , typename RowBasisOutputIterator , typename ColBasisOutputIterator > |
bool | project_rest_along_row (AHRowIterator &h, const VectorType &v, RowBasisOutputIterator row_basis_consumer, ColBasisOutputIterator col_basis_consumer, Int i=0) |
|
template<typename VectorType , typename RowBasisOutputIterator , typename ColBasisOutputIterator , typename E > |
bool | basis_of_rowspan_intersect_orthogonal_complement (ListMatrix< SparseVector< E > > &H, const VectorType &v, RowBasisOutputIterator row_basis_consumer, ColBasisOutputIterator col_basis_consumer, Int i=0) |
|
template<typename T , typename R > |
bool | add_row_if_rowspace_increases (ListMatrix< SparseVector< T > > &M, const SparseVector< T > &v, ListMatrix< SparseVector< R > > &kernel_so_far) |
|
template<typename VectorIterator , typename RowBasisOutputIterator , typename ColBasisOutputIterator , typename AH_matrix > |
void | null_space (VectorIterator v, RowBasisOutputIterator row_basis_consumer, ColBasisOutputIterator col_basis_consumer, AH_matrix &H, bool simplify=false) |
|
template<typename TVector , typename E > |
ListMatrix< SparseVector< E > > | null_space_oriented (const GenericVector< TVector, E > &V, Int req_sign) |
|
template<typename TMatrix , typename E > |
std::pair< Set< Int >, Set< Int > > | basis_affine (const GenericMatrix< TMatrix, E > &M) |
| The same as basis(), but ignoring the first column of the matrix.
|
|
template<typename E , typename Vector1 , typename Vector2 > |
Vector2::persistent_type | proj (const GenericVector< Vector1, E > &u, const GenericVector< Vector2, E > &v) |
| Project u to v.
|
|
template<typename Matrix1 , typename Matrix2 > |
void | project_to_orthogonal_complement (Matrix1 &M, const Matrix2 &N) |
|
template<typename TVector > |
Set< Int > | support (const GenericVector< TVector > &v) |
| the indices of nonzero entries
|
|
template<typename Vector1 , typename Vector2 > |
Vector1::persistent_type | reflect (const GenericVector< Vector1 > &u, const GenericVector< Vector2 > &nv) |
| reflect u in the plane normal to nv
|
|
template<typename TVector > |
TVector::persistent_type | dehomogenize (const GenericVector< TVector > &V) |
|
template<typename TMatrix > |
TMatrix::persistent_nonsymmetric_type | dehomogenize (const GenericMatrix< TMatrix > &M) |
|
template<typename TVector > |
TVector::persistent_type | dehomogenize_trop (const GenericVector< TVector > &V) |
|
template<typename TMatrix > |
TMatrix::persistent_nonsymmetric_type | dehomogenize_trop (const GenericMatrix< TMatrix > &M) |
|
template<typename TMatrix > |
TMatrix::persistent_nonsymmetric_type | remove_zero_rows (const GenericMatrix< TMatrix > &m) |
| Remove all matrix rows that contain only zeros.
|
|
template<typename VectorIterator > |
void | orthogonalize (VectorIterator v) |
| Apply the Gram-Schmidt orthogonalization to the vector sequence.
|
|
template<typename VectorIterator > |
void | orthogonalize_affine (VectorIterator v) |
|
template<typename TMatrix > |
Set< Int > | far_points (const GenericMatrix< TMatrix > &M) |
| Find row indices of all far points (that is, having zero in the first column).
|
|
template<typename E , typename TMatrix , typename TVector > |
Set< Int > | orthogonal_rows (const GenericMatrix< TMatrix, E > &M, const GenericVector< TVector, E > &v) |
| Find indices of rows orthogonal to the given vector.
|
|
template<typename Coefficient , typename Exponent > |
UniPolynomial< Coefficient, Exponent > | div_exact (const UniPolynomial< Coefficient, Exponent > &a, const UniPolynomial< Coefficient, Exponent > &b) |
|
template<typename TargetType , typename Exponent > |
const Polynomial< TargetType, Exponent > & | convert_to (const Polynomial< TargetType, Exponent > &p) |
| explicit conversion of polynomial coefficients to another type
|
|
template<typename Iterator > |
PowerSet< typename iterator_traits< Iterator >::value_type::element_type, typename iterator_traits< Iterator >::value_type::element_comparator > | ridges (Iterator set) |
| Gather all independent intersections of subsets from the given PowerSet.
|
|
constexpr bool | isfinite (const __mpq_struct &) |
| data from third parties can't have infinite values
|
|
template<typename E > |
Int | smith_normal_form_only (SparseMatrix< E > &M, std::list< std::pair< E, Int >> &torsion) |
|
template<typename Matrix , typename E > |
SmithNormalForm< E > | smith_normal_form (const GenericMatrix< Matrix, E > &M, std::enable_if_t< std::numeric_limits< E >::is_integer, bool > inverse_companions=false) |
|