Many routines in this package are written to take advantage of known structure on some posets to quickyl precompute some of the cached data. However, this may not always be desirable, and so this flag toggles whether precomputation occurs. It can be set with the setPrecompute method.
i1 : setPrecompute true; |
i2 : C = chain 10; |
i3 : peek C.cache o3 = CacheTable{connectedComponents => {{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}} } coveringRelations => {{0, 1}, {1, 2}, {2, 3}, {3, 4}, {4, 5}, {5, 6}, {6, 7}, {7, 8}, {8, 9}} filtration => {{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}} greeneKleitmanPartition => Partition{10} isAtomic => false isDistributive => true isEulerian => false isLowerSemilattice => true isLowerSemimodular => true isUpperSemilattice => true isUpperSemimodular => true maximalAntichains => {{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}} maximalChains => {{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}} maximalElements => {9} minimalElements => {0} rankFunction => {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} |
i4 : P = poset apply(9, i -> {i+1, i+2}); |
i5 : peek P.cache o5 = CacheTable{} |
i6 : C == P o6 = true |
i7 : time isDistributive C -- used 4.455e-6 seconds o7 = true |
i8 : time isDistributive P -- used 3.03133 seconds o8 = true |
i9 : C' = dual C; |
i10 : time isDistributive C' -- used 3.572e-6 seconds o10 = true |
i11 : peek C'.cache o11 = CacheTable{connectedComponents => {{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}} } coveringRelations => {{1, 0}, {2, 1}, {3, 2}, {4, 3}, {5, 4}, {6, 5}, {7, 6}, {8, 7}, {9, 8}} filtration => {{9}, {8}, {7}, {6}, {5}, {4}, {3}, {2}, {1}, {0}} greeneKleitmanPartition => Partition{10} isDistributive => true isEulerian => false isLowerSemilattice => true isLowerSemimodular => true isUpperSemilattice => true isUpperSemimodular => true maximalAntichains => {{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}} maximalChains => {{9, 8, 7, 6, 5, 4, 3, 2, 1, 0}} maximalElements => {0} minimalElements => {9} rankFunction => {9, 8, 7, 6, 5, 4, 3, 2, 1, 0} |
The object Precompute is a symbol.