|
|
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 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 > |
| std::enable_if_t<!TMatrix::is_sparse, Set< Int > > | far_points (const GenericMatrix< TMatrix > &M) |
| | Find row indices of all far points (that is, having zero in the first column). For dense matrices.
|
| |
|
template<typename TMatrix > |
| std::enable_if_t< TMatrix::is_sparse, Set< Int > > | far_points (const GenericMatrix< TMatrix > &M) |
| | Find row indices of all far points (that is, having zero in the first column). For sparse matrices.
|
| |
|
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 Top , typename ElementSet , typename = std::enable_if_t<is_generic_set<ElementSet>::value>> |
| PowerSet< typename ElementSet::element_type, typename ElementSet::element_comparator > | ridges (const GenericSet< Top, ElementSet > &power_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) |
| |