Some fast computations for finite posets using FLINT matrices¶
- sage.combinat.posets.hasse_cython_flint.chain_poly(positions)¶
Return the chain polynomial of a poset.
INPUT:
positions– a list of sets of integers describing the poset, as given by the lazy attribute_leq_storageof Hasse diagrams
OUTPUT: a Flint polynomial in one variable over \(\ZZ\).
EXAMPLES:
sage: from sage.combinat.posets.hasse_cython_flint import chain_poly sage: D = [{0, 1}, {1}] sage: chain_poly(D) 3 1 2 1 sage: P = posets.TamariLattice(5) sage: H = P._hasse_diagram sage: D = H._leq_storage sage: chain_poly(D) 12 1 42 357 1385 3133 4635 4758 3468 1778 612 127 12
>>> from sage.all import * >>> from sage.combinat.posets.hasse_cython_flint import chain_poly >>> D = [{Integer(0), Integer(1)}, {Integer(1)}] >>> chain_poly(D) 3 1 2 1 >>> P = posets.TamariLattice(Integer(5)) >>> H = P._hasse_diagram >>> D = H._leq_storage >>> chain_poly(D) 12 1 42 357 1385 3133 4635 4758 3468 1778 612 127 12
- sage.combinat.posets.hasse_cython_flint.coxeter_matrix_fast(positions)¶
Compute the Coxeter matrix of a poset by a specific algorithm.
INPUT:
positions– a list of sets of integers describing the poset, as given by the lazy attribute_leq_storageof Hasse diagrams
OUTPUT: a dense matrix
EXAMPLES:
sage: from sage.combinat.posets.hasse_cython_flint import coxeter_matrix_fast sage: D = [{0,1},{1}] sage: coxeter_matrix_fast(D) [ 0 -1] [ 1 -1] sage: P = posets.TamariLattice(5) sage: H = P._hasse_diagram sage: D = H._leq_storage sage: coxeter_matrix_fast(D) 42 x 42 dense matrix over Integer Ring (...)
>>> from sage.all import * >>> from sage.combinat.posets.hasse_cython_flint import coxeter_matrix_fast >>> D = [{Integer(0),Integer(1)},{Integer(1)}] >>> coxeter_matrix_fast(D) [ 0 -1] [ 1 -1] >>> P = posets.TamariLattice(Integer(5)) >>> H = P._hasse_diagram >>> D = H._leq_storage >>> coxeter_matrix_fast(D) 42 x 42 dense matrix over Integer Ring (...)
- sage.combinat.posets.hasse_cython_flint.moebius_matrix_fast(positions)¶
Compute the Möbius matrix of a poset by a specific triangular inversion.
INPUT:
positions– a list of sets of integers describing the poset, as given by the lazy attribute_leq_storageof Hasse diagrams
OUTPUT: a dense matrix
EXAMPLES:
sage: from sage.combinat.posets.hasse_cython_flint import moebius_matrix_fast sage: D = [{0,1},{1}] sage: moebius_matrix_fast(D) [ 1 -1] [ 0 1] sage: P = posets.TamariLattice(5) sage: H = P._hasse_diagram sage: D = H._leq_storage sage: moebius_matrix_fast(D) 42 x 42 dense matrix over Integer Ring (...)
>>> from sage.all import * >>> from sage.combinat.posets.hasse_cython_flint import moebius_matrix_fast >>> D = [{Integer(0),Integer(1)},{Integer(1)}] >>> moebius_matrix_fast(D) [ 1 -1] [ 0 1] >>> P = posets.TamariLattice(Integer(5)) >>> H = P._hasse_diagram >>> D = H._leq_storage >>> moebius_matrix_fast(D) 42 x 42 dense matrix over Integer Ring (...)