From e1c9a2f8318ff6646a6a043d24ed8326a2b625cd Mon Sep 17 00:00:00 2001 From: Erik Welch Date: Sun, 28 Aug 2022 21:58:44 -0500 Subject: [PATCH] Add design document for supporting rank N sparse arrays --- design_docs/01_rankN_arrays.md | 248 + design_docs/img/DC-DC-DC-S.svg | 253 + design_docs/img/S-C-DC-S.svg | 276 + spz_python/notebooks/Example_Rank4.ipynb | 19524 +++++++++------------ 4 files changed, 9133 insertions(+), 11168 deletions(-) create mode 100644 design_docs/01_rankN_arrays.md create mode 100644 design_docs/img/DC-DC-DC-S.svg create mode 100644 design_docs/img/S-C-DC-S.svg diff --git a/design_docs/01_rankN_arrays.md b/design_docs/01_rankN_arrays.md new file mode 100644 index 0000000..02048d1 --- /dev/null +++ b/design_docs/01_rankN_arrays.md @@ -0,0 +1,248 @@ + + + + + +
Author Erik Welch (eriknw)
Status Draft
Created Aug 26, 2022
Resolution <url> (Accepted | Rejected | Withdrawn)
+ +## Abstract + +This design document considers what is necessary to support sparse rank N arrays. We will consider a narrow scope and broad scope: +1. how to support rank 1 and 2 arrays in a way that will let us support rank N arrays in the future, and +2. how to fully support rank N arrays + +We use [TACO](http://tensor-compiler.org/) and [MLIR's sparse_tensor dialect](https://mlir.llvm.org/docs/Dialects/SparseTensorOps/) as motivation for sparse rank N arrays (or tensors), and our proposal will be fully compatible with them. + +## Motivation + +We are developing a specification for binary storage of sparse matrices and vectors. The solution will entail saving metadata and storing multiple one-dimensional arrays. Storing rank N arrays need the same things: metadata and one-dimensional arrays. So, why not try to support arrays of arbitrary dimension if it's easy to do so? This will make the binary storage format more capable. + +Many people are already familiar with existing compression schemes for arrays, including COO, CSR (or CRS), DCSC (or HyperCSC), CSF, and more. I think it would be best to reuse these names when possible to increase usability. Doing so will make our documentation clearer, and we want users who only use 1d and 2d arrays to be comfortable. Is this possible with a generic scheme that supports rank N arrays? Let's find out! + +## Detailed description + +### Rank 1 and 2 arrays + +Since we don't yet have specific proposals for how to support rank 1 and 2 arrays, this section will be speculative and constructive. + +#### Names of constituent arrays + +Using names like `rows` and `col_indices` does not scale to arbitrary rank. For example, the two arrays for CSR may typically be called `indptr` and `col_indices`, but we can use names such as `pointers_0` and `indices_1` that can be generalized to arbitrary rank. + +Here's how these arrays would be used for common structures: + +| Type | `indices_0` | `pointers_0` | `indices_1` | `axis_order` | +| -- | :--: | :--: | :--: | :--: | +| **Vector** | Yes | | | `[0]` | +| **CSR** | | Yes | Yes | `[0, 1]` | +| **CSC** | | Yes | Yes | `[1, 0]` | +| **DCSR** | Yes | Yes | Yes | `[0, 1]` | +| **DCSC** | Yes | Yes | Yes | `[1, 0]` | +| **COO** | Yes | | Yes | `[0, 1]` or `[1, 0]` | + +`pointers_i` array is used to group indices of the current dimension to the indices of the next dimension. + + + +#### Row or column orientation + +Observe that CSR and CSC both use `pointers_0` and `indices_1` in the table above, and `axis_order` is used to determine whether the array is row-major or column-major. This is also called `dimOrdering` in [MLIR sparse_tensor](https://mlir.llvm.org/docs/Dialects/SparseTensorOps/#parameters). It is necessary for `axis_order` to be a list or tuple to support different axis ordering in higher dimensions such as `axis_order=[1, 3, 0, 2]`. + +For COO, `axis_order` indicates whether `indices_0` is rows (`axis_order=[0, 1]`) or columns (`axis_order[1, 0]`). + +_Proposal:_ if the compression type (such as CSR) ends in **"R"**, then `axis_order` uses **r**egular ordering `0, 1, ..., N-1`, and if it ends in **"C"**, then `axis_order` uses **c**ontrary ordering `N-1, N-2, ... 1, 0`. + + + +#### Simplifying assumptions + +Traditionally, COO is a common and flexible format. It can often have duplicate indices, and indices may not be sorted. Other storage formats can also allow for duplicate indices or unsorted indices; for example SuiteSparse:GraphBLAS import and export of CSR allows the column indices to be unsorted. + +Let us assume that the _standard_ storage formats that we are designing will have unique indices, and the indices will be sorted lexicographically by `indices_0`, `indices_1`, etc. + +_Remark:_ it would be nice to easily allow extensions to our specification so that e.g. SuiteSparse:GraphBLAS could keep data unsorted. Data readers should fail when reading unknown extensions that break the standard storage format. + +#### Names of compression types + +Indices for a dimension may be compressed in three different ways: like COO, CSR, or DCSR. Let's give these names: + +| Name | Abbv | `indices_i` | `pointers_i` | Like | +| -- | :--: | :--: | :--: | :--: | +| **sparse** | **`S`** | Yes | | COO | +| **compressed** | **`C`** | | Yes | CSR | +| **doubly compressed** | **`DC`** | Yes | Yes | DCSR | + +- **"sparse" (`S`)** dimension indices are aligned to the indices of the following dimension (or values if the final dimension) + - `len(indices_i) == len(indices_{i+1})`, or `len(indices_i) == len(values)` if the final dimension +- **"compressed" (`C`)** dimension allows fast O(1) lookup by the index into the pointers array + - The previous dimension does not need to store `pointers_{i-1}` +- **"doubly compressed" (`DC`)** stores unique index values (so O(1) lookup isn't possible) and pointers to the next dimension + - `len(pointers_i) == len(indices_i) + 1` + +The final dimension must be "sparse" (`S`). The compression schemes for rank 2 arrays are: + +| Dim 0 | Dim 1 | Ordering | Abbv | +| :--: | :--: | :--: | :--: | +| C
compressed | S
sparse | R
`[0, 1]` | CSR | +| C
compressed | S
sparse | C
`[1, 0]` | CSC | +| DC
doubly compressed | S
sparse | R
`[0, 1]` | DCSR | +| DC
doubly compressed | S
sparse | C
`[1, 0]` | DCSC | +| S
sparse | S
sparse | R
`[0, 1]` | SSR | +| S
sparse | S
sparse | C
`[1, 0]` | SSC | + +CSR, CSC, DCSR, and DCSC are familiar and keep their original meanings. + +#### COO + +SSR and SSC in the previous table are new and are instances of COO with sorted indices and no duplicates (according to our simplifying assumptions). SSR indices are lexicographically sorted by row then column, and a backronym could be "sorted sparse rows". Conversely, SSC indices are lexicographically sorted by column then row, and a backronym could be "sorted sparse columns". + +We can consider also keeping COO as a type of compression. COO does not need to be sorted, and metadata can indicate whether or not it may have duplicate indices. + +#### Dense dimensions or multidimensional values array + +Examples of structures with dense dimensions are dense vectors, dense matrices, and sparse vectors where each value is a dense array (so it's actually a matrix). It is an open question if and how we want to handle these. It may be straightforward to support this by allowing the values array to be N-dimensional and have metadata that indicates the shape and layout. + +Per our language, we do not consider CSR to have any dense dimensions. Dense dimensions are those that can be combined into a dense, multidimensional values array. + +#### Multiple value arrays + +It may be reasonable for the same sparse structure to have multiple value arrays. This is another open design question. + +Supporting rank N arrays probably doesn't constrain how we may support having multiple value arrays. A potential complication is when one values array is a scalar per element, and another is an array per element. + +#### Attributes + +It may be useful to store attributes such as `is_symmetric`, `is_structure_symmetric`, `is_upper_triangular`, `ndiag`, etc. It may be more complicated to have attributes like this in a way that generalizes to higher dimensions. + +### Rank N arrays + +#### Names of constituent arrays + +Use `indices_0`, `pointers_0`, `indices_1`, `pointers_1`, ..., `indices_{N-1}`. + +#### Dimension order + +Use `axis_order` with the same semantics as `dimOrdering` in MLIR sparse tensor dialect. + + + +We can reuse "R" to mean regular ordering `axis_order=[0, 1, ..., N-1]` and "C" to mean contrary ordering `axis_order=[N-1, N-2, ..., 1, 0]`. Perhaps we can use "X" to indicate any other ordering. + +#### Compression types + +The last dimension must be "sparse" (`S`). All other dimensions may be sparse (`S`), compressed (`C`), or doubly compressed (`DC`). This fully supports the TACO and MLIR sparse tensor formats. + +For larger dimensions, it is sometimes more clear to separate the abbreviated structure with hyphens. For example, `C-DC-S-S-R` instead of `CDCSSR`. + +**Examples:** + +**`DC-DC-DC-S`** + +![](img/DC-DC-DC-S.svg) + +**`S-C-DC-S`** + +![](img/S-C-DC-S.svg) + +See more examples of different compression types on a rank 4 array here: + +https://nbviewer.org/github/eriknw/binsparse-specification/blob/spz/spz_python/notebooks/Example_Rank4.ipynb + + + +#### COO + +As with rank 2, we can support sorted COO without duplicates as e.g. SSSSSSR. + +We can consider supporting rank N COO that is unsorted and may have duplicates. + +#### Dense dimensions or multidimensional values array + +Probably no change necessary to support rank N. + +This is important to support in order to fully match TACO and MLIR sparse tensor. + +This is also necessary to support semi-COO (sCOO): +- ["Optimizing Sparse Tensor Times Matrix on +Multi-core and Many-core Architectures" by Jiajia Li, et al +](http://fruitfly1026.github.io/static/files/sc16-ia3.pdf) + +#### Multiple value arrays + +Probably no change necessary to support rank N. + +#### Different jargon + +Sparse compression of rank N arrays is an active area of research, and users of that community may prefer the use of different jargon. For example, _modes_ (the order of dimensions), _fibers_, and _slices_. Also, _tensor_ is generally understood to be a multidimensional array, but may have different meanings for physicists, mathematicians, Python users (e.g., a tensor is an N-D array that can use GPUs), etc. + +#### Chunking strategies + +Not determined for ranks 1 and 2 yet, but probably little to no change necessary to support rank N. + +We may want to consider whether our strategy can support HiCOO: +- https://sc17.supercomputing.org/SC17%20Archive/tech_poster/poster_files/post213s2-file3.pdf +- http://fruitfly1026.github.io/static/files/sc18-li.pdf + +### Differences from TACO and MLIR sparse tensor + +Our proposal uses different naming schemes than TACO and MLIR sparse tensor, which use: + +| Type | Dim 0 | Dim 1 | +| -- | :--: | :--: | +| CSR | dense | compressed | +| DCSR | compressed | compressed | +| DCSR (alt) | singleton | compressed | +| COO | singleton | singleton | + +- "dense" dimensions store no arrays +- "compressed" dimension store `pointers_i` and `indices_i` arrays +- "singleton" dimension store `indices_i` arrays + +Note that TACO does not support "singleton" compression, and "singleton" may not be fully supported yet in MLIR sparse tensor. + +The main difference from our proposal is the use of `pointer_i`. In TACO and MLIR sparse tensor, `pointers_i` groups the _previous_ indices to the current indices. In our proposal, `pointers_i` groups the current indices to the _next_ indices. + +In TACO, DCSR is constructed using "compressed", "compressed" dimensions. This results in _two_ `pointers` arrays, which is not standard DCSR. Only one `pointers` array is necessary. In MLIR, there are two ways to specify DCSR arrays. Our proposal only has one way to specify DCSR, and it does not have an extra, unnecessary `pointers` array. + +It is straightforward to convert from our specification to MLIR sparse tensor specification: +1. Increment `pointers` arrays, so e.g. `pointers_0` becomes `mlir_pointers_1` +2. If a dimension has both `mlir_pointers_i` and `indices_i`, then it is MLIR's "compressed" +3. If a dimension has only `indices_i`, then it is MLIR's "singleton" +4. If a dimension does not have `mlir_pointers_i` or `indices_i`, then it is MLIR's "dense" + +### Extensions + +#### Multigraph support + +It would be easy support multigraphs, which can have multiple edges between nodes. This is done by allowing duplicate indices so an index can have multiple values. COO naturally supports this. Other formats can as well. + +Our proposal needs two changes to support multigraphs: +1. Allow the final dimension to be "compressed" (`C`) or "doubly compressed" (`DC`) where the pointers group indices to values +2. Add a flag to the global metadata to indicate whether there may be duplicate indices + +Observe that this is a natural, "obvious" consequence of our proposal, whereas TACO and MLIR sparse tensor cannot support multigraphs like this without adding another dimension. + +This gives us two more compression types for vectors ("compressed" and "doubly compressed"), and 12 more compression types for matrices (`SCR`, `SDCR`, `CCR`, `CDCR`, `DCCR`, `DCDCR` and the columnwise variants). These should only be used for multigraphs. + +#### Unsorted dimensions + +Indices in "sparse" and "doubly compressed" dimensions do not need to be sorted, but `pointers` boundaries must still be respected. For example, import and export in SuiteSparse:GraphBLAS supports unsorted column indices within each row for CSR and DCSR. + +If there are multiple sequential "sparse" dimensions (such as COO), only the first one needs to indicate that it is unsorted. This is because sortedness only applies to indices between pointers; for example, column indices for a given row in CSR are between pointers. Furthermore, if a "sparse" dimension _did_ store pointers, it would be `[0, 1, 2, ..., N]`, which means there is only one index in the next dimension that is grouped between pointers, and sortedness of a single element is extraneous. + +This could be supported by adding a flag to each "sparse" and "doubly compressed" dimension. + +#### Balanced CSF + +This is an extension to "doubly compressed" dimensions based on B-CSF in ["Load-Balanced Sparse MTTKRP on GPUs" by Israt Nisa, et al](https://arxiv.org/pdf/1904.03329.pdf). It allows indices in "doubly compressed" dimensions to be duplicated in order for subtrees to be more comparably sized. + +This could be supported by adding a flag to each "doubly compressed" dimension. + +#### Different sub-tree compressions + +Sometimes compression can be improved by using different compression schemes for different groups of indices. Examples: + +- HB-CSF: https://arxiv.org/pdf/1904.03329.pdf +- MM-CSF: https://par.nsf.gov/servlets/purl/10172913 + +This may be challenging or complicated to support. \ No newline at end of file diff --git a/design_docs/img/DC-DC-DC-S.svg b/design_docs/img/DC-DC-DC-S.svg new file mode 100644 index 0000000..3108232 --- /dev/null +++ b/design_docs/img/DC-DC-DC-S.svg @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + i0 + + i1 + + i2 + + i3 + p0 + p1 + p2 + + + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 2 + 1 + 0 + 0 + 2 + 2 + 4 + 1 + 0 + 3 + 5 + 1 + 1 + 1 + 0 + 3 + 4 + 1 + 2 + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/design_docs/img/S-C-DC-S.svg b/design_docs/img/S-C-DC-S.svg new file mode 100644 index 0000000..bd3279c --- /dev/null +++ b/design_docs/img/S-C-DC-S.svg @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + i0 + + i1 + + i2 + + i3 + + 0 + + 1 + + 1 + p0 + p1 + p2 + + + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 2 + 2 + 0 + 0 + 0 + 2 + 2 + 4 + 1 + 0 + 1 + 0 + 3 + 3 + 5 + 3 + 1 + 1 + 0 + 4 + 4 + 1 + 2 + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spz_python/notebooks/Example_Rank4.ipynb b/spz_python/notebooks/Example_Rank4.ipynb index 1cb902a..c2f760e 100644 --- a/spz_python/notebooks/Example_Rank4.ipynb +++ b/spz_python/notebooks/Example_Rank4.ipynb @@ -312,7 +312,90 @@ " [0, 0, 0, 0, 1, 1, 1, 1],\n", " [1, 2, 0, 2, 0, 0, 1, 2],\n", "]\n", - "SPZ(indices)" + "sp = SPZ(indices)\n", + "# Display as SVG diagram\n", + "sp" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "833d4e98", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[array([0, 1]),\n", + " array([0, 1, 1]),\n", + " array([0, 0, 1, 1]),\n", + " array([1, 2, 0, 2, 0, 0, 1, 2])]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sp.indices" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e3399807", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[array([0, 2, 3]), array([0, 1, 3, 4]), array([0, 2, 4, 5, 8])]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sp.pointers" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e0bdf4f2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ".---. .---. .---. .---.\n", + "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`---' `---' `---' `---'\n", + "=============================\n", + ".--. 0 .--. 0 .--. 0 .--.\n", + "|0 |-+--|0 |----|0 |-+--|1 |\n", + "`--' | `--' 1 `--' `--|2 |\n", + " | .--. .--. 2 |--|\n", + " `--|1 |-+--|0 |-+--|0 |\n", + " 2 `--' | `--' `--|2 |\n", + " | .--. 4 |--|\n", + " `--|1 |----|0 |\n", + " 3 `--' 5 `--'\n", + ".--. .--. .--. .--.\n", + "|1 |----|1 |----|1 |-+--|0 |\n", + "`--' 3 `--' 4 `--' |--|1 |\n", + " `--|2 |\n", + " 8 `--'\n" + ] + } + ], + "source": [ + "# Can also display as ASCII diagram\n", + "print(sp)" ] }, { @@ -320,51 +403,82 @@ "id": "1092fc4b", "metadata": {}, "source": [ - "This forms a tree-like structure where the first dimension is on the left and last dimension is on the right.\n", + "This diagram forms a tree-like structure where the first dimension is on the left and last dimension is on the right.\n", "\n", "Index values are in boxes, and pointer values are next to edges.\n", "\n", "We can choose how each dimension is compressed:\n", "- **`S`, \"sparse\"**: like COO; indices are \"aligned\" to the following dimension indices or values.\n", " - Uses: `indices_i`\n", - "- **`C`, \"compressed sparse\"**: like CSR; fast looking by index into pointers to the next dimension.\n", + "- **`C`, \"compressed sparse\"**: like CSR; fast lookup by index into pointers to the next dimension.\n", " - Uses: `pointers_i`\n", + " - Makes `pointers_{i-1}` unnecessary\n", "- **`DC`, \"doubly compressed sparse\"**: like DCSR; store unique index values and pointers to the next dimension.\n", " - Uses: `pointers_i`, `indices_i`\n", "\n", - "Currently, the final dimension must be sparse, `S`.\n", + "Currently, the final dimension must be sparse, **`S`**.\n", "\n", "Hence, describing the structures of **CSR, CSC, DCSR, and DCSC** give us... CSR, CSC, DCSR, and DCSC (let's address the final \"R\" and \"C\" later)." ] }, { "cell_type": "code", - "execution_count": 2, - "id": "b681b6e6", + "execution_count": 5, + "id": "b8253a23", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[doubly_compressed, doubly_compressed, doubly_compressed, sparse]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sp.structure" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ec61aa11", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'DC-DC-DC-S'" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "sparsities = [\"S\", \"C\", \"DC\"]" + "sp.abbreviation" ] }, { "cell_type": "markdown", - "id": "eec6fad5", + "id": "51842351", "metadata": {}, "source": [ - "## Display all sparse structures, `shape=(2, 2, 2, 3)`\n", - "\n", - "Hyphonated boxes indicate indices that don't need stored.\n", + "## Display all sparse structures that are independent of shape\n", "\n", - "Hyphonated connecting lines indicate pointers that don't need stored.\n", + "This includes sparse structures that have no \"compressed sparse\" (**`C`**) dimensions.\n", "\n", - "For compressed sparse dimensions, `C`, some repeated pointer values may be skipped if there is no room" + "Hyphonated connecting lines indicate pointers that don't need stored." ] }, { "cell_type": "code", - "execution_count": 3, - "id": "c8e1d2a7", + "execution_count": 7, + "id": "232210ab", "metadata": { "scrolled": false }, @@ -372,7 +486,7 @@ { "data": { "text/markdown": [ - "# S-S-S-S" + "# `S-S-S-S`" ], "text/plain": [ "" @@ -882,7 +996,7 @@ { "data": { "text/markdown": [ - "# S-S-C-S" + "# `S-S-DC-S`" ], "text/plain": [ "" @@ -894,7 +1008,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .~~~. .---.\n", - "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`---' `---' `~~~' `---'\n", + ".---. .---. .---. .---.\n", + "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`---' `---' `---' `---'\n", "=============================\n", - ".--. 0 .--. 0 .~~. 0 .--.\n", - "|0 |~~~~|0 |~~~~┊0 ┊-+--|1 |\n", - "`--' 1 `--' 1 `~~' `--|2 |\n", - ".--. .--. .~~. 2 `--'\n", - "|0 |~~~~|0 |~~~~┊1 ┊)\n", - "`--' 2 `--' 2 `~~'\n", - ".--. .--. .~~. 2 .--.\n", - "|0 |~~~~|1 |~~~~┊0 ┊-+--|0 |\n", - "`--' 3 `--' 3 `~~' `--|2 |\n", - ".--. .--. .~~. 4 |--|\n", - "|0 |~~~~|1 |~~~~┊1 ┊----|0 |\n", - "`--' 4 `--' 4 `~~' 5 `--'\n", - ".--. .--. .~~.\n", - "|1 |~~~~|1 |~~~~┊0 ┊)\n", - "`--' 5 `--' 5 `~~'\n", - ".--. .--. .~~. 5 .--.\n", - "|1 |~~~~|1 |~~~~┊1 ┊-+--|0 |\n", - "`--' 6 `--' 6 `~~' |--|1 |\n", + ".--. 0 .--. 0 .--. 0 .--.\n", + "|0 |~~~~|0 |~~~~|0 |-+--|1 |\n", + "`--' 1 `--' 1 `--' `--|2 |\n", + ".--. .--. .--. 2 |--|\n", + "|0 |~~~~|1 |~~~~|0 |-+--|0 |\n", + "`--' 2 `--' 2 `--' `--|2 |\n", + ".--. .--. .--. 4 |--|\n", + "|0 |~~~~|1 |~~~~|1 |----|0 |\n", + "`--' 3 `--' 3 `--' 5 `--'\n", + ".--. .--. .--. .--.\n", + "|1 |~~~~|1 |~~~~|1 |-+--|0 |\n", + "`--' 4 `--' 4 `--' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] @@ -1279,7 +1316,7 @@ { "data": { "text/markdown": [ - "# S-S-DC-S" + "# `S-DC-S-S`" ], "text/plain": [ "" @@ -1291,7 +1328,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " - ], - "text/plain": [ - ".---. .---. .---. .---.\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "" + ], + "text/plain": [ + ".---. .---. .---. .---.\n", "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", "`---' `---' `---' `---'\n", "=============================\n", ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |~~~~|0 |~~~~|0 |-+--|1 |\n", - "`--' 1 `--' 1 `--' `--|2 |\n", - ".--. .--. .--. 2 |--|\n", - "|0 |~~~~|1 |~~~~|0 |-+--|0 |\n", - "`--' 2 `--' 2 `--' `--|2 |\n", - ".--. .--. .--. 4 |--|\n", - "|0 |~~~~|1 |~~~~|1 |----|0 |\n", - "`--' 3 `--' 3 `--' 5 `--'\n", + "|0 |~~~~|0 |-+--|0 |~~~~|1 |\n", + "`--' 1 `--' | `--' 1 `--'\n", + " | .--. .--.\n", + " `--|0 |~~~~|2 |\n", + " 2 `--' 2 `--'\n", ".--. .--. .--. .--.\n", - "|1 |~~~~|1 |~~~~|1 |-+--|0 |\n", - "`--' 4 `--' 4 `--' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" + "|0 |~~~~|1 |-+--|0 |~~~~|0 |\n", + "`--' 2 `--' | `--' 3 `--'\n", + " | .--. .--.\n", + " |--|0 |~~~~|2 |\n", + " | `--' 4 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|0 |\n", + " 5 `--' 5 `--'\n", + ".--. .--. .--. .--.\n", + "|1 |~~~~|1 |-+--|1 |~~~~|0 |\n", + "`--' 3 `--' | `--' 6 `--'\n", + " | .--. .--.\n", + " |--|1 |~~~~|1 |\n", + " | `--' 7 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|2 |\n", + " 8 `--' 8 `--'" ] }, "metadata": {}, @@ -1599,7 +1717,7 @@ { "data": { "text/markdown": [ - "# S-C-S-S" + "# `S-DC-DC-S`" ], "text/plain": [ "" @@ -1611,7 +1729,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .~~~. .---. .---.\n", - "|i0 |p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", - "`---' `~~~' `---' `---'\n", + ".---. .---. .---. .---.\n", + "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`---' `---' `---' `---'\n", "=============================\n", - ".--. 0 .~~. 0 .--. 0 .--.\n", - "|0 |~~~~┊0 ┊-+--|0 |~~~~|1 |\n", - "`--' 1 `~~' | `--' 1 `--'\n", - " | .--. .--.\n", - " `--|0 |~~~~|2 |\n", - " 2 `--' 2 `--'\n", - ".--. .~~. .--. .--.\n", - "|0 |~~~~┊1 ┊-+--|0 |~~~~|0 |\n", - "`--' 2 `~~' | `--' 3 `--'\n", - ".--. .~~. | .--. .--.\n", - "|1 |~~~~┊0 ┊)|--|0 |~~~~|2 |\n", - "`--' 3 `~~' | `--' 4 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|0 |\n", - " 5 `--' 5 `--'\n", - ".--. .~~. 5 .--. .--.\n", - "|1 |~~~~┊1 ┊-+--|1 |~~~~|0 |\n", - "`--' 4 `~~' | `--' 6 `--'\n", - " | .--. .--.\n", - " |--|1 |~~~~|1 |\n", - " | `--' 7 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|2 |\n", - " 8 `--' 8 `--'" + ".--. 0 .--. 0 .--. 0 .--.\n", + "|0 |~~~~|0 |----|0 |-+--|1 |\n", + "`--' 1 `--' 1 `--' `--|2 |\n", + ".--. .--. .--. 2 |--|\n", + "|0 |~~~~|1 |-+--|0 |-+--|0 |\n", + "`--' 2 `--' | `--' `--|2 |\n", + " | .--. 4 |--|\n", + " `--|1 |----|0 |\n", + " 3 `--' 5 `--'\n", + ".--. .--. .--. .--.\n", + "|1 |~~~~|1 |----|1 |-+--|0 |\n", + "`--' 3 `--' 4 `--' |--|1 |\n", + " `--|2 |\n", + " 8 `--'" ] }, "metadata": {}, @@ -2015,7 +2018,7 @@ { "data": { "text/markdown": [ - "# S-C-C-S" + "# `DC-S-S-S`" ], "text/plain": [ "" @@ -2027,7 +2030,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .~~~. .~~~. .---.\n", - "|i0 |p0 ┊i1 ┊p1 ┊i2 ┊p2 |i3 |\n", - "`---' `~~~' `~~~' `---'\n", + ".---. .---. .---. .---.\n", + "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`---' `---' `---' `---'\n", "=============================\n", - ".--. 0 .~~. 0 .~~. 0 .--.\n", - "|0 |~~~~┊0 ┊~+~~┊0 ┊-+--|1 |\n", - "`--' 1 `~~' ┊ `~~' `--|2 |\n", - " ┊ .~~. 2 `--'\n", - " `~~┊1 ┊)\n", - " 2 `~~'\n", - ".--. .~~. .~~. 2 .--.\n", - "|0 |~~~~┊1 ┊~+~~┊0 ┊-+--|0 |\n", - "`--' 2 `~~' ┊ `~~' `--|2 |\n", - " ┊ .~~. 4 |--|\n", - " `~~┊1 ┊----|0 |\n", - " 4 `~~' 5 `--'\n", - ".--. .~~. .~~.\n", - "|1 |~~~~┊0 ┊~+~~┊0 ┊)\n", - "`--' 3 `~~' ┊ `~~'\n", - " ┊ .~~. 5\n", - " `~~┊1 ┊)\n", - " 6 `~~'\n", - ".--. .~~. .~~. 5\n", - "|1 |~~~~┊1 ┊~+~~┊0 ┊)\n", - "`--' 4 `~~' ┊ `~~'\n", - " ┊ .~~. 5 .--.\n", - " `~~┊1 ┊-+--|0 |\n", - " 8 `~~' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" + ".--. 0 .--. 0 .--. 0 .--.\n", + "|0 |-+--|0 |~~~~|0 |~~~~|1 |\n", + "`--' | `--' 1 `--' 1 `--'\n", + " | .--. .--. .--.\n", + " |--|0 |~~~~|0 |~~~~|2 |\n", + " | `--' 2 `--' 2 `--'\n", + " | .--. .--. .--.\n", + " |--|1 |~~~~|0 |~~~~|0 |\n", + " | `--' 3 `--' 3 `--'\n", + " | .--. .--. .--.\n", + " |--|1 |~~~~|0 |~~~~|2 |\n", + " | `--' 4 `--' 4 `--'\n", + " | .--. .--. .--.\n", + " `--|1 |~~~~|1 |~~~~|0 |\n", + " 5 `--' 5 `--' 5 `--'\n", + ".--. .--. .--. .--.\n", + "|1 |-+--|1 |~~~~|1 |~~~~|0 |\n", + "`--' | `--' 6 `--' 6 `--'\n", + " | .--. .--. .--.\n", + " |--|1 |~~~~|1 |~~~~|1 |\n", + " | `--' 7 `--' 7 `--'\n", + " | .--. .--. .--.\n", + " `--|1 |~~~~|1 |~~~~|2 |\n", + " 8 `--' 8 `--' 8 `--'" ] }, "metadata": {}, @@ -2396,7 +2460,7 @@ { "data": { "text/markdown": [ - "# S-C-DC-S" + "# `DC-S-DC-S`" ], "text/plain": [ "" @@ -2501,18 +2565,12 @@ " \n", " \n", " i0\n", - " \n", + " \n", " i1\n", " \n", " i2\n", " \n", " i3\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 1\n", " p0\n", " p1\n", " p2\n", @@ -2522,27 +2580,26 @@ " 0\n", " 0\n", " 0\n", + " 0\n", " 0\n", " 1\n", - " 1\n", " 1\n", " 2\n", " 2\n", - " 0\n", + " 1\n", " 0\n", " 0\n", - " 2\n", + " 2\n", " 2\n", " 4\n", - " 1\n", - " 0\n", + " 1\n", " 1\n", " 0\n", " 3\n", " 3\n", " 5\n", - " 3\n", " 1\n", + " 1\n", " 1\n", " 0\n", " 4\n", @@ -2556,18 +2613,26 @@ " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2585,13 +2650,21 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2599,73 +2672,50 @@ " \n", " \n", " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2686,22 +2736,22 @@ "" ], "text/plain": [ - ".---. .~~~. .---. .---.\n", - "|i0 |p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", - "`---' `~~~' `---' `---'\n", + ".---. .---. .---. .---.\n", + "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`---' `---' `---' `---'\n", "=============================\n", - ".--. 0 .~~. 0 .--. 0 .--.\n", - "|0 |~~~~┊0 ┊----|0 |-+--|1 |\n", - "`--' 1 `~~' 1 `--' `--|2 |\n", - ".--. .~~. .--. 2 |--|\n", - "|0 |~~~~┊1 ┊-+--|0 |-+--|0 |\n", - "`--' 2 `~~' | `--' `--|2 |\n", - ".--. .~~. | .--. 4 |--|\n", - "|1 |~~~~┊0 ┊)`--|1 |----|0 |\n", - "`--' 3 `~~' 3 `--' 5 `--'\n", - ".--. .~~. 3 .--. .--.\n", - "|1 |~~~~┊1 ┊----|1 |-+--|0 |\n", - "`--' 4 `~~' 4 `--' |--|1 |\n", + ".--. 0 .--. 0 .--. 0 .--.\n", + "|0 |-+--|0 |~~~~|0 |-+--|1 |\n", + "`--' | `--' 1 `--' `--|2 |\n", + " | .--. .--. 2 |--|\n", + " |--|1 |~~~~|0 |-+--|0 |\n", + " | `--' 2 `--' `--|2 |\n", + " | .--. .--. 4 |--|\n", + " `--|1 |~~~~|1 |----|0 |\n", + " 3 `--' 3 `--' 5 `--'\n", + ".--. .--. .--. .--.\n", + "|1 |----|1 |~~~~|1 |-+--|0 |\n", + "`--' 4 `--' 4 `--' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] @@ -2712,7 +2762,7 @@ { "data": { "text/markdown": [ - "# S-DC-S-S" + "# `DC-DC-S-S`" ], "text/plain": [ "" @@ -2835,13 +2885,11 @@ " 0\n", " 0\n", " 1\n", - " 1\n", " 1\n", " 0\n", " 2\n", " 2\n", " 2\n", - " 0\n", " 1\n", " 0\n", " 0\n", @@ -2881,10 +2929,12 @@ " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -2923,22 +2973,12 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3013,7 +3053,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3082,14 +3122,14 @@ "`---' `---' `---' `---'\n", "=============================\n", ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |~~~~|0 |-+--|0 |~~~~|1 |\n", - "`--' 1 `--' | `--' 1 `--'\n", - " | .--. .--.\n", - " `--|0 |~~~~|2 |\n", - " 2 `--' 2 `--'\n", - ".--. .--. .--. .--.\n", - "|0 |~~~~|1 |-+--|0 |~~~~|0 |\n", - "`--' 2 `--' | `--' 3 `--'\n", + "|0 |-+--|0 |-+--|0 |~~~~|1 |\n", + "`--' | `--' | `--' 1 `--'\n", + " | | .--. .--.\n", + " | `--|0 |~~~~|2 |\n", + " | 2 `--' 2 `--'\n", + " | .--. .--. .--.\n", + " `--|1 |-+--|0 |~~~~|0 |\n", + " 2 `--' | `--' 3 `--'\n", " | .--. .--.\n", " |--|0 |~~~~|2 |\n", " | `--' 4 `--'\n", @@ -3097,7 +3137,7 @@ " `--|1 |~~~~|0 |\n", " 5 `--' 5 `--'\n", ".--. .--. .--. .--.\n", - "|1 |~~~~|1 |-+--|1 |~~~~|0 |\n", + "|1 |----|1 |-+--|1 |~~~~|0 |\n", "`--' 3 `--' | `--' 6 `--'\n", " | .--. .--.\n", " |--|1 |~~~~|1 |\n", @@ -3113,7 +3153,7 @@ { "data": { "text/markdown": [ - "# S-DC-C-S" + "# `DC-DC-DC-S`" ], "text/plain": [ "" @@ -3125,7 +3165,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .~~~. .---.\n", - "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`---' `---' `~~~' `---'\n", + ".---. .---. .---. .---.\n", + "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`---' `---' `---' `---'\n", "=============================\n", - ".--. 0 .--. 0 .~~. 0 .--.\n", - "|0 |~~~~|0 |~+~~┊0 ┊-+--|1 |\n", - "`--' 1 `--' ┊ `~~' `--|2 |\n", - " ┊ .~~. 2 `--'\n", - " `~~┊1 ┊)\n", - " 2 `~~'\n", - ".--. .--. .~~. 2 .--.\n", - "|0 |~~~~|1 |~+~~┊0 ┊-+--|0 |\n", - "`--' 2 `--' ┊ `~~' `--|2 |\n", - " ┊ .~~. 4 |--|\n", - " `~~┊1 ┊----|0 |\n", - " 4 `~~' 5 `--'\n", - ".--. .--. .~~.\n", - "|1 |~~~~|1 |~+~~┊0 ┊)\n", - "`--' 3 `--' ┊ `~~'\n", - " ┊ .~~. 5 .--.\n", - " `~~┊1 ┊-+--|0 |\n", - " 6 `~~' |--|1 |\n", + ".--. 0 .--. 0 .--. 0 .--.\n", + "|0 |-+--|0 |----|0 |-+--|1 |\n", + "`--' | `--' 1 `--' `--|2 |\n", + " | .--. .--. 2 |--|\n", + " `--|1 |-+--|0 |-+--|0 |\n", + " 2 `--' | `--' `--|2 |\n", + " | .--. 4 |--|\n", + " `--|1 |----|0 |\n", + " 3 `--' 5 `--'\n", + ".--. .--. .--. .--.\n", + "|1 |----|1 |----|1 |-+--|0 |\n", + "`--' 3 `--' 4 `--' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] }, "metadata": {}, "output_type": "display_data" - }, + } + ], + "source": [ + "sparsities = [\"S\", \"DC\"]\n", + "for sparsity in itertools.product(sparsities, sparsities, sparsities, [\"S\"]):\n", + " structure = \"-\".join(sparsity)\n", + " IPython.display.display(IPython.display.Markdown(f\"# `{structure}`\"))\n", + " IPython.display.display(SPZ(indices, structure=structure))" + ] + }, + { + "cell_type": "markdown", + "id": "eec6fad5", + "metadata": {}, + "source": [ + "## Display sparse structures, `shape=(2, 2, 2, 3)`\n", + "\n", + "Hyphonated boxes indicate indices that don't need stored.\n", + "\n", + "For compressed sparse dimensions, `C`, some repeated pointer values may be skipped if there is no room" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "c8e1d2a7", + "metadata": { + "scrolled": false + }, + "outputs": [ { "data": { "text/markdown": [ - "# S-DC-DC-S" + "# S-S-C-S" ], "text/plain": [ "" @@ -3459,7 +3487,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + ".---. .---. .~~~. .---.\n", + "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`---' `---' `~~~' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |~~~~|0 |----|0 |-+--|1 |\n", - "`--' 1 `--' 1 `--' `--|2 |\n", - ".--. .--. .--. 2 |--|\n", - "|0 |~~~~|1 |-+--|0 |-+--|0 |\n", - "`--' 2 `--' | `--' `--|2 |\n", - " | .--. 4 |--|\n", - " `--|1 |----|0 |\n", - " 3 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |~~~~|1 |----|1 |-+--|0 |\n", - "`--' 3 `--' 4 `--' |--|1 |\n", + ".--. 0 .--. 0 .~~. 0 .--.\n", + "|0 |~~~~|0 |~~~~┊0 ┊-+--|1 |\n", + "`--' 1 `--' 1 `~~' `--|2 |\n", + ".--. .--. .~~. 2 `--'\n", + "|0 |~~~~|0 |~~~~┊1 ┊)\n", + "`--' 2 `--' 2 `~~'\n", + ".--. .--. .~~. 2 .--.\n", + "|0 |~~~~|1 |~~~~┊0 ┊-+--|0 |\n", + "`--' 3 `--' 3 `~~' `--|2 |\n", + ".--. .--. .~~. 4 |--|\n", + "|0 |~~~~|1 |~~~~┊1 ┊----|0 |\n", + "`--' 4 `--' 4 `~~' 5 `--'\n", + ".--. .--. .~~.\n", + "|1 |~~~~|1 |~~~~┊0 ┊)\n", + "`--' 5 `--' 5 `~~'\n", + ".--. .--. .~~. 5 .--.\n", + "|1 |~~~~|1 |~~~~┊1 ┊-+--|0 |\n", + "`--' 6 `--' 6 `~~' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] @@ -3748,7 +3872,7 @@ { "data": { "text/markdown": [ - "# C-S-S-S" + "# S-C-S-S" ], "text/plain": [ "" @@ -3851,18 +3975,20 @@ " \n", " \n", " \n", - " \n", + " \n", " i0\n", - " \n", + " \n", " i1\n", " \n", " i2\n", " \n", " i3\n", - " \n", - " 0\n", - " \n", - " 1\n", + " \n", + " 0\n", + " \n", + " 1\n", + " \n", + " 1\n", " p0\n", " p1\n", " p2\n", @@ -3871,69 +3997,66 @@ " 0\n", " 0\n", " 0\n", - " 0\n", + " 0\n", " 0\n", " 1\n", - " 1\n", + " 1\n", " 1\n", - " 0\n", " 0\n", " 2\n", " 2\n", " 2\n", - " 1\n", + " 0\n", " 0\n", " 0\n", - " 3\n", + " 2\n", " 3\n", - " 1\n", + " 1\n", + " 0\n", " 0\n", " 2\n", - " 4\n", + " 3\n", " 4\n", - " 1\n", " 1\n", " 0\n", - " 5\n", " 5\n", " 5\n", - " 1\n", + " 5\n", + " 1\n", " 1\n", " 0\n", - " 6\n", + " 4\n", " 6\n", - " 1\n", " 1\n", " 1\n", - " 7\n", " 7\n", - " 1\n", " 1\n", " 2\n", - " 8\n", " 8\n", " 8\n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -3943,21 +4066,12 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -3970,24 +4084,30 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -3997,21 +4117,12 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4024,21 +4135,12 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4053,26 +4155,54 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -4082,21 +4212,12 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4109,21 +4230,12 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4140,34 +4252,34 @@ "" ], "text/plain": [ - ".~~~. .---. .---. .---.\n", - "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`~~~' `---' `---' `---'\n", + ".---. .~~~. .---. .---.\n", + "|i0 |p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", + "`---' `~~~' `---' `---'\n", "=============================\n", - ".~~. 0 .--. 0 .--. 0 .--.\n", - "┊0 ┊-+--|0 |~~~~|0 |~~~~|1 |\n", - "`~~' | `--' 1 `--' 1 `--'\n", - " | .--. .--. .--.\n", - " |--|0 |~~~~|0 |~~~~|2 |\n", - " | `--' 2 `--' 2 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|0 |~~~~|0 |\n", - " | `--' 3 `--' 3 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|0 |~~~~|2 |\n", - " | `--' 4 `--' 4 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |~~~~|1 |~~~~|0 |\n", - " 5 `--' 5 `--' 5 `--'\n", - ".~~. .--. .--. .--.\n", - "┊1 ┊-+--|1 |~~~~|1 |~~~~|0 |\n", - "`~~' | `--' 6 `--' 6 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|1 |~~~~|1 |\n", - " | `--' 7 `--' 7 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |~~~~|1 |~~~~|2 |\n", - " 8 `--' 8 `--' 8 `--'" + ".--. 0 .~~. 0 .--. 0 .--.\n", + "|0 |~~~~┊0 ┊-+--|0 |~~~~|1 |\n", + "`--' 1 `~~' | `--' 1 `--'\n", + " | .--. .--.\n", + " `--|0 |~~~~|2 |\n", + " 2 `--' 2 `--'\n", + ".--. .~~. .--. .--.\n", + "|0 |~~~~┊1 ┊-+--|0 |~~~~|0 |\n", + "`--' 2 `~~' | `--' 3 `--'\n", + ".--. .~~. | .--. .--.\n", + "|1 |~~~~┊0 ┊)|--|0 |~~~~|2 |\n", + "`--' 3 `~~' | `--' 4 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|0 |\n", + " 5 `--' 5 `--'\n", + ".--. .~~. 5 .--. .--.\n", + "|1 |~~~~┊1 ┊-+--|1 |~~~~|0 |\n", + "`--' 4 `~~' | `--' 6 `--'\n", + " | .--. .--.\n", + " |--|1 |~~~~|1 |\n", + " | `--' 7 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|2 |\n", + " 8 `--' 8 `--'" ] }, "metadata": {}, @@ -4176,7 +4288,7 @@ { "data": { "text/markdown": [ - "# C-S-C-S" + "# S-C-C-S" ], "text/plain": [ "" @@ -4188,7 +4300,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".~~~. .---. .~~~. .---.\n", - "┊i0 ┊p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`~~~' `---' `~~~' `---'\n", + ".---. .~~~. .~~~. .---.\n", + "|i0 |p0 ┊i1 ┊p1 ┊i2 ┊p2 |i3 |\n", + "`---' `~~~' `~~~' `---'\n", "=============================\n", - ".~~. 0 .--. 0 .~~. 0 .--.\n", - "┊0 ┊-+--|0 |~~~~┊0 ┊-+--|1 |\n", - "`~~' | `--' 1 `~~' `--|2 |\n", - " | .--. .~~. 2 `--'\n", - " |--|0 |~~~~┊1 ┊)\n", - " | `--' 2 `~~'\n", - " | .--. .~~. 2 .--.\n", - " |--|1 |~~~~┊0 ┊-+--|0 |\n", - " | `--' 3 `~~' `--|2 |\n", - " | .--. .~~. 4 |--|\n", - " `--|1 |~~~~┊1 ┊----|0 |\n", - " 4 `--' 4 `~~' 5 `--'\n", - ".~~. .--. .~~.\n", - "┊1 ┊-+--|1 |~~~~┊0 ┊)\n", - "`~~' | `--' 5 `~~'\n", - " | .--. .~~. 5 .--.\n", - " `--|1 |~~~~┊1 ┊-+--|0 |\n", - " 6 `--' 6 `~~' |--|1 |\n", + ".--. 0 .~~. 0 .~~. 0 .--.\n", + "|0 |~~~~┊0 ┊~+~~┊0 ┊-+--|1 |\n", + "`--' 1 `~~' ┊ `~~' `--|2 |\n", + " ┊ .~~. 2 `--'\n", + " `~~┊1 ┊)\n", + " 2 `~~'\n", + ".--. .~~. .~~. 2 .--.\n", + "|0 |~~~~┊1 ┊~+~~┊0 ┊-+--|0 |\n", + "`--' 2 `~~' ┊ `~~' `--|2 |\n", + " ┊ .~~. 4 |--|\n", + " `~~┊1 ┊----|0 |\n", + " 4 `~~' 5 `--'\n", + ".--. .~~. .~~.\n", + "|1 |~~~~┊0 ┊~+~~┊0 ┊)\n", + "`--' 3 `~~' ┊ `~~'\n", + " ┊ .~~. 5\n", + " `~~┊1 ┊)\n", + " 6 `~~'\n", + ".--. .~~. .~~. 5\n", + "|1 |~~~~┊1 ┊~+~~┊0 ┊)\n", + "`--' 4 `~~' ┊ `~~'\n", + " ┊ .~~. 5 .--.\n", + " `~~┊1 ┊-+--|0 |\n", + " 8 `~~' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] @@ -4515,7 +4669,7 @@ { "data": { "text/markdown": [ - "# C-S-DC-S" + "# S-C-DC-S" ], "text/plain": [ "" @@ -4618,45 +4772,50 @@ " \n", " \n", " \n", - " \n", + " \n", " i0\n", - " \n", + " \n", " i1\n", " \n", " i2\n", " \n", " i3\n", - " \n", - " 0\n", - " \n", - " 1\n", - " p0\n", - " p1\n", - " p2\n", - " \n", - " \n", + " \n", + " 0\n", + " \n", + " 1\n", + " \n", + " 1\n", + " p0\n", + " p1\n", + " p2\n", + " \n", + " \n", " 0\n", " 0\n", " 0\n", - " 0\n", + " 0\n", " 0\n", " 1\n", + " 1\n", " 1\n", " 2\n", " 2\n", - " 1\n", + " 0\n", " 0\n", " 0\n", - " 2\n", + " 2\n", " 2\n", " 4\n", - " 1\n", + " 1\n", + " 0\n", " 1\n", " 0\n", " 3\n", " 3\n", " 5\n", - " 1\n", + " 3\n", + " 1\n", " 1\n", " 0\n", " 4\n", @@ -4665,23 +4824,23 @@ " 2\n", " 8\n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4699,21 +4858,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -4721,42 +4872,73 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -4777,22 +4959,22 @@ "" ], "text/plain": [ - ".~~~. .---. .---. .---.\n", - "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`~~~' `---' `---' `---'\n", + ".---. .~~~. .---. .---.\n", + "|i0 |p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", + "`---' `~~~' `---' `---'\n", "=============================\n", - ".~~. 0 .--. 0 .--. 0 .--.\n", - "┊0 ┊-+--|0 |~~~~|0 |-+--|1 |\n", - "`~~' | `--' 1 `--' `--|2 |\n", - " | .--. .--. 2 |--|\n", - " |--|1 |~~~~|0 |-+--|0 |\n", - " | `--' 2 `--' `--|2 |\n", - " | .--. .--. 4 |--|\n", - " `--|1 |~~~~|1 |----|0 |\n", - " 3 `--' 3 `--' 5 `--'\n", - ".~~. .--. .--. .--.\n", - "┊1 ┊----|1 |~~~~|1 |-+--|0 |\n", - "`~~' 4 `--' 4 `--' |--|1 |\n", + ".--. 0 .~~. 0 .--. 0 .--.\n", + "|0 |~~~~┊0 ┊----|0 |-+--|1 |\n", + "`--' 1 `~~' 1 `--' `--|2 |\n", + ".--. .~~. .--. 2 |--|\n", + "|0 |~~~~┊1 ┊-+--|0 |-+--|0 |\n", + "`--' 2 `~~' | `--' `--|2 |\n", + ".--. .~~. | .--. 4 |--|\n", + "|1 |~~~~┊0 ┊)`--|1 |----|0 |\n", + "`--' 3 `~~' 3 `--' 5 `--'\n", + ".--. .~~. 3 .--. .--.\n", + "|1 |~~~~┊1 ┊----|1 |-+--|0 |\n", + "`--' 4 `~~' 4 `--' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] @@ -4803,7 +4985,7 @@ { "data": { "text/markdown": [ - "# C-C-S-S" + "# S-DC-C-S" ], "text/plain": [ "" @@ -4815,7 +4997,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " - ], - "text/plain": [ - ".~~~. .~~~. .---. .---.\n", - "┊i0 ┊p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", - "`~~~' `~~~' `---' `---'\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "" + ], + "text/plain": [ + ".---. .---. .~~~. .---.\n", + "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`---' `---' `~~~' `---'\n", "=============================\n", - ".~~. 0 .~~. 0 .--. 0 .--.\n", - "┊0 ┊~+~~┊0 ┊-+--|0 |~~~~|1 |\n", - "`~~' ┊ `~~' | `--' 1 `--'\n", - " ┊ | .--. .--.\n", - " ┊ `--|0 |~~~~|2 |\n", - " ┊ 2 `--' 2 `--'\n", - " ┊ .~~. .--. .--.\n", - " `~~┊1 ┊-+--|0 |~~~~|0 |\n", - " 2 `~~' | `--' 3 `--'\n", - ".~~. .~~. | .--. .--.\n", - "┊1 ┊~+~~┊0 ┊)|--|0 |~~~~|2 |\n", - "`~~' ┊ `~~' | `--' 4 `--'\n", - " ┊ | .--. .--.\n", - " ┊ `--|1 |~~~~|0 |\n", - " ┊ 5 `--' 5 `--'\n", - " ┊ .~~. 5 .--. .--.\n", - " `~~┊1 ┊-+--|1 |~~~~|0 |\n", - " 4 `~~' | `--' 6 `--'\n", - " | .--. .--.\n", - " |--|1 |~~~~|1 |\n", - " | `--' 7 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|2 |\n", - " 8 `--' 8 `--'" + ".--. 0 .--. 0 .~~. 0 .--.\n", + "|0 |~~~~|0 |~+~~┊0 ┊-+--|1 |\n", + "`--' 1 `--' ┊ `~~' `--|2 |\n", + " ┊ .~~. 2 `--'\n", + " `~~┊1 ┊)\n", + " 2 `~~'\n", + ".--. .--. .~~. 2 .--.\n", + "|0 |~~~~|1 |~+~~┊0 ┊-+--|0 |\n", + "`--' 2 `--' ┊ `~~' `--|2 |\n", + " ┊ .~~. 4 |--|\n", + " `~~┊1 ┊----|0 |\n", + " 4 `~~' 5 `--'\n", + ".--. .--. .~~.\n", + "|1 |~~~~|1 |~+~~┊0 ┊)\n", + "`--' 3 `--' ┊ `~~'\n", + " ┊ .~~. 5 .--.\n", + " `~~┊1 ┊-+--|0 |\n", + " 6 `~~' |--|1 |\n", + " `--|2 |\n", + " 8 `--'" ] }, "metadata": {}, @@ -5185,7 +5319,7 @@ { "data": { "text/markdown": [ - "# C-C-C-S" + "# C-S-S-S" ], "text/plain": [ "" @@ -5197,7 +5331,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".~~~. .~~~. .~~~. .---.\n", - "┊i0 ┊p0 ┊i1 ┊p1 ┊i2 ┊p2 |i3 |\n", - "`~~~' `~~~' `~~~' `---'\n", + ".~~~. .---. .---. .---.\n", + "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`~~~' `---' `---' `---'\n", "=============================\n", - ".~~. 0 .~~. 0 .~~. 0 .--.\n", - "┊0 ┊~+~~┊0 ┊~+~~┊0 ┊-+--|1 |\n", - "`~~' ┊ `~~' ┊ `~~' `--|2 |\n", - " ┊ ┊ .~~. 2 `--'\n", - " ┊ `~~┊1 ┊)\n", - " ┊ 2 `~~'\n", - " ┊ .~~. .~~. 2 .--.\n", - " `~~┊1 ┊~+~~┊0 ┊-+--|0 |\n", - " 2 `~~' ┊ `~~' `--|2 |\n", - " ┊ .~~. 4 |--|\n", - " `~~┊1 ┊----|0 |\n", - " 4 `~~' 5 `--'\n", - ".~~. .~~. .~~.\n", - "┊1 ┊~+~~┊0 ┊~+~~┊0 ┊)\n", - "`~~' ┊ `~~' ┊ `~~'\n", - " ┊ ┊ .~~. 5\n", - " ┊ `~~┊1 ┊)\n", - " ┊ 6 `~~'\n", - " ┊ .~~. .~~. 5\n", - " `~~┊1 ┊~+~~┊0 ┊)\n", - " 4 `~~' ┊ `~~'\n", - " ┊ .~~. 5 .--.\n", - " `~~┊1 ┊-+--|0 |\n", - " 8 `~~' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" + ".~~. 0 .--. 0 .--. 0 .--.\n", + "┊0 ┊-+--|0 |~~~~|0 |~~~~|1 |\n", + "`~~' | `--' 1 `--' 1 `--'\n", + " | .--. .--. .--.\n", + " |--|0 |~~~~|0 |~~~~|2 |\n", + " | `--' 2 `--' 2 `--'\n", + " | .--. .--. .--.\n", + " |--|1 |~~~~|0 |~~~~|0 |\n", + " | `--' 3 `--' 3 `--'\n", + " | .--. .--. .--.\n", + " |--|1 |~~~~|0 |~~~~|2 |\n", + " | `--' 4 `--' 4 `--'\n", + " | .--. .--. .--.\n", + " `--|1 |~~~~|1 |~~~~|0 |\n", + " 5 `--' 5 `--' 5 `--'\n", + ".~~. .--. .--. .--.\n", + "┊1 ┊-+--|1 |~~~~|1 |~~~~|0 |\n", + "`~~' | `--' 6 `--' 6 `--'\n", + " | .--. .--. .--.\n", + " |--|1 |~~~~|1 |~~~~|1 |\n", + " | `--' 7 `--' 7 `--'\n", + " | .--. .--. .--.\n", + " `--|1 |~~~~|1 |~~~~|2 |\n", + " 8 `--' 8 `--' 8 `--'" ] }, "metadata": {}, @@ -5532,7 +5747,7 @@ { "data": { "text/markdown": [ - "# C-C-DC-S" + "# C-S-C-S" ], "text/plain": [ "" @@ -5544,7 +5759,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " - ], - "text/plain": [ - ".~~~. .~~~. .---. .---.\n", - "┊i0 ┊p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", - "`~~~' `~~~' `---' `---'\n", - "=============================\n", - ".~~. 0 .~~. 0 .--. 0 .--.\n", - "┊0 ┊~+~~┊0 ┊----|0 |-+--|1 |\n", - "`~~' ┊ `~~' 1 `--' `--|2 |\n", - " ┊ .~~. .--. 2 |--|\n", - " `~~┊1 ┊-+--|0 |-+--|0 |\n", - " 2 `~~' | `--' `--|2 |\n", - ".~~. .~~. | .--. 4 |--|\n", - "┊1 ┊~+~~┊0 ┊)`--|1 |----|0 |\n", - "`~~' ┊ `~~' 3 `--' 5 `--'\n", - " ┊ .~~. 3 .--. .--.\n", - " `~~┊1 ┊----|1 |-+--|0 |\n", - " 4 `~~' 4 `--' |--|1 |\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "" + ], + "text/plain": [ + ".~~~. .---. .~~~. .---.\n", + "┊i0 ┊p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`~~~' `---' `~~~' `---'\n", + "=============================\n", + ".~~. 0 .--. 0 .~~. 0 .--.\n", + "┊0 ┊-+--|0 |~~~~┊0 ┊-+--|1 |\n", + "`~~' | `--' 1 `~~' `--|2 |\n", + " | .--. .~~. 2 `--'\n", + " |--|0 |~~~~┊1 ┊)\n", + " | `--' 2 `~~'\n", + " | .--. .~~. 2 .--.\n", + " |--|1 |~~~~┊0 ┊-+--|0 |\n", + " | `--' 3 `~~' `--|2 |\n", + " | .--. .~~. 4 |--|\n", + " `--|1 |~~~~┊1 ┊----|0 |\n", + " 4 `--' 4 `~~' 5 `--'\n", + ".~~. .--. .~~.\n", + "┊1 ┊-+--|1 |~~~~┊0 ┊)\n", + "`~~' | `--' 5 `~~'\n", + " | .--. .~~. 5 .--.\n", + " `--|1 |~~~~┊1 ┊-+--|0 |\n", + " 6 `--' 6 `~~' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] @@ -5814,7 +6086,7 @@ { "data": { "text/markdown": [ - "# C-DC-S-S" + "# C-S-DC-S" ], "text/plain": [ "" @@ -5826,7 +6098,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], @@ -6160,29 +6353,19 @@ "`~~~' `---' `---' `---'\n", "=============================\n", ".~~. 0 .--. 0 .--. 0 .--.\n", - "┊0 ┊-+--|0 |-+--|0 |~~~~|1 |\n", - "`~~' | `--' | `--' 1 `--'\n", - " | | .--. .--.\n", - " | `--|0 |~~~~|2 |\n", - " | 2 `--' 2 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |-+--|0 |~~~~|0 |\n", - " 2 `--' | `--' 3 `--'\n", - " | .--. .--.\n", - " |--|0 |~~~~|2 |\n", - " | `--' 4 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|0 |\n", - " 5 `--' 5 `--'\n", + "┊0 ┊-+--|0 |~~~~|0 |-+--|1 |\n", + "`~~' | `--' 1 `--' `--|2 |\n", + " | .--. .--. 2 |--|\n", + " |--|1 |~~~~|0 |-+--|0 |\n", + " | `--' 2 `--' `--|2 |\n", + " | .--. .--. 4 |--|\n", + " `--|1 |~~~~|1 |----|0 |\n", + " 3 `--' 3 `--' 5 `--'\n", ".~~. .--. .--. .--.\n", - "┊1 ┊----|1 |-+--|1 |~~~~|0 |\n", - "`~~' 3 `--' | `--' 6 `--'\n", - " | .--. .--.\n", - " |--|1 |~~~~|1 |\n", - " | `--' 7 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|2 |\n", - " 8 `--' 8 `--'" + "┊1 ┊----|1 |~~~~|1 |-+--|0 |\n", + "`~~' 4 `--' 4 `--' |--|1 |\n", + " `--|2 |\n", + " 8 `--'" ] }, "metadata": {}, @@ -6191,7 +6374,7 @@ { "data": { "text/markdown": [ - "# C-DC-C-S" + "# C-C-S-S" ], "text/plain": [ "" @@ -6203,7 +6386,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".~~~. .---. .~~~. .---.\n", - "┊i0 ┊p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`~~~' `---' `~~~' `---'\n", + ".~~~. .~~~. .---. .---.\n", + "┊i0 ┊p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", + "`~~~' `~~~' `---' `---'\n", "=============================\n", - ".~~. 0 .--. 0 .~~. 0 .--.\n", - "┊0 ┊-+--|0 |~+~~┊0 ┊-+--|1 |\n", - "`~~' | `--' ┊ `~~' `--|2 |\n", - " | ┊ .~~. 2 `--'\n", - " | `~~┊1 ┊)\n", - " | 2 `~~'\n", - " | .--. .~~. 2 .--.\n", - " `--|1 |~+~~┊0 ┊-+--|0 |\n", - " 2 `--' ┊ `~~' `--|2 |\n", - " ┊ .~~. 4 |--|\n", - " `~~┊1 ┊----|0 |\n", - " 4 `~~' 5 `--'\n", - ".~~. .--. .~~.\n", - "┊1 ┊----|1 |~+~~┊0 ┊)\n", - "`~~' 3 `--' ┊ `~~'\n", - " ┊ .~~. 5 .--.\n", - " `~~┊1 ┊-+--|0 |\n", - " 6 `~~' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" + ".~~. 0 .~~. 0 .--. 0 .--.\n", + "┊0 ┊~+~~┊0 ┊-+--|0 |~~~~|1 |\n", + "`~~' ┊ `~~' | `--' 1 `--'\n", + " ┊ | .--. .--.\n", + " ┊ `--|0 |~~~~|2 |\n", + " ┊ 2 `--' 2 `--'\n", + " ┊ .~~. .--. .--.\n", + " `~~┊1 ┊-+--|0 |~~~~|0 |\n", + " 2 `~~' | `--' 3 `--'\n", + ".~~. .~~. | .--. .--.\n", + "┊1 ┊~+~~┊0 ┊)|--|0 |~~~~|2 |\n", + "`~~' ┊ `~~' | `--' 4 `--'\n", + " ┊ | .--. .--.\n", + " ┊ `--|1 |~~~~|0 |\n", + " ┊ 5 `--' 5 `--'\n", + " ┊ .~~. 5 .--. .--.\n", + " `~~┊1 ┊-+--|1 |~~~~|0 |\n", + " 4 `~~' | `--' 6 `--'\n", + " | .--. .--.\n", + " |--|1 |~~~~|1 |\n", + " | `--' 7 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|2 |\n", + " 8 `--' 8 `--'" ] }, "metadata": {}, @@ -6501,7 +6756,7 @@ { "data": { "text/markdown": [ - "# C-DC-DC-S" + "# C-C-C-S" ], "text/plain": [ "" @@ -6513,7 +6768,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".~~~. .---. .---. .---.\n", - "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`~~~' `---' `---' `---'\n", + ".~~~. .~~~. .~~~. .---.\n", + "┊i0 ┊p0 ┊i1 ┊p1 ┊i2 ┊p2 |i3 |\n", + "`~~~' `~~~' `~~~' `---'\n", "=============================\n", - ".~~. 0 .--. 0 .--. 0 .--.\n", - "┊0 ┊-+--|0 |----|0 |-+--|1 |\n", - "`~~' | `--' 1 `--' `--|2 |\n", - " | .--. .--. 2 |--|\n", - " `--|1 |-+--|0 |-+--|0 |\n", - " 2 `--' | `--' `--|2 |\n", - " | .--. 4 |--|\n", - " `--|1 |----|0 |\n", - " 3 `--' 5 `--'\n", - ".~~. .--. .--. .--.\n", - "┊1 ┊----|1 |----|1 |-+--|0 |\n", - "`~~' 3 `--' 4 `--' |--|1 |\n", + ".~~. 0 .~~. 0 .~~. 0 .--.\n", + "┊0 ┊~+~~┊0 ┊~+~~┊0 ┊-+--|1 |\n", + "`~~' ┊ `~~' ┊ `~~' `--|2 |\n", + " ┊ ┊ .~~. 2 `--'\n", + " ┊ `~~┊1 ┊)\n", + " ┊ 2 `~~'\n", + " ┊ .~~. .~~. 2 .--.\n", + " `~~┊1 ┊~+~~┊0 ┊-+--|0 |\n", + " 2 `~~' ┊ `~~' `--|2 |\n", + " ┊ .~~. 4 |--|\n", + " `~~┊1 ┊----|0 |\n", + " 4 `~~' 5 `--'\n", + ".~~. .~~. .~~.\n", + "┊1 ┊~+~~┊0 ┊~+~~┊0 ┊)\n", + "`~~' ┊ `~~' ┊ `~~'\n", + " ┊ ┊ .~~. 5\n", + " ┊ `~~┊1 ┊)\n", + " ┊ 6 `~~'\n", + " ┊ .~~. .~~. 5\n", + " `~~┊1 ┊~+~~┊0 ┊)\n", + " 4 `~~' ┊ `~~'\n", + " ┊ .~~. 5 .--.\n", + " `~~┊1 ┊-+--|0 |\n", + " 8 `~~' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] @@ -6780,7 +7103,7 @@ { "data": { "text/markdown": [ - "# DC-S-S-S" + "# C-C-DC-S" ], "text/plain": [ "" @@ -6792,7 +7115,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + ".~~~. .~~~. .---. .---.\n", + "┊i0 ┊p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", + "`~~~' `~~~' `---' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |-+--|0 |~~~~|0 |~~~~|1 |\n", - "`--' | `--' 1 `--' 1 `--'\n", - " | .--. .--. .--.\n", - " |--|0 |~~~~|0 |~~~~|2 |\n", - " | `--' 2 `--' 2 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|0 |~~~~|0 |\n", - " | `--' 3 `--' 3 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|0 |~~~~|2 |\n", - " | `--' 4 `--' 4 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |~~~~|1 |~~~~|0 |\n", - " 5 `--' 5 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |-+--|1 |~~~~|1 |~~~~|0 |\n", - "`--' | `--' 6 `--' 6 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|1 |~~~~|1 |\n", - " | `--' 7 `--' 7 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |~~~~|1 |~~~~|2 |\n", - " 8 `--' 8 `--' 8 `--'" + ".~~. 0 .~~. 0 .--. 0 .--.\n", + "┊0 ┊~+~~┊0 ┊----|0 |-+--|1 |\n", + "`~~' ┊ `~~' 1 `--' `--|2 |\n", + " ┊ .~~. .--. 2 |--|\n", + " `~~┊1 ┊-+--|0 |-+--|0 |\n", + " 2 `~~' | `--' `--|2 |\n", + ".~~. .~~. | .--. 4 |--|\n", + "┊1 ┊~+~~┊0 ┊)`--|1 |----|0 |\n", + "`~~' ┊ `~~' 3 `--' 5 `--'\n", + " ┊ .~~. 3 .--. .--.\n", + " `~~┊1 ┊----|1 |-+--|0 |\n", + " 4 `~~' 4 `--' |--|1 |\n", + " `--|2 |\n", + " 8 `--'" ] }, "metadata": {}, @@ -7222,7 +7385,7 @@ { "data": { "text/markdown": [ - "# DC-S-C-S" + "# C-DC-S-S" ], "text/plain": [ "" @@ -7234,7 +7397,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .~~~. .---.\n", - "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`---' `---' `~~~' `---'\n", + ".~~~. .---. .---. .---.\n", + "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`~~~' `---' `---' `---'\n", "=============================\n", - ".--. 0 .--. 0 .~~. 0 .--.\n", - "|0 |-+--|0 |~~~~┊0 ┊-+--|1 |\n", - "`--' | `--' 1 `~~' `--|2 |\n", - " | .--. .~~. 2 `--'\n", - " |--|0 |~~~~┊1 ┊)\n", - " | `--' 2 `~~'\n", - " | .--. .~~. 2 .--.\n", - " |--|1 |~~~~┊0 ┊-+--|0 |\n", - " | `--' 3 `~~' `--|2 |\n", - " | .--. .~~. 4 |--|\n", - " `--|1 |~~~~┊1 ┊----|0 |\n", - " 4 `--' 4 `~~' 5 `--'\n", - ".--. .--. .~~.\n", - "|1 |-+--|1 |~~~~┊0 ┊)\n", - "`--' | `--' 5 `~~'\n", - " | .--. .~~. 5 .--.\n", - " `--|1 |~~~~┊1 ┊-+--|0 |\n", - " 6 `--' 6 `~~' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" + ".~~. 0 .--. 0 .--. 0 .--.\n", + "┊0 ┊-+--|0 |-+--|0 |~~~~|1 |\n", + "`~~' | `--' | `--' 1 `--'\n", + " | | .--. .--.\n", + " | `--|0 |~~~~|2 |\n", + " | 2 `--' 2 `--'\n", + " | .--. .--. .--.\n", + " `--|1 |-+--|0 |~~~~|0 |\n", + " 2 `--' | `--' 3 `--'\n", + " | .--. .--.\n", + " |--|0 |~~~~|2 |\n", + " | `--' 4 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|0 |\n", + " 5 `--' 5 `--'\n", + ".~~. .--. .--. .--.\n", + "┊1 ┊----|1 |-+--|1 |~~~~|0 |\n", + "`~~' 3 `--' | `--' 6 `--'\n", + " | .--. .--.\n", + " |--|1 |~~~~|1 |\n", + " | `--' 7 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|2 |\n", + " 8 `--' 8 `--'" ] }, "metadata": {}, @@ -7575,7 +7762,7 @@ { "data": { "text/markdown": [ - "# DC-S-DC-S" + "# C-DC-C-S" ], "text/plain": [ "" @@ -7587,7 +7774,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + ".~~~. .---. .~~~. .---.\n", + "┊i0 ┊p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`~~~' `---' `~~~' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |-+--|0 |~~~~|0 |-+--|1 |\n", - "`--' | `--' 1 `--' `--|2 |\n", - " | .--. .--. 2 |--|\n", - " |--|1 |~~~~|0 |-+--|0 |\n", - " | `--' 2 `--' `--|2 |\n", - " | .--. .--. 4 |--|\n", - " `--|1 |~~~~|1 |----|0 |\n", - " 3 `--' 3 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |----|1 |~~~~|1 |-+--|0 |\n", - "`--' 4 `--' 4 `--' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/markdown": [ - "# DC-C-S-S" - ], - "text/plain": [ - "" + ".~~. 0 .--. 0 .~~. 0 .--.\n", + "┊0 ┊-+--|0 |~+~~┊0 ┊-+--|1 |\n", + "`~~' | `--' ┊ `~~' `--|2 |\n", + " | ┊ .~~. 2 `--'\n", + " | `~~┊1 ┊)\n", + " | 2 `~~'\n", + " | .--. .~~. 2 .--.\n", + " `--|1 |~+~~┊0 ┊-+--|0 |\n", + " 2 `--' ┊ `~~' `--|2 |\n", + " ┊ .~~. 4 |--|\n", + " `~~┊1 ┊----|0 |\n", + " 4 `~~' 5 `--'\n", + ".~~. .--. .~~.\n", + "┊1 ┊----|1 |~+~~┊0 ┊)\n", + "`~~' 3 `--' ┊ `~~'\n", + " ┊ .~~. 5 .--.\n", + " `~~┊1 ┊-+--|0 |\n", + " 6 `~~' |--|1 |\n", + " `--|2 |\n", + " 8 `--'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/markdown": [ + "# C-DC-DC-S" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -7889,7 +8084,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .~~~. .---. .---.\n", - "|i0 |p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", - "`---' `~~~' `---' `---'\n", + ".~~~. .---. .---. .---.\n", + "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`~~~' `---' `---' `---'\n", "=============================\n", - ".--. 0 .~~. 0 .--. 0 .--.\n", - "|0 |~+~~┊0 ┊-+--|0 |~~~~|1 |\n", - "`--' ┊ `~~' | `--' 1 `--'\n", - " ┊ | .--. .--.\n", - " ┊ `--|0 |~~~~|2 |\n", - " ┊ 2 `--' 2 `--'\n", - " ┊ .~~. .--. .--.\n", - " `~~┊1 ┊-+--|0 |~~~~|0 |\n", - " 2 `~~' | `--' 3 `--'\n", - ".--. .~~. | .--. .--.\n", - "|1 |~+~~┊0 ┊)|--|0 |~~~~|2 |\n", - "`--' ┊ `~~' | `--' 4 `--'\n", - " ┊ | .--. .--.\n", - " ┊ `--|1 |~~~~|0 |\n", - " ┊ 5 `--' 5 `--'\n", - " ┊ .~~. 5 .--. .--.\n", - " `~~┊1 ┊-+--|1 |~~~~|0 |\n", - " 4 `~~' | `--' 6 `--'\n", - " | .--. .--.\n", - " |--|1 |~~~~|1 |\n", - " | `--' 7 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|2 |\n", - " 8 `--' 8 `--'" + ".~~. 0 .--. 0 .--. 0 .--.\n", + "┊0 ┊-+--|0 |----|0 |-+--|1 |\n", + "`~~' | `--' 1 `--' `--|2 |\n", + " | .--. .--. 2 |--|\n", + " `--|1 |-+--|0 |-+--|0 |\n", + " 2 `--' | `--' `--|2 |\n", + " | .--. 4 |--|\n", + " `--|1 |----|0 |\n", + " 3 `--' 5 `--'\n", + ".~~. .--. .--. .--.\n", + "┊1 ┊----|1 |----|1 |-+--|0 |\n", + "`~~' 3 `--' 4 `--' |--|1 |\n", + " `--|2 |\n", + " 8 `--'" ] }, "metadata": {}, @@ -8273,7 +8351,7 @@ { "data": { "text/markdown": [ - "# DC-C-C-S" + "# DC-S-C-S" ], "text/plain": [ "" @@ -8285,7 +8363,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .~~~. .~~~. .---.\n", - "|i0 |p0 ┊i1 ┊p1 ┊i2 ┊p2 |i3 |\n", - "`---' `~~~' `~~~' `---'\n", + ".---. .---. .~~~. .---.\n", + "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`---' `---' `~~~' `---'\n", "=============================\n", - ".--. 0 .~~. 0 .~~. 0 .--.\n", - "|0 |~+~~┊0 ┊~+~~┊0 ┊-+--|1 |\n", - "`--' ┊ `~~' ┊ `~~' `--|2 |\n", - " ┊ ┊ .~~. 2 `--'\n", - " ┊ `~~┊1 ┊)\n", - " ┊ 2 `~~'\n", - " ┊ .~~. .~~. 2 .--.\n", - " `~~┊1 ┊~+~~┊0 ┊-+--|0 |\n", - " 2 `~~' ┊ `~~' `--|2 |\n", - " ┊ .~~. 4 |--|\n", - " `~~┊1 ┊----|0 |\n", - " 4 `~~' 5 `--'\n", - ".--. .~~. .~~.\n", - "|1 |~+~~┊0 ┊~+~~┊0 ┊)\n", - "`--' ┊ `~~' ┊ `~~'\n", - " ┊ ┊ .~~. 5\n", - " ┊ `~~┊1 ┊)\n", - " ┊ 6 `~~'\n", - " ┊ .~~. .~~. 5\n", - " `~~┊1 ┊~+~~┊0 ┊)\n", - " 4 `~~' ┊ `~~'\n", - " ┊ .~~. 5 .--.\n", - " `~~┊1 ┊-+--|0 |\n", - " 8 `~~' |--|1 |\n", + ".--. 0 .--. 0 .~~. 0 .--.\n", + "|0 |-+--|0 |~~~~┊0 ┊-+--|1 |\n", + "`--' | `--' 1 `~~' `--|2 |\n", + " | .--. .~~. 2 `--'\n", + " |--|0 |~~~~┊1 ┊)\n", + " | `--' 2 `~~'\n", + " | .--. .~~. 2 .--.\n", + " |--|1 |~~~~┊0 ┊-+--|0 |\n", + " | `--' 3 `~~' `--|2 |\n", + " | .--. .~~. 4 |--|\n", + " `--|1 |~~~~┊1 ┊----|0 |\n", + " 4 `--' 4 `~~' 5 `--'\n", + ".--. .--. .~~.\n", + "|1 |-+--|1 |~~~~┊0 ┊)\n", + "`--' | `--' 5 `~~'\n", + " | .--. .~~. 5 .--.\n", + " `--|1 |~~~~┊1 ┊-+--|0 |\n", + " 6 `--' 6 `~~' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] @@ -8634,7 +8704,7 @@ { "data": { "text/markdown": [ - "# DC-C-DC-S" + "# DC-C-S-S" ], "text/plain": [ "" @@ -8646,7 +8716,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], @@ -8909,19 +9069,29 @@ "`---' `~~~' `---' `---'\n", "=============================\n", ".--. 0 .~~. 0 .--. 0 .--.\n", - "|0 |~+~~┊0 ┊----|0 |-+--|1 |\n", - "`--' ┊ `~~' 1 `--' `--|2 |\n", - " ┊ .~~. .--. 2 |--|\n", - " `~~┊1 ┊-+--|0 |-+--|0 |\n", - " 2 `~~' | `--' `--|2 |\n", - ".--. .~~. | .--. 4 |--|\n", - "|1 |~+~~┊0 ┊)`--|1 |----|0 |\n", - "`--' ┊ `~~' 3 `--' 5 `--'\n", - " ┊ .~~. 3 .--. .--.\n", - " `~~┊1 ┊----|1 |-+--|0 |\n", - " 4 `~~' 4 `--' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" + "|0 |~+~~┊0 ┊-+--|0 |~~~~|1 |\n", + "`--' ┊ `~~' | `--' 1 `--'\n", + " ┊ | .--. .--.\n", + " ┊ `--|0 |~~~~|2 |\n", + " ┊ 2 `--' 2 `--'\n", + " ┊ .~~. .--. .--.\n", + " `~~┊1 ┊-+--|0 |~~~~|0 |\n", + " 2 `~~' | `--' 3 `--'\n", + ".--. .~~. | .--. .--.\n", + "|1 |~+~~┊0 ┊)|--|0 |~~~~|2 |\n", + "`--' ┊ `~~' | `--' 4 `--'\n", + " ┊ | .--. .--.\n", + " ┊ `--|1 |~~~~|0 |\n", + " ┊ 5 `--' 5 `--'\n", + " ┊ .~~. 5 .--. .--.\n", + " `~~┊1 ┊-+--|1 |~~~~|0 |\n", + " 4 `~~' | `--' 6 `--'\n", + " | .--. .--.\n", + " |--|1 |~~~~|1 |\n", + " | `--' 7 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|2 |\n", + " 8 `--' 8 `--'" ] }, "metadata": {}, @@ -8930,7 +9100,7 @@ { "data": { "text/markdown": [ - "# DC-DC-S-S" + "# DC-C-C-S" ], "text/plain": [ "" @@ -8942,7 +9112,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + ".---. .~~~. .~~~. .---.\n", + "|i0 |p0 ┊i1 ┊p1 ┊i2 ┊p2 |i3 |\n", + "`---' `~~~' `~~~' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |-+--|0 |-+--|0 |~~~~|1 |\n", - "`--' | `--' | `--' 1 `--'\n", - " | | .--. .--.\n", - " | `--|0 |~~~~|2 |\n", - " | 2 `--' 2 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |-+--|0 |~~~~|0 |\n", - " 2 `--' | `--' 3 `--'\n", - " | .--. .--.\n", - " |--|0 |~~~~|2 |\n", - " | `--' 4 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|0 |\n", - " 5 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |----|1 |-+--|1 |~~~~|0 |\n", - "`--' 3 `--' | `--' 6 `--'\n", - " | .--. .--.\n", - " |--|1 |~~~~|1 |\n", - " | `--' 7 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|2 |\n", - " 8 `--' 8 `--'" + ".--. 0 .~~. 0 .~~. 0 .--.\n", + "|0 |~+~~┊0 ┊~+~~┊0 ┊-+--|1 |\n", + "`--' ┊ `~~' ┊ `~~' `--|2 |\n", + " ┊ ┊ .~~. 2 `--'\n", + " ┊ `~~┊1 ┊)\n", + " ┊ 2 `~~'\n", + " ┊ .~~. .~~. 2 .--.\n", + " `~~┊1 ┊~+~~┊0 ┊-+--|0 |\n", + " 2 `~~' ┊ `~~' `--|2 |\n", + " ┊ .~~. 4 |--|\n", + " `~~┊1 ┊----|0 |\n", + " 4 `~~' 5 `--'\n", + ".--. .~~. .~~.\n", + "|1 |~+~~┊0 ┊~+~~┊0 ┊)\n", + "`--' ┊ `~~' ┊ `~~'\n", + " ┊ ┊ .~~. 5\n", + " ┊ `~~┊1 ┊)\n", + " ┊ 6 `~~'\n", + " ┊ .~~. .~~. 5\n", + " `~~┊1 ┊~+~~┊0 ┊)\n", + " 4 `~~' ┊ `~~'\n", + " ┊ .~~. 5 .--.\n", + " `~~┊1 ┊-+--|0 |\n", + " 8 `~~' |--|1 |\n", + " `--|2 |\n", + " 8 `--'" ] }, "metadata": {}, @@ -9321,7 +9461,7 @@ { "data": { "text/markdown": [ - "# DC-DC-C-S" + "# DC-C-DC-S" ], "text/plain": [ "" @@ -9333,7 +9473,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .~~~. .---.\n", - "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`---' `---' `~~~' `---'\n", + ".---. .~~~. .---. .---.\n", + "|i0 |p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", + "`---' `~~~' `---' `---'\n", "=============================\n", - ".--. 0 .--. 0 .~~. 0 .--.\n", - "|0 |-+--|0 |~+~~┊0 ┊-+--|1 |\n", - "`--' | `--' ┊ `~~' `--|2 |\n", - " | ┊ .~~. 2 `--'\n", - " | `~~┊1 ┊)\n", - " | 2 `~~'\n", - " | .--. .~~. 2 .--.\n", - " `--|1 |~+~~┊0 ┊-+--|0 |\n", - " 2 `--' ┊ `~~' `--|2 |\n", - " ┊ .~~. 4 |--|\n", - " `~~┊1 ┊----|0 |\n", - " 4 `~~' 5 `--'\n", - ".--. .--. .~~.\n", - "|1 |----|1 |~+~~┊0 ┊)\n", - "`--' 3 `--' ┊ `~~'\n", - " ┊ .~~. 5 .--.\n", - " `~~┊1 ┊-+--|0 |\n", - " 6 `~~' |--|1 |\n", + ".--. 0 .~~. 0 .--. 0 .--.\n", + "|0 |~+~~┊0 ┊----|0 |-+--|1 |\n", + "`--' ┊ `~~' 1 `--' `--|2 |\n", + " ┊ .~~. .--. 2 |--|\n", + " `~~┊1 ┊-+--|0 |-+--|0 |\n", + " 2 `~~' | `--' `--|2 |\n", + ".--. .~~. | .--. 4 |--|\n", + "|1 |~+~~┊0 ┊)`--|1 |----|0 |\n", + "`--' ┊ `~~' 3 `--' 5 `--'\n", + " ┊ .~~. 3 .--. .--.\n", + " `~~┊1 ┊----|1 |-+--|0 |\n", + " 4 `~~' 4 `--' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] @@ -9645,7 +9757,7 @@ { "data": { "text/markdown": [ - "# DC-DC-DC-S" + "# DC-DC-C-S" ], "text/plain": [ "" @@ -9657,7 +9769,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " - ], - "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "" + ], + "text/plain": [ + ".---. .---. .~~~. .---.\n", + "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`---' `---' `~~~' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |-+--|0 |----|0 |-+--|1 |\n", - "`--' | `--' 1 `--' `--|2 |\n", - " | .--. .--. 2 |--|\n", - " `--|1 |-+--|0 |-+--|0 |\n", - " 2 `--' | `--' `--|2 |\n", - " | .--. 4 |--|\n", - " `--|1 |----|0 |\n", - " 3 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |----|1 |----|1 |-+--|0 |\n", - "`--' 3 `--' 4 `--' |--|1 |\n", + ".--. 0 .--. 0 .~~. 0 .--.\n", + "|0 |-+--|0 |~+~~┊0 ┊-+--|1 |\n", + "`--' | `--' ┊ `~~' `--|2 |\n", + " | ┊ .~~. 2 `--'\n", + " | `~~┊1 ┊)\n", + " | 2 `~~'\n", + " | .--. .~~. 2 .--.\n", + " `--|1 |~+~~┊0 ┊-+--|0 |\n", + " 2 `--' ┊ `~~' `--|2 |\n", + " ┊ .~~. 4 |--|\n", + " `~~┊1 ┊----|0 |\n", + " 4 `~~' 5 `--'\n", + ".--. .--. .~~.\n", + "|1 |----|1 |~+~~┊0 ┊)\n", + "`--' 3 `--' ┊ `~~'\n", + " ┊ .~~. 5 .--.\n", + " `~~┊1 ┊-+--|0 |\n", + " 6 `~~' |--|1 |\n", " `--|2 |\n", " 8 `--'" ] @@ -9937,7 +10080,10 @@ } ], "source": [ + "sparsities = [\"S\", \"C\", \"DC\"]\n", "for sparsity in itertools.product(sparsities, sparsities, sparsities, [\"S\"]):\n", + " if \"C\" not in sparsity:\n", + " continue\n", " structure = \"-\".join(sparsity)\n", " IPython.display.display(IPython.display.Markdown(f\"# {structure}\"))\n", " IPython.display.display(SPZ(indices, shape=(2, 2, 2, 3), structure=structure))" @@ -9948,12 +10094,12 @@ "id": "1131a918", "metadata": {}, "source": [ - "## Display all sparse structures, `shape=(3, 3, 3, 3)`" + "## Display sparse structures, `shape=(3, 3, 3, 3)`" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 9, "id": "95577c70", "metadata": { "scrolled": false @@ -9962,7 +10108,7 @@ { "data": { "text/markdown": [ - "# S-S-S-S" + "# S-S-C-S" ], "text/plain": [ "" @@ -9974,7 +10120,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + ".---. .---. .~~~. .---.\n", + "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`---' `---' `~~~' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |~~~~|0 |~~~~|0 |~~~~|1 |\n", - "`--' 1 `--' 1 `--' 1 `--'\n", - ".--. .--. .--. .--.\n", - "|0 |~~~~|0 |~~~~|0 |~~~~|2 |\n", - "`--' 2 `--' 2 `--' 2 `--'\n", - ".--. .--. .--. .--.\n", - "|0 |~~~~|1 |~~~~|0 |~~~~|0 |\n", - "`--' 3 `--' 3 `--' 3 `--'\n", - ".--. .--. .--. .--.\n", - "|0 |~~~~|1 |~~~~|0 |~~~~|2 |\n", - "`--' 4 `--' 4 `--' 4 `--'\n", - ".--. .--. .--. .--.\n", - "|0 |~~~~|1 |~~~~|1 |~~~~|0 |\n", - "`--' 5 `--' 5 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |~~~~|1 |~~~~|1 |~~~~|0 |\n", - "`--' 6 `--' 6 `--' 6 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |~~~~|1 |~~~~|1 |~~~~|1 |\n", - "`--' 7 `--' 7 `--' 7 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |~~~~|1 |~~~~|1 |~~~~|2 |\n", - "`--' 8 `--' 8 `--' 8 `--'" + ".--. 0 .--. 0 .~~. 0 .--.\n", + "|0 |~~~~|0 |~~~~┊0 ┊-+--|1 |\n", + "`--' 1 `--' 1 `~~' `--|2 |\n", + ".--. .--. .~~. 2 `--'\n", + "|0 |~~~~|0 |~~~~┊1 ┊)\n", + "`--' 2 `--' 2 `~~'\n", + ".--. .--. .~~. 2\n", + "|0 |~~~~|0 |~~~~┊2 ┊)\n", + "`--' 3 `--' 3 `~~'\n", + ".--. .--. .~~. 2 .--.\n", + "|0 |~~~~|1 |~~~~┊0 ┊-+--|0 |\n", + "`--' 4 `--' 4 `~~' `--|2 |\n", + ".--. .--. .~~. 4 |--|\n", + "|0 |~~~~|1 |~~~~┊1 ┊----|0 |\n", + "`--' 5 `--' 5 `~~' 5 `--'\n", + ".--. .--. .~~.\n", + "|0 |~~~~|1 |~~~~┊2 ┊)\n", + "`--' 6 `--' 6 `~~'\n", + ".--. .--. .~~. 5\n", + "|1 |~~~~|1 |~~~~┊0 ┊)\n", + "`--' 7 `--' 7 `~~'\n", + ".--. .--. .~~. 5 .--.\n", + "|1 |~~~~|1 |~~~~┊1 ┊-+--|0 |\n", + "`--' 8 `--' 8 `~~' |--|1 |\n", + " `--|2 |\n", + ".--. .--. .~~. 8 `--'\n", + "|1 |~~~~|1 |~~~~┊2 ┊)\n", + "`--' 9 `--' 9 `~~' 8" ] }, "metadata": {}, @@ -10472,7 +10636,7 @@ { "data": { "text/markdown": [ - "# S-S-C-S" + "# S-C-S-S" ], "text/plain": [ "" @@ -10484,7 +10648,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .~~~. .---.\n", - "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`---' `---' `~~~' `---'\n", + ".---. .~~~. .---. .---.\n", + "|i0 |p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", + "`---' `~~~' `---' `---'\n", "=============================\n", - ".--. 0 .--. 0 .~~. 0 .--.\n", - "|0 |~~~~|0 |~~~~┊0 ┊-+--|1 |\n", - "`--' 1 `--' 1 `~~' `--|2 |\n", - ".--. .--. .~~. 2 `--'\n", - "|0 |~~~~|0 |~~~~┊1 ┊)\n", - "`--' 2 `--' 2 `~~'\n", - ".--. .--. .~~. 2\n", - "|0 |~~~~|0 |~~~~┊2 ┊)\n", - "`--' 3 `--' 3 `~~'\n", - ".--. .--. .~~. 2 .--.\n", - "|0 |~~~~|1 |~~~~┊0 ┊-+--|0 |\n", - "`--' 4 `--' 4 `~~' `--|2 |\n", - ".--. .--. .~~. 4 |--|\n", - "|0 |~~~~|1 |~~~~┊1 ┊----|0 |\n", - "`--' 5 `--' 5 `~~' 5 `--'\n", - ".--. .--. .~~.\n", - "|0 |~~~~|1 |~~~~┊2 ┊)\n", - "`--' 6 `--' 6 `~~'\n", - ".--. .--. .~~. 5\n", - "|1 |~~~~|1 |~~~~┊0 ┊)\n", - "`--' 7 `--' 7 `~~'\n", - ".--. .--. .~~. 5 .--.\n", - "|1 |~~~~|1 |~~~~┊1 ┊-+--|0 |\n", - "`--' 8 `--' 8 `~~' |--|1 |\n", - " `--|2 |\n", - ".--. .--. .~~. 8 `--'\n", - "|1 |~~~~|1 |~~~~┊2 ┊)\n", - "`--' 9 `--' 9 `~~' 8" + ".--. 0 .~~. 0 .--. 0 .--.\n", + "|0 |~~~~┊0 ┊-+--|0 |~~~~|1 |\n", + "`--' 1 `~~' | `--' 1 `--'\n", + " | .--. .--.\n", + " `--|0 |~~~~|2 |\n", + " 2 `--' 2 `--'\n", + ".--. .~~. .--. .--.\n", + "|0 |~~~~┊1 ┊-+--|0 |~~~~|0 |\n", + "`--' 2 `~~' | `--' 3 `--'\n", + ".--. .~~. | .--. .--.\n", + "|0 |~~~~┊2 ┊)|--|0 |~~~~|2 |\n", + "`--' 3 `~~' | `--' 4 `--'\n", + ".--. .~~. | .--. .--.\n", + "|1 |~~~~┊0 ┊)`--|1 |~~~~|0 |\n", + "`--' 4 `~~' 5 `--' 5 `--'\n", + ".--. .~~. 5 .--. .--.\n", + "|1 |~~~~┊1 ┊-+--|1 |~~~~|0 |\n", + "`--' 5 `~~' | `--' 6 `--'\n", + ".--. .~~. | .--. .--.\n", + "|1 |~~~~┊2 ┊)|--|1 |~~~~|1 |\n", + "`--' 6 `~~' | `--' 7 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|2 |\n", + " 8 `--' 8 `--'" ] }, "metadata": {}, @@ -11000,7 +11110,7 @@ { "data": { "text/markdown": [ - "# S-S-DC-S" + "# S-C-C-S" ], "text/plain": [ "" @@ -11012,7 +11122,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " - ], - "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", - "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |~~~~|0 |~~~~|0 |-+--|1 |\n", - "`--' 1 `--' 1 `--' `--|2 |\n", - ".--. .--. .--. 2 |--|\n", - "|0 |~~~~|1 |~~~~|0 |-+--|0 |\n", - "`--' 2 `--' 2 `--' `--|2 |\n", - ".--. .--. .--. 4 |--|\n", - "|0 |~~~~|1 |~~~~|1 |----|0 |\n", - "`--' 3 `--' 3 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |~~~~|1 |~~~~|1 |-+--|0 |\n", - "`--' 4 `--' 4 `--' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/markdown": [ - "# S-C-S-S" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " i0\n", - " \n", - " i1\n", - " \n", - " i2\n", - " \n", - " i3\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 1\n", - " p0\n", - " p1\n", - " p2\n", - " \n", - " \n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 1\n", - " 1\n", - " 1\n", - " 0\n", - " 2\n", - " 2\n", - " 2\n", - " 0\n", - " 0\n", - " 0\n", - " 2\n", - " 3\n", - " 0\n", - " 2\n", - " 0\n", - " 2\n", - " 3\n", - " 4\n", - " 1\n", - " 0\n", - " 1\n", - " 0\n", - " 4\n", - " 5\n", - " 5\n", - " 5\n", - " 1\n", - " 1\n", - " 0\n", - " 5\n", - " 6\n", - " 1\n", - " 2\n", - " 1\n", - " 1\n", - " 6\n", - " 7\n", - " 1\n", - " 2\n", - " 8\n", - " 8\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -11741,432 +11434,55 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - "" - ], - "text/plain": [ - ".---. .~~~. .---. .---.\n", - "|i0 |p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", - "`---' `~~~' `---' `---'\n", - "=============================\n", - ".--. 0 .~~. 0 .--. 0 .--.\n", - "|0 |~~~~┊0 ┊-+--|0 |~~~~|1 |\n", - "`--' 1 `~~' | `--' 1 `--'\n", - " | .--. .--.\n", - " `--|0 |~~~~|2 |\n", - " 2 `--' 2 `--'\n", - ".--. .~~. .--. .--.\n", - "|0 |~~~~┊1 ┊-+--|0 |~~~~|0 |\n", - "`--' 2 `~~' | `--' 3 `--'\n", - ".--. .~~. | .--. .--.\n", - "|0 |~~~~┊2 ┊)|--|0 |~~~~|2 |\n", - "`--' 3 `~~' | `--' 4 `--'\n", - ".--. .~~. | .--. .--.\n", - "|1 |~~~~┊0 ┊)`--|1 |~~~~|0 |\n", - "`--' 4 `~~' 5 `--' 5 `--'\n", - ".--. .~~. 5 .--. .--.\n", - "|1 |~~~~┊1 ┊-+--|1 |~~~~|0 |\n", - "`--' 5 `~~' | `--' 6 `--'\n", - ".--. .~~. | .--. .--.\n", - "|1 |~~~~┊2 ┊)|--|1 |~~~~|1 |\n", - "`--' 6 `~~' | `--' 7 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|2 |\n", - " 8 `--' 8 `--'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/markdown": [ - "# S-C-C-S" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " i0\n", - " \n", - " i1\n", - " \n", - " i2\n", - " \n", - " i3\n", - " \n", - " 0\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 2\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 1\n", - " \n", - " 2\n", - " p0\n", - " p1\n", - " p2\n", - " \n", - " \n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 1\n", - " 1\n", - " 2\n", - " 2\n", - " \n", - " 1\n", - " 2\n", - " 3\n", - " 2\n", - " 0\n", - " 0\n", - " 2\n", - " 2\n", - " 4\n", - " \n", - " 0\n", - " 5\n", - " 2\n", - " 6\n", - " 0\n", - " 0\n", - " 3\n", - " \n", - " 1\n", - " 2\n", - " 9\n", - " 1\n", - " 0\n", - " 4\n", - " \n", - " 1\n", - " 2\n", - " 12\n", - " 1\n", - " 0\n", - " 5\n", - " 5\n", - " \n", - " 0\n", - " 1\n", - " 2\n", - " 8\n", - " 2\n", - " 15\n", - " 1\n", - " 0\n", - " 6\n", - " \n", - " 1\n", - " 2\n", - " 18\n", - " 2\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -12804,7 +12120,7 @@ { "data": { "text/markdown": [ - "# S-DC-S-S" + "# S-DC-C-S" ], "text/plain": [ "" @@ -12816,7 +12132,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + ".---. .---. .~~~. .---.\n", + "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`---' `---' `~~~' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |~~~~|0 |-+--|0 |~~~~|1 |\n", - "`--' 1 `--' | `--' 1 `--'\n", - " | .--. .--.\n", - " `--|0 |~~~~|2 |\n", - " 2 `--' 2 `--'\n", - ".--. .--. .--. .--.\n", - "|0 |~~~~|1 |-+--|0 |~~~~|0 |\n", - "`--' 2 `--' | `--' 3 `--'\n", - " | .--. .--.\n", - " |--|0 |~~~~|2 |\n", - " | `--' 4 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|0 |\n", - " 5 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |~~~~|1 |-+--|1 |~~~~|0 |\n", - "`--' 3 `--' | `--' 6 `--'\n", - " | .--. .--.\n", - " |--|1 |~~~~|1 |\n", - " | `--' 7 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|2 |\n", - " 8 `--' 8 `--'" + ".--. 0 .--. 0 .~~. 0 .--.\n", + "|0 |~~~~|0 |~+~~┊0 ┊-+--|1 |\n", + "`--' 1 `--' ┊ `~~' `--|2 |\n", + " ┊ .~~. 2 `--'\n", + " ┊~~┊1 ┊)\n", + " ┊ `~~'\n", + " ┊ .~~. 2\n", + " `~~┊2 ┊)\n", + " 3 `~~'\n", + ".--. .--. .~~. 2 .--.\n", + "|0 |~~~~|1 |~+~~┊0 ┊-+--|0 |\n", + "`--' 2 `--' ┊ `~~' `--|2 |\n", + " ┊ .~~. 4 |--|\n", + " ┊~~┊1 ┊----|0 |\n", + " ┊ `~~' 5 `--'\n", + " ┊ .~~.\n", + " `~~┊2 ┊)\n", + " 6 `~~'\n", + ".--. .--. .~~. 5\n", + "|1 |~~~~|1 |~+~~┊0 ┊)\n", + "`--' 3 `--' ┊ `~~'\n", + " ┊ .~~. 5 .--.\n", + " ┊~~┊1 ┊-+--|0 |\n", + " ┊ `~~' |--|1 |\n", + " ┊ `--|2 |\n", + " ┊ .~~. 8 `--'\n", + " `~~┊2 ┊)\n", + " 9 `~~' 8" ] }, "metadata": {}, @@ -13205,7 +12516,7 @@ { "data": { "text/markdown": [ - "# S-DC-C-S" + "# C-S-S-S" ], "text/plain": [ "" @@ -13217,7 +12528,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .~~~. .---.\n", - "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`---' `---' `~~~' `---'\n", + ".~~~. .---. .---. .---.\n", + "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`~~~' `---' `---' `---'\n", "=============================\n", - ".--. 0 .--. 0 .~~. 0 .--.\n", - "|0 |~~~~|0 |~+~~┊0 ┊-+--|1 |\n", - "`--' 1 `--' ┊ `~~' `--|2 |\n", - " ┊ .~~. 2 `--'\n", - " ┊~~┊1 ┊)\n", - " ┊ `~~'\n", - " ┊ .~~. 2\n", - " `~~┊2 ┊)\n", - " 3 `~~'\n", - ".--. .--. .~~. 2 .--.\n", - "|0 |~~~~|1 |~+~~┊0 ┊-+--|0 |\n", - "`--' 2 `--' ┊ `~~' `--|2 |\n", - " ┊ .~~. 4 |--|\n", - " ┊~~┊1 ┊----|0 |\n", - " ┊ `~~' 5 `--'\n", - " ┊ .~~.\n", - " `~~┊2 ┊)\n", - " 6 `~~'\n", - ".--. .--. .~~. 5\n", - "|1 |~~~~|1 |~+~~┊0 ┊)\n", - "`--' 3 `--' ┊ `~~'\n", - " ┊ .~~. 5 .--.\n", - " ┊~~┊1 ┊-+--|0 |\n", - " ┊ `~~' |--|1 |\n", - " ┊ `--|2 |\n", - " ┊ .~~. 8 `--'\n", - " `~~┊2 ┊)\n", - " 9 `~~' 8" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/markdown": [ - "# S-DC-DC-S" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { + ".~~. 0 .--. 0 .--. 0 .--.\n", + "┊0 ┊-+--|0 |~~~~|0 |~~~~|1 |\n", + "`~~' | `--' 1 `--' 1 `--'\n", + " | .--. .--. .--.\n", + " |--|0 |~~~~|0 |~~~~|2 |\n", + " | `--' 2 `--' 2 `--'\n", + " | .--. .--. .--.\n", + " |--|1 |~~~~|0 |~~~~|0 |\n", + " | `--' 3 `--' 3 `--'\n", + " | .--. .--. .--.\n", + " |--|1 |~~~~|0 |~~~~|2 |\n", + " | `--' 4 `--' 4 `--'\n", + " | .--. .--. .--.\n", + " `--|1 |~~~~|1 |~~~~|0 |\n", + " 5 `--' 5 `--' 5 `--'\n", + ".~~. .--. .--. .--.\n", + "┊1 ┊-+--|1 |~~~~|1 |~~~~|0 |\n", + "`~~' | `--' 6 `--' 6 `--'\n", + ".~~. | .--. .--. .--.\n", + "┊2 ┊)|--|1 |~~~~|1 |~~~~|1 |\n", + "`~~' | `--' 7 `--' 7 `--'\n", + " | .--. .--. .--.\n", + " `--|1 |~~~~|1 |~~~~|2 |\n", + " 8 `--' 8 `--' 8 `--'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/markdown": [ + "# C-S-C-S" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { "data": { "image/svg+xml": [ - "\n", + "\n", " " - ], - "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "" + ], + "text/plain": [ + ".~~~. .---. .~~~. .---.\n", + "┊i0 ┊p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`~~~' `---' `~~~' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |~~~~|0 |----|0 |-+--|1 |\n", - "`--' 1 `--' 1 `--' `--|2 |\n", - ".--. .--. .--. 2 |--|\n", - "|0 |~~~~|1 |-+--|0 |-+--|0 |\n", - "`--' 2 `--' | `--' `--|2 |\n", - " | .--. 4 |--|\n", - " `--|1 |----|0 |\n", - " 3 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |~~~~|1 |----|1 |-+--|0 |\n", - "`--' 3 `--' 4 `--' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" + ".~~. 0 .--. 0 .~~. 0 .--.\n", + "┊0 ┊-+--|0 |~~~~┊0 ┊-+--|1 |\n", + "`~~' | `--' 1 `~~' `--|2 |\n", + " | .--. .~~. 2 `--'\n", + " |--|0 |~~~~┊1 ┊)\n", + " | `--' 2 `~~'\n", + " | .--. .~~. 2\n", + " |--|0 |~~~~┊2 ┊)\n", + " | `--' 3 `~~'\n", + " | .--. .~~. 2 .--.\n", + " |--|1 |~~~~┊0 ┊-+--|0 |\n", + " | `--' 4 `~~' `--|2 |\n", + " | .--. .~~. 4 |--|\n", + " |--|1 |~~~~┊1 ┊----|0 |\n", + " | `--' 5 `~~' 5 `--'\n", + " | .--. .~~.\n", + " `--|1 |~~~~┊2 ┊)\n", + " 6 `--' 6 `~~'\n", + ".~~. .--. .~~. 5\n", + "┊1 ┊-+--|1 |~~~~┊0 ┊)\n", + "`~~' | `--' 7 `~~'\n", + ".~~. | .--. .~~. 5 .--.\n", + "┊2 ┊)|--|1 |~~~~┊1 ┊-+--|0 |\n", + "`~~' | `--' 8 `~~' |--|1 |\n", + " | `--|2 |\n", + " | .--. .~~. 8 `--'\n", + " `--|1 |~~~~┊2 ┊)\n", + " 9 `--' 9 `~~' 8" ] }, "metadata": {}, @@ -13902,7 +13410,7 @@ { "data": { "text/markdown": [ - "# C-S-S-S" + "# C-S-DC-S" ], "text/plain": [ "" @@ -13914,7 +13422,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], @@ -14315,38 +13694,29 @@ "`~~~' `---' `---' `---'\n", "=============================\n", ".~~. 0 .--. 0 .--. 0 .--.\n", - "┊0 ┊-+--|0 |~~~~|0 |~~~~|1 |\n", - "`~~' | `--' 1 `--' 1 `--'\n", - " | .--. .--. .--.\n", - " |--|0 |~~~~|0 |~~~~|2 |\n", - " | `--' 2 `--' 2 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|0 |~~~~|0 |\n", - " | `--' 3 `--' 3 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|0 |~~~~|2 |\n", - " | `--' 4 `--' 4 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |~~~~|1 |~~~~|0 |\n", - " 5 `--' 5 `--' 5 `--'\n", + "┊0 ┊-+--|0 |~~~~|0 |-+--|1 |\n", + "`~~' | `--' 1 `--' `--|2 |\n", + " | .--. .--. 2 |--|\n", + " |--|1 |~~~~|0 |-+--|0 |\n", + " | `--' 2 `--' `--|2 |\n", + " | .--. .--. 4 |--|\n", + " `--|1 |~~~~|1 |----|0 |\n", + " 3 `--' 3 `--' 5 `--'\n", ".~~. .--. .--. .--.\n", - "┊1 ┊-+--|1 |~~~~|1 |~~~~|0 |\n", - "`~~' | `--' 6 `--' 6 `--'\n", - ".~~. | .--. .--. .--.\n", - "┊2 ┊)|--|1 |~~~~|1 |~~~~|1 |\n", - "`~~' | `--' 7 `--' 7 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |~~~~|1 |~~~~|2 |\n", - " 8 `--' 8 `--' 8 `--'" - ] - }, - "metadata": {}, - "output_type": "display_data" + "┊1 ┊----|1 |~~~~|1 |-+--|0 |\n", + "`~~' 4 `--' 4 `--' |--|1 |\n", + ".~~. `--|2 |\n", + "┊2 ┊) 8 `--'\n", + "`~~' 4" + ] + }, + "metadata": {}, + "output_type": "display_data" }, { "data": { "text/markdown": [ - "# C-S-C-S" + "# C-C-S-S" ], "text/plain": [ "" @@ -14358,7 +13728,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".~~~. .---. .~~~. .---.\n", - "┊i0 ┊p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`~~~' `---' `~~~' `---'\n", + ".~~~. .~~~. .---. .---.\n", + "┊i0 ┊p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", + "`~~~' `~~~' `---' `---'\n", "=============================\n", - ".~~. 0 .--. 0 .~~. 0 .--.\n", - "┊0 ┊-+--|0 |~~~~┊0 ┊-+--|1 |\n", - "`~~' | `--' 1 `~~' `--|2 |\n", - " | .--. .~~. 2 `--'\n", - " |--|0 |~~~~┊1 ┊)\n", - " | `--' 2 `~~'\n", - " | .--. .~~. 2\n", - " |--|0 |~~~~┊2 ┊)\n", - " | `--' 3 `~~'\n", - " | .--. .~~. 2 .--.\n", - " |--|1 |~~~~┊0 ┊-+--|0 |\n", - " | `--' 4 `~~' `--|2 |\n", - " | .--. .~~. 4 |--|\n", - " |--|1 |~~~~┊1 ┊----|0 |\n", - " | `--' 5 `~~' 5 `--'\n", - " | .--. .~~.\n", - " `--|1 |~~~~┊2 ┊)\n", - " 6 `--' 6 `~~'\n", - ".~~. .--. .~~. 5\n", - "┊1 ┊-+--|1 |~~~~┊0 ┊)\n", - "`~~' | `--' 7 `~~'\n", - ".~~. | .--. .~~. 5 .--.\n", - "┊2 ┊)|--|1 |~~~~┊1 ┊-+--|0 |\n", - "`~~' | `--' 8 `~~' |--|1 |\n", - " | `--|2 |\n", - " | .--. .~~. 8 `--'\n", - " `--|1 |~~~~┊2 ┊)\n", - " 9 `--' 9 `~~' 8" + ".~~. 0 .~~. 0 .--. 0 .--.\n", + "┊0 ┊~+~~┊0 ┊-+--|0 |~~~~|1 |\n", + "`~~' ┊ `~~' | `--' 1 `--'\n", + " ┊ | .--. .--.\n", + " ┊ `--|0 |~~~~|2 |\n", + " ┊ 2 `--' 2 `--'\n", + " ┊ .~~. .--. .--.\n", + " ┊~~┊1 ┊-+--|0 |~~~~|0 |\n", + " ┊ `~~' | `--' 3 `--'\n", + " ┊ .~~. | .--. .--.\n", + " `~~┊2 ┊)|--|0 |~~~~|2 |\n", + " 3 `~~' | `--' 4 `--'\n", + ".~~. .~~. | .--. .--.\n", + "┊1 ┊~+~~┊0 ┊)`--|1 |~~~~|0 |\n", + "`~~' ┊ `~~' 5 `--' 5 `--'\n", + " ┊ .~~. 5 .--. .--.\n", + " ┊~~┊1 ┊-+--|1 |~~~~|0 |\n", + " ┊ `~~' | `--' 6 `--'\n", + " ┊ .~~. | .--. .--.\n", + " `~~┊2 ┊)|--|1 |~~~~|1 |\n", + " 6 `~~' | `--' 7 `--'\n", + ".~~. .~~. | .--. .--.\n", + "┊2 ┊~+~~┊0 ┊)`--|1 |~~~~|2 |\n", + "`~~' ┊ `~~' 8 `--' 8 `--'\n", + " ┊ .~~. 8\n", + " ┊~~┊1 ┊)\n", + " ┊ `~~'\n", + " ┊ .~~. 8\n", + " `~~┊2 ┊)\n", + " 9 `~~' 8" ] }, "metadata": {}, @@ -14796,7 +14199,7 @@ { "data": { "text/markdown": [ - "# C-S-DC-S" + "# C-C-C-S" ], "text/plain": [ "" @@ -14808,7 +14211,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " - ], - "text/plain": [ - ".~~~. .---. .---. .---.\n", - "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`~~~' `---' `---' `---'\n", - "=============================\n", - ".~~. 0 .--. 0 .--. 0 .--.\n", - "┊0 ┊-+--|0 |~~~~|0 |-+--|1 |\n", - "`~~' | `--' 1 `--' `--|2 |\n", - " | .--. .--. 2 |--|\n", - " |--|1 |~~~~|0 |-+--|0 |\n", - " | `--' 2 `--' `--|2 |\n", - " | .--. .--. 4 |--|\n", - " `--|1 |~~~~|1 |----|0 |\n", - " 3 `--' 3 `--' 5 `--'\n", - ".~~. .--. .--. .--.\n", - "┊1 ┊----|1 |~~~~|1 |-+--|0 |\n", - "`~~' 4 `--' 4 `--' |--|1 |\n", - ".~~. `--|2 |\n", - "┊2 ┊) 8 `--'\n", - "`~~' 4" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/markdown": [ - "# C-C-S-S" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " i0\n", - " \n", - " i1\n", - " \n", - " i2\n", - " \n", - " i3\n", - " \n", - " 0\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 1\n", - " \n", - " 1\n", - " \n", - " 2\n", - " p0\n", - " p1\n", - " p2\n", - " \n", - " \n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 1\n", - " 1\n", - " 0\n", - " 2\n", - " 2\n", - " 2\n", - " \n", - " 0\n", - " 0\n", - " 3\n", - " 2\n", - " 0\n", - " 2\n", - " 3\n", - " 4\n", - " 0\n", - " 1\n", - " 0\n", - " 5\n", - " 5\n", - " 5\n", - " \n", - " 1\n", - " 0\n", - " 6\n", - " 2\n", - " 1\n", - " 1\n", - " 6\n", - " 7\n", - " 0\n", - " 1\n", - " 2\n", - " 8\n", - " 8\n", - " 8\n", - " \n", - " 1\n", - " 2\n", - " 9\n", - " 8\n", - " 8\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - "" - ], - "text/plain": [ - ".~~~. .~~~. .---. .---.\n", - "┊i0 ┊p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", - "`~~~' `~~~' `---' `---'\n", - "=============================\n", - ".~~. 0 .~~. 0 .--. 0 .--.\n", - "┊0 ┊~+~~┊0 ┊-+--|0 |~~~~|1 |\n", - "`~~' ┊ `~~' | `--' 1 `--'\n", - " ┊ | .--. .--.\n", - " ┊ `--|0 |~~~~|2 |\n", - " ┊ 2 `--' 2 `--'\n", - " ┊ .~~. .--. .--.\n", - " ┊~~┊1 ┊-+--|0 |~~~~|0 |\n", - " ┊ `~~' | `--' 3 `--'\n", - " ┊ .~~. | .--. .--.\n", - " `~~┊2 ┊)|--|0 |~~~~|2 |\n", - " 3 `~~' | `--' 4 `--'\n", - ".~~. .~~. | .--. .--.\n", - "┊1 ┊~+~~┊0 ┊)`--|1 |~~~~|0 |\n", - "`~~' ┊ `~~' 5 `--' 5 `--'\n", - " ┊ .~~. 5 .--. .--.\n", - " ┊~~┊1 ┊-+--|1 |~~~~|0 |\n", - " ┊ `~~' | `--' 6 `--'\n", - " ┊ .~~. | .--. .--.\n", - " `~~┊2 ┊)|--|1 |~~~~|1 |\n", - " 6 `~~' | `--' 7 `--'\n", - ".~~. .~~. | .--. .--.\n", - "┊2 ┊~+~~┊0 ┊)`--|1 |~~~~|2 |\n", - "`~~' ┊ `~~' 8 `--' 8 `--'\n", - " ┊ .~~. 8\n", - " ┊~~┊1 ┊)\n", - " ┊ `~~'\n", - " ┊ .~~. 8\n", - " `~~┊2 ┊)\n", - " 9 `~~' 8" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/markdown": [ - "# C-C-C-S" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " i0\n", - " \n", - " i1\n", - " \n", - " i2\n", - " \n", - " i3\n", - " \n", - " 0\n", - " \n", - " 0\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 2\n", - " \n", - " 1\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 1\n", - " \n", - " 2\n", - " \n", - " 2\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 2\n", - " p0\n", - " p1\n", - " p2\n", - " \n", - " \n", - " 0\n", - " 0\n", - " 0\n", - " 1\n", - " 2\n", - " 2\n", - " \n", - " 1\n", - " 2\n", - " 3\n", - " 2\n", - " \n", - " 0\n", - " 2\n", - " 4\n", - " \n", - " 0\n", - " 5\n", - " 2\n", - " 6\n", - " 0\n", - " 3\n", - " \n", - " 1\n", - " 2\n", - " 9\n", - " 0\n", - " \n", - " 1\n", - " 2\n", - " 12\n", - " \n", - " 0\n", - " 5\n", - " \n", - " 0\n", - " 1\n", - " 2\n", - " 8\n", - " 2\n", - " 15\n", - " 0\n", - " 6\n", - " \n", - " 1\n", - " 2\n", - " 18\n", - " 0\n", - " \n", - " 1\n", - " 2\n", - " 21\n", - " \n", - " 0\n", - " \n", - " 1\n", - " 2\n", - " 24\n", - " 0\n", - " 9\n", - " \n", - " 1\n", - " 2\n", - " 27\n", - " 2\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", - " 8\n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -16261,1586 +14875,114 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "" - ], - "text/plain": [ - ".~~~. .~~~. .~~~. .---.\n", - "┊i0 ┊p0 ┊i1 ┊p1 ┊i2 ┊p2 |i3 |\n", - "`~~~' `~~~' `~~~' `---'\n", - "=============================\n", - ".~~. 0 .~~. 0 .~~. 0 .--.\n", - "┊0 ┊~+~~┊0 ┊~+~~┊0 ┊-+--|1 |\n", - "`~~' ┊ `~~' ┊ `~~' `--|2 |\n", - " ┊ ┊ .~~. 2 `--'\n", - " ┊ ┊~~┊1 ┊)\n", - " ┊ ┊ `~~'\n", - " ┊ ┊ .~~. 2\n", - " ┊ `~~┊2 ┊)\n", - " ┊ 3 `~~'\n", - " ┊ .~~. .~~. 2 .--.\n", - " ┊~~┊1 ┊~+~~┊0 ┊-+--|0 |\n", - " ┊ `~~' ┊ `~~' `--|2 |\n", - " ┊ ┊ .~~. 4 |--|\n", - " ┊ ┊~~┊1 ┊----|0 |\n", - " ┊ ┊ `~~' 5 `--'\n", - " ┊ ┊ .~~.\n", - " ┊ `~~┊2 ┊)\n", - " ┊ 6 `~~'\n", - " ┊ .~~. .~~. 5\n", - " `~~┊2 ┊~+~~┊0 ┊)\n", - " 3 `~~' ┊ `~~'\n", - " ┊ .~~. 5\n", - " ┊~~┊1 ┊)\n", - " ┊ `~~'\n", - " ┊ .~~. 5\n", - " `~~┊2 ┊)\n", - " 9 `~~'\n", - ".~~. .~~. .~~. 5\n", - "┊1 ┊~+~~┊0 ┊~+~~┊0 ┊)\n", - "`~~' ┊ `~~' ┊ `~~'\n", - " ┊ ┊ .~~. 5\n", - " ┊ ┊~~┊1 ┊)\n", - " ┊ ┊ `~~'\n", - " ┊ ┊ .~~. 5\n", - " ┊ `~~┊2 ┊)\n", - " ┊ 12 `~~'\n", - " ┊ .~~. .~~. 5\n", - " ┊~~┊1 ┊~+~~┊0 ┊)\n", - " ┊ `~~' ┊ `~~'\n", - " ┊ ┊ .~~. 5 .--.\n", - " ┊ ┊~~┊1 ┊-+--|0 |\n", - " ┊ ┊ `~~' |--|1 |\n", - " ┊ ┊ `--|2 |\n", - " ┊ ┊ .~~. 8 `--'\n", - " ┊ `~~┊2 ┊)\n", - " ┊ 15 `~~'\n", - " ┊ .~~. .~~. 8\n", - " `~~┊2 ┊~+~~┊0 ┊)\n", - " 6 `~~' ┊ `~~'\n", - " ┊ .~~. 8\n", - " ┊~~┊1 ┊)\n", - " ┊ `~~'\n", - " ┊ .~~. 8\n", - " `~~┊2 ┊)\n", - " 18 `~~'\n", - ".~~. .~~. .~~. 8\n", - "┊2 ┊~+~~┊0 ┊~+~~┊0 ┊)\n", - "`~~' ┊ `~~' ┊ `~~'\n", - " ┊ ┊ .~~. 8\n", - " ┊ ┊~~┊1 ┊)\n", - " ┊ ┊ `~~'\n", - " ┊ ┊ .~~. 8\n", - " ┊ `~~┊2 ┊)\n", - " ┊ 21 `~~'\n", - " ┊ .~~. .~~. 8\n", - " ┊~~┊1 ┊~+~~┊0 ┊)\n", - " ┊ `~~' ┊ `~~'\n", - " ┊ ┊ .~~. 8\n", - " ┊ ┊~~┊1 ┊)\n", - " ┊ ┊ `~~'\n", - " ┊ ┊ .~~. 8\n", - " ┊ `~~┊2 ┊)\n", - " ┊ 24 `~~'\n", - " ┊ .~~. .~~. 8\n", - " `~~┊2 ┊~+~~┊0 ┊)\n", - " 9 `~~' ┊ `~~'\n", - " ┊ .~~. 8\n", - " ┊~~┊1 ┊)\n", - " ┊ `~~'\n", - " ┊ .~~. 8\n", - " `~~┊2 ┊)\n", - " 27 `~~' 8" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/markdown": [ - "# C-C-DC-S" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " i0\n", - " \n", - " i1\n", - " \n", - " i2\n", - " \n", - " i3\n", - " \n", - " 0\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 1\n", - " \n", - " 1\n", - " \n", - " 2\n", - " p0\n", - " p1\n", - " p2\n", - " \n", - " \n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 1\n", - " 1\n", - " 2\n", - " 2\n", - " \n", - " 0\n", - " 0\n", - " 2\n", - " 4\n", - " 2\n", - " 1\n", - " 0\n", - " 3\n", - " 3\n", - " 5\n", - " 3\n", - " 0\n", - " 3\n", - " \n", - " 1\n", - " 0\n", - " 4\n", - " 1\n", - " 2\n", - " 2\n", - " 8\n", - " 6\n", - " 0\n", - " \n", - " 1\n", - " 2\n", - " 9\n", - " 4\n", - " 4\n", - " 4\n", - " 4\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "" - ], - "text/plain": [ - ".~~~. .~~~. .---. .---.\n", - "┊i0 ┊p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", - "`~~~' `~~~' `---' `---'\n", - "=============================\n", - ".~~. 0 .~~. 0 .--. 0 .--.\n", - "┊0 ┊~+~~┊0 ┊----|0 |-+--|1 |\n", - "`~~' ┊ `~~' 1 `--' `--|2 |\n", - " ┊ .~~. .--. 2 |--|\n", - " ┊~~┊1 ┊-+--|0 |-+--|0 |\n", - " ┊ `~~' | `--' `--|2 |\n", - " ┊ .~~. | .--. 4 |--|\n", - " `~~┊2 ┊)`--|1 |----|0 |\n", - " 3 `~~' 3 `--' 5 `--'\n", - ".~~. .~~. 3\n", - "┊1 ┊~+~~┊0 ┊)\n", - "`~~' ┊ `~~'\n", - " ┊ .~~. 3 .--. .--.\n", - " ┊~~┊1 ┊----|1 |-+--|0 |\n", - " ┊ `~~' 4 `--' |--|1 |\n", - " ┊ .~~. `--|2 |\n", - " `~~┊2 ┊) 8 `--'\n", - " 6 `~~'\n", - ".~~. .~~. 4\n", - "┊2 ┊~+~~┊0 ┊)\n", - "`~~' ┊ `~~'\n", - " ┊ .~~. 4\n", - " ┊~~┊1 ┊)\n", - " ┊ `~~'\n", - " ┊ .~~. 4\n", - " `~~┊2 ┊)\n", - " 9 `~~' 4" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/markdown": [ - "# C-DC-S-S" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " i0\n", - " \n", - " i1\n", - " \n", - " i2\n", - " \n", - " i3\n", - " \n", - " 0\n", - " \n", - " 1\n", - " p0\n", - " p1\n", - " p2\n", - " \n", - " \n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 1\n", - " 1\n", - " 0\n", - " 2\n", - " 2\n", - " 2\n", - " 1\n", - " 0\n", - " 0\n", - " 2\n", - " 3\n", - " 0\n", - " 2\n", - " 4\n", - " 1\n", - " 0\n", - " 5\n", - " 5\n", - " 1\n", - " 1\n", - " 0\n", - " 3\n", - " 6\n", - " 2\n", - " 1\n", - " 1\n", - " 7\n", - " 1\n", - " 2\n", - " 8\n", - " 8\n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "" - ], - "text/plain": [ - ".~~~. .---. .---. .---.\n", - "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`~~~' `---' `---' `---'\n", - "=============================\n", - ".~~. 0 .--. 0 .--. 0 .--.\n", - "┊0 ┊-+--|0 |-+--|0 |~~~~|1 |\n", - "`~~' | `--' | `--' 1 `--'\n", - " | | .--. .--.\n", - " | `--|0 |~~~~|2 |\n", - " | 2 `--' 2 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |-+--|0 |~~~~|0 |\n", - " 2 `--' | `--' 3 `--'\n", - " | .--. .--.\n", - " |--|0 |~~~~|2 |\n", - " | `--' 4 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|0 |\n", - " 5 `--' 5 `--'\n", - ".~~. .--. .--. .--.\n", - "┊1 ┊----|1 |-+--|1 |~~~~|0 |\n", - "`~~' 3 `--' | `--' 6 `--'\n", - ".~~. | .--. .--.\n", - "┊2 ┊) |--|1 |~~~~|1 |\n", - "`~~' 3 | `--' 7 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|2 |\n", - " 8 `--' 8 `--'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/markdown": [ - "# C-DC-C-S" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " i0\n", - " \n", - " i1\n", - " \n", - " i2\n", - " \n", - " i3\n", - " \n", - " 0\n", - " \n", - " 0\n", - " \n", - " 0\n", - " \n", - " 1\n", - " \n", - " 1\n", - " \n", - " 1\n", - " p0\n", - " p1\n", - " p2\n", - " \n", - " \n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 1\n", - " 2\n", - " 2\n", - " \n", - " 1\n", - " 2\n", - " 3\n", - " 2\n", - " 1\n", - " 0\n", - " 2\n", - " 2\n", - " 4\n", - " \n", - " 0\n", - " 5\n", - " 2\n", - " 6\n", - " 1\n", - " 0\n", - " 3\n", - " 5\n", - " 2\n", - " \n", - " 0\n", - " 1\n", - " 2\n", - " 8\n", - " 2\n", - " 9\n", - " 2\n", - " 5\n", - " 3\n", - " 8\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "" - ], - "text/plain": [ - ".~~~. .---. .~~~. .---.\n", - "┊i0 ┊p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`~~~' `---' `~~~' `---'\n", - "=============================\n", - ".~~. 0 .--. 0 .~~. 0 .--.\n", - "┊0 ┊-+--|0 |~+~~┊0 ┊-+--|1 |\n", - "`~~' | `--' ┊ `~~' `--|2 |\n", - " | ┊ .~~. 2 `--'\n", - " | ┊~~┊1 ┊)\n", - " | ┊ `~~'\n", - " | ┊ .~~. 2\n", - " | `~~┊2 ┊)\n", - " | 3 `~~'\n", - " | .--. .~~. 2 .--.\n", - " `--|1 |~+~~┊0 ┊-+--|0 |\n", - " 2 `--' ┊ `~~' `--|2 |\n", - " ┊ .~~. 4 |--|\n", - " ┊~~┊1 ┊----|0 |\n", - " ┊ `~~' 5 `--'\n", - " ┊ .~~.\n", - " `~~┊2 ┊)\n", - " 6 `~~'\n", - ".~~. .--. .~~. 5\n", - "┊1 ┊----|1 |~+~~┊0 ┊)\n", - "`~~' 3 `--' ┊ `~~'\n", - ".~~. ┊ .~~. 5 .--.\n", - "┊2 ┊) ┊~~┊1 ┊-+--|0 |\n", - "`~~' 3 ┊ `~~' |--|1 |\n", - " ┊ `--|2 |\n", - " ┊ .~~. 8 `--'\n", - " `~~┊2 ┊)\n", - " 9 `~~' 8" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/markdown": [ - "# C-DC-DC-S" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " i0\n", - " \n", - " i1\n", - " \n", - " i2\n", - " \n", - " i3\n", - " \n", - " 0\n", - " \n", - " 1\n", - " p0\n", - " p1\n", - " p2\n", - " \n", - " \n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 1\n", - " 1\n", - " 2\n", - " 2\n", - " 1\n", - " 0\n", - " 0\n", - " 2\n", - " 2\n", - " 4\n", - " 1\n", - " 0\n", - " 3\n", - " 5\n", - " 1\n", - " 1\n", - " 0\n", - " 3\n", - " 4\n", - " 1\n", - " 2\n", - " 2\n", - " 8\n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", "" ], "text/plain": [ - ".~~~. .---. .---. .---.\n", - "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`~~~' `---' `---' `---'\n", + ".~~~. .~~~. .~~~. .---.\n", + "┊i0 ┊p0 ┊i1 ┊p1 ┊i2 ┊p2 |i3 |\n", + "`~~~' `~~~' `~~~' `---'\n", "=============================\n", - ".~~. 0 .--. 0 .--. 0 .--.\n", - "┊0 ┊-+--|0 |----|0 |-+--|1 |\n", - "`~~' | `--' 1 `--' `--|2 |\n", - " | .--. .--. 2 |--|\n", - " `--|1 |-+--|0 |-+--|0 |\n", - " 2 `--' | `--' `--|2 |\n", - " | .--. 4 |--|\n", - " `--|1 |----|0 |\n", - " 3 `--' 5 `--'\n", - ".~~. .--. .--. .--.\n", - "┊1 ┊----|1 |----|1 |-+--|0 |\n", - "`~~' 3 `--' 4 `--' |--|1 |\n", - ".~~. `--|2 |\n", - "┊2 ┊) 8 `--'\n", - "`~~' 3" + ".~~. 0 .~~. 0 .~~. 0 .--.\n", + "┊0 ┊~+~~┊0 ┊~+~~┊0 ┊-+--|1 |\n", + "`~~' ┊ `~~' ┊ `~~' `--|2 |\n", + " ┊ ┊ .~~. 2 `--'\n", + " ┊ ┊~~┊1 ┊)\n", + " ┊ ┊ `~~'\n", + " ┊ ┊ .~~. 2\n", + " ┊ `~~┊2 ┊)\n", + " ┊ 3 `~~'\n", + " ┊ .~~. .~~. 2 .--.\n", + " ┊~~┊1 ┊~+~~┊0 ┊-+--|0 |\n", + " ┊ `~~' ┊ `~~' `--|2 |\n", + " ┊ ┊ .~~. 4 |--|\n", + " ┊ ┊~~┊1 ┊----|0 |\n", + " ┊ ┊ `~~' 5 `--'\n", + " ┊ ┊ .~~.\n", + " ┊ `~~┊2 ┊)\n", + " ┊ 6 `~~'\n", + " ┊ .~~. .~~. 5\n", + " `~~┊2 ┊~+~~┊0 ┊)\n", + " 3 `~~' ┊ `~~'\n", + " ┊ .~~. 5\n", + " ┊~~┊1 ┊)\n", + " ┊ `~~'\n", + " ┊ .~~. 5\n", + " `~~┊2 ┊)\n", + " 9 `~~'\n", + ".~~. .~~. .~~. 5\n", + "┊1 ┊~+~~┊0 ┊~+~~┊0 ┊)\n", + "`~~' ┊ `~~' ┊ `~~'\n", + " ┊ ┊ .~~. 5\n", + " ┊ ┊~~┊1 ┊)\n", + " ┊ ┊ `~~'\n", + " ┊ ┊ .~~. 5\n", + " ┊ `~~┊2 ┊)\n", + " ┊ 12 `~~'\n", + " ┊ .~~. .~~. 5\n", + " ┊~~┊1 ┊~+~~┊0 ┊)\n", + " ┊ `~~' ┊ `~~'\n", + " ┊ ┊ .~~. 5 .--.\n", + " ┊ ┊~~┊1 ┊-+--|0 |\n", + " ┊ ┊ `~~' |--|1 |\n", + " ┊ ┊ `--|2 |\n", + " ┊ ┊ .~~. 8 `--'\n", + " ┊ `~~┊2 ┊)\n", + " ┊ 15 `~~'\n", + " ┊ .~~. .~~. 8\n", + " `~~┊2 ┊~+~~┊0 ┊)\n", + " 6 `~~' ┊ `~~'\n", + " ┊ .~~. 8\n", + " ┊~~┊1 ┊)\n", + " ┊ `~~'\n", + " ┊ .~~. 8\n", + " `~~┊2 ┊)\n", + " 18 `~~'\n", + ".~~. .~~. .~~. 8\n", + "┊2 ┊~+~~┊0 ┊~+~~┊0 ┊)\n", + "`~~' ┊ `~~' ┊ `~~'\n", + " ┊ ┊ .~~. 8\n", + " ┊ ┊~~┊1 ┊)\n", + " ┊ ┊ `~~'\n", + " ┊ ┊ .~~. 8\n", + " ┊ `~~┊2 ┊)\n", + " ┊ 21 `~~'\n", + " ┊ .~~. .~~. 8\n", + " ┊~~┊1 ┊~+~~┊0 ┊)\n", + " ┊ `~~' ┊ `~~'\n", + " ┊ ┊ .~~. 8\n", + " ┊ ┊~~┊1 ┊)\n", + " ┊ ┊ `~~'\n", + " ┊ ┊ .~~. 8\n", + " ┊ `~~┊2 ┊)\n", + " ┊ 24 `~~'\n", + " ┊ .~~. .~~. 8\n", + " `~~┊2 ┊~+~~┊0 ┊)\n", + " 9 `~~' ┊ `~~'\n", + " ┊ .~~. 8\n", + " ┊~~┊1 ┊)\n", + " ┊ `~~'\n", + " ┊ .~~. 8\n", + " `~~┊2 ┊)\n", + " 27 `~~' 8" ] }, "metadata": {}, @@ -17849,7 +14991,7 @@ { "data": { "text/markdown": [ - "# DC-S-S-S" + "# C-C-DC-S" ], "text/plain": [ "" @@ -17861,7 +15003,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + ".~~~. .~~~. .---. .---.\n", + "┊i0 ┊p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", + "`~~~' `~~~' `---' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |-+--|0 |~~~~|0 |~~~~|1 |\n", - "`--' | `--' 1 `--' 1 `--'\n", - " | .--. .--. .--.\n", - " |--|0 |~~~~|0 |~~~~|2 |\n", - " | `--' 2 `--' 2 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|0 |~~~~|0 |\n", - " | `--' 3 `--' 3 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|0 |~~~~|2 |\n", - " | `--' 4 `--' 4 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |~~~~|1 |~~~~|0 |\n", - " 5 `--' 5 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |-+--|1 |~~~~|1 |~~~~|0 |\n", - "`--' | `--' 6 `--' 6 `--'\n", - " | .--. .--. .--.\n", - " |--|1 |~~~~|1 |~~~~|1 |\n", - " | `--' 7 `--' 7 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |~~~~|1 |~~~~|2 |\n", - " 8 `--' 8 `--' 8 `--'" + ".~~. 0 .~~. 0 .--. 0 .--.\n", + "┊0 ┊~+~~┊0 ┊----|0 |-+--|1 |\n", + "`~~' ┊ `~~' 1 `--' `--|2 |\n", + " ┊ .~~. .--. 2 |--|\n", + " ┊~~┊1 ┊-+--|0 |-+--|0 |\n", + " ┊ `~~' | `--' `--|2 |\n", + " ┊ .~~. | .--. 4 |--|\n", + " `~~┊2 ┊)`--|1 |----|0 |\n", + " 3 `~~' 3 `--' 5 `--'\n", + ".~~. .~~. 3\n", + "┊1 ┊~+~~┊0 ┊)\n", + "`~~' ┊ `~~'\n", + " ┊ .~~. 3 .--. .--.\n", + " ┊~~┊1 ┊----|1 |-+--|0 |\n", + " ┊ `~~' 4 `--' |--|1 |\n", + " ┊ .~~. `--|2 |\n", + " `~~┊2 ┊) 8 `--'\n", + " 6 `~~'\n", + ".~~. .~~. 4\n", + "┊2 ┊~+~~┊0 ┊)\n", + "`~~' ┊ `~~'\n", + " ┊ .~~. 4\n", + " ┊~~┊1 ┊)\n", + " ┊ `~~'\n", + " ┊ .~~. 4\n", + " `~~┊2 ┊)\n", + " 9 `~~' 4" ] }, "metadata": {}, @@ -18291,7 +15383,7 @@ { "data": { "text/markdown": [ - "# DC-S-C-S" + "# C-DC-S-S" ], "text/plain": [ "" @@ -18303,7 +15395,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .~~~. .---.\n", - "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`---' `---' `~~~' `---'\n", + ".~~~. .---. .---. .---.\n", + "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`~~~' `---' `---' `---'\n", "=============================\n", - ".--. 0 .--. 0 .~~. 0 .--.\n", - "|0 |-+--|0 |~~~~┊0 ┊-+--|1 |\n", - "`--' | `--' 1 `~~' `--|2 |\n", - " | .--. .~~. 2 `--'\n", - " |--|0 |~~~~┊1 ┊)\n", - " | `--' 2 `~~'\n", - " | .--. .~~. 2\n", - " |--|0 |~~~~┊2 ┊)\n", - " | `--' 3 `~~'\n", - " | .--. .~~. 2 .--.\n", - " |--|1 |~~~~┊0 ┊-+--|0 |\n", - " | `--' 4 `~~' `--|2 |\n", - " | .--. .~~. 4 |--|\n", - " |--|1 |~~~~┊1 ┊----|0 |\n", - " | `--' 5 `~~' 5 `--'\n", - " | .--. .~~.\n", - " `--|1 |~~~~┊2 ┊)\n", - " 6 `--' 6 `~~'\n", - ".--. .--. .~~. 5\n", - "|1 |-+--|1 |~~~~┊0 ┊)\n", - "`--' | `--' 7 `~~'\n", - " | .--. .~~. 5 .--.\n", - " |--|1 |~~~~┊1 ┊-+--|0 |\n", - " | `--' 8 `~~' |--|1 |\n", - " | `--|2 |\n", - " | .--. .~~. 8 `--'\n", - " `--|1 |~~~~┊2 ┊)\n", - " 9 `--' 9 `~~' 8" + ".~~. 0 .--. 0 .--. 0 .--.\n", + "┊0 ┊-+--|0 |-+--|0 |~~~~|1 |\n", + "`~~' | `--' | `--' 1 `--'\n", + " | | .--. .--.\n", + " | `--|0 |~~~~|2 |\n", + " | 2 `--' 2 `--'\n", + " | .--. .--. .--.\n", + " `--|1 |-+--|0 |~~~~|0 |\n", + " 2 `--' | `--' 3 `--'\n", + " | .--. .--.\n", + " |--|0 |~~~~|2 |\n", + " | `--' 4 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|0 |\n", + " 5 `--' 5 `--'\n", + ".~~. .--. .--. .--.\n", + "┊1 ┊----|1 |-+--|1 |~~~~|0 |\n", + "`~~' 3 `--' | `--' 6 `--'\n", + ".~~. | .--. .--.\n", + "┊2 ┊) |--|1 |~~~~|1 |\n", + "`~~' 3 | `--' 7 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|2 |\n", + " 8 `--' 8 `--'" ] }, "metadata": {}, @@ -18739,7 +15777,7 @@ { "data": { "text/markdown": [ - "# DC-S-DC-S" + "# C-DC-C-S" ], "text/plain": [ "" @@ -18751,7 +15789,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + ".~~~. .---. .~~~. .---.\n", + "┊i0 ┊p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`~~~' `---' `~~~' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |-+--|0 |~~~~|0 |-+--|1 |\n", - "`--' | `--' 1 `--' `--|2 |\n", - " | .--. .--. 2 |--|\n", - " |--|1 |~~~~|0 |-+--|0 |\n", - " | `--' 2 `--' `--|2 |\n", - " | .--. .--. 4 |--|\n", - " `--|1 |~~~~|1 |----|0 |\n", - " 3 `--' 3 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |----|1 |~~~~|1 |-+--|0 |\n", - "`--' 4 `--' 4 `--' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" + ".~~. 0 .--. 0 .~~. 0 .--.\n", + "┊0 ┊-+--|0 |~+~~┊0 ┊-+--|1 |\n", + "`~~' | `--' ┊ `~~' `--|2 |\n", + " | ┊ .~~. 2 `--'\n", + " | ┊~~┊1 ┊)\n", + " | ┊ `~~'\n", + " | ┊ .~~. 2\n", + " | `~~┊2 ┊)\n", + " | 3 `~~'\n", + " | .--. .~~. 2 .--.\n", + " `--|1 |~+~~┊0 ┊-+--|0 |\n", + " 2 `--' ┊ `~~' `--|2 |\n", + " ┊ .~~. 4 |--|\n", + " ┊~~┊1 ┊----|0 |\n", + " ┊ `~~' 5 `--'\n", + " ┊ .~~.\n", + " `~~┊2 ┊)\n", + " 6 `~~'\n", + ".~~. .--. .~~. 5\n", + "┊1 ┊----|1 |~+~~┊0 ┊)\n", + "`~~' 3 `--' ┊ `~~'\n", + ".~~. ┊ .~~. 5 .--.\n", + "┊2 ┊) ┊~~┊1 ┊-+--|0 |\n", + "`~~' 3 ┊ `~~' |--|1 |\n", + " ┊ `--|2 |\n", + " ┊ .~~. 8 `--'\n", + " `~~┊2 ┊)\n", + " 9 `~~' 8" ] }, "metadata": {}, @@ -19041,7 +16166,7 @@ { "data": { "text/markdown": [ - "# DC-C-S-S" + "# C-DC-DC-S" ], "text/plain": [ "" @@ -19053,7 +16178,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .~~~. .---. .---.\n", - "|i0 |p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", - "`---' `~~~' `---' `---'\n", + ".~~~. .---. .---. .---.\n", + "┊i0 ┊p0 |i1 |p1 |i2 |p2 |i3 |\n", + "`~~~' `---' `---' `---'\n", "=============================\n", - ".--. 0 .~~. 0 .--. 0 .--.\n", - "|0 |~+~~┊0 ┊-+--|0 |~~~~|1 |\n", - "`--' ┊ `~~' | `--' 1 `--'\n", - " ┊ | .--. .--.\n", - " ┊ `--|0 |~~~~|2 |\n", - " ┊ 2 `--' 2 `--'\n", - " ┊ .~~. .--. .--.\n", - " ┊~~┊1 ┊-+--|0 |~~~~|0 |\n", - " ┊ `~~' | `--' 3 `--'\n", - " ┊ .~~. | .--. .--.\n", - " `~~┊2 ┊)|--|0 |~~~~|2 |\n", - " 3 `~~' | `--' 4 `--'\n", - ".--. .~~. | .--. .--.\n", - "|1 |~+~~┊0 ┊)`--|1 |~~~~|0 |\n", - "`--' ┊ `~~' 5 `--' 5 `--'\n", - " ┊ .~~. 5 .--. .--.\n", - " ┊~~┊1 ┊-+--|1 |~~~~|0 |\n", - " ┊ `~~' | `--' 6 `--'\n", - " ┊ .~~. | .--. .--.\n", - " `~~┊2 ┊)|--|1 |~~~~|1 |\n", - " 6 `~~' | `--' 7 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|2 |\n", - " 8 `--' 8 `--'" + ".~~. 0 .--. 0 .--. 0 .--.\n", + "┊0 ┊-+--|0 |----|0 |-+--|1 |\n", + "`~~' | `--' 1 `--' `--|2 |\n", + " | .--. .--. 2 |--|\n", + " `--|1 |-+--|0 |-+--|0 |\n", + " 2 `--' | `--' `--|2 |\n", + " | .--. 4 |--|\n", + " `--|1 |----|0 |\n", + " 3 `--' 5 `--'\n", + ".~~. .--. .--. .--.\n", + "┊1 ┊----|1 |----|1 |-+--|0 |\n", + "`~~' 3 `--' 4 `--' |--|1 |\n", + ".~~. `--|2 |\n", + "┊2 ┊) 8 `--'\n", + "`~~' 3" ] }, "metadata": {}, @@ -19471,7 +16463,7 @@ { "data": { "text/markdown": [ - "# DC-C-C-S" + "# DC-S-C-S" ], "text/plain": [ "" @@ -19483,7 +16475,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .~~~. .~~~. .---.\n", - "|i0 |p0 ┊i1 ┊p1 ┊i2 ┊p2 |i3 |\n", - "`---' `~~~' `~~~' `---'\n", + ".---. .---. .~~~. .---.\n", + "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`---' `---' `~~~' `---'\n", "=============================\n", - ".--. 0 .~~. 0 .~~. 0 .--.\n", - "|0 |~+~~┊0 ┊~+~~┊0 ┊-+--|1 |\n", - "`--' ┊ `~~' ┊ `~~' `--|2 |\n", - " ┊ ┊ .~~. 2 `--'\n", - " ┊ ┊~~┊1 ┊)\n", - " ┊ ┊ `~~'\n", - " ┊ ┊ .~~. 2\n", - " ┊ `~~┊2 ┊)\n", - " ┊ 3 `~~'\n", - " ┊ .~~. .~~. 2 .--.\n", - " ┊~~┊1 ┊~+~~┊0 ┊-+--|0 |\n", - " ┊ `~~' ┊ `~~' `--|2 |\n", - " ┊ ┊ .~~. 4 |--|\n", - " ┊ ┊~~┊1 ┊----|0 |\n", - " ┊ ┊ `~~' 5 `--'\n", - " ┊ ┊ .~~.\n", - " ┊ `~~┊2 ┊)\n", - " ┊ 6 `~~'\n", - " ┊ .~~. .~~. 5\n", - " `~~┊2 ┊~+~~┊0 ┊)\n", - " 3 `~~' ┊ `~~'\n", - " ┊ .~~. 5\n", - " ┊~~┊1 ┊)\n", - " ┊ `~~'\n", - " ┊ .~~. 5\n", - " `~~┊2 ┊)\n", - " 9 `~~'\n", - ".--. .~~. .~~. 5\n", - "|1 |~+~~┊0 ┊~+~~┊0 ┊)\n", - "`--' ┊ `~~' ┊ `~~'\n", - " ┊ ┊ .~~. 5\n", - " ┊ ┊~~┊1 ┊)\n", - " ┊ ┊ `~~'\n", - " ┊ ┊ .~~. 5\n", - " ┊ `~~┊2 ┊)\n", - " ┊ 12 `~~'\n", - " ┊ .~~. .~~. 5\n", - " ┊~~┊1 ┊~+~~┊0 ┊)\n", - " ┊ `~~' ┊ `~~'\n", - " ┊ ┊ .~~. 5 .--.\n", - " ┊ ┊~~┊1 ┊-+--|0 |\n", - " ┊ ┊ `~~' |--|1 |\n", - " ┊ ┊ `--|2 |\n", - " ┊ ┊ .~~. 8 `--'\n", - " ┊ `~~┊2 ┊)\n", - " ┊ 15 `~~'\n", - " ┊ .~~. .~~. 8\n", - " `~~┊2 ┊~+~~┊0 ┊)\n", - " 6 `~~' ┊ `~~'\n", - " ┊ .~~. 8\n", - " ┊~~┊1 ┊)\n", - " ┊ `~~'\n", - " ┊ .~~. 8\n", - " `~~┊2 ┊)\n", - " 18 `~~' 8" + ".--. 0 .--. 0 .~~. 0 .--.\n", + "|0 |-+--|0 |~~~~┊0 ┊-+--|1 |\n", + "`--' | `--' 1 `~~' `--|2 |\n", + " | .--. .~~. 2 `--'\n", + " |--|0 |~~~~┊1 ┊)\n", + " | `--' 2 `~~'\n", + " | .--. .~~. 2\n", + " |--|0 |~~~~┊2 ┊)\n", + " | `--' 3 `~~'\n", + " | .--. .~~. 2 .--.\n", + " |--|1 |~~~~┊0 ┊-+--|0 |\n", + " | `--' 4 `~~' `--|2 |\n", + " | .--. .~~. 4 |--|\n", + " |--|1 |~~~~┊1 ┊----|0 |\n", + " | `--' 5 `~~' 5 `--'\n", + " | .--. .~~.\n", + " `--|1 |~~~~┊2 ┊)\n", + " 6 `--' 6 `~~'\n", + ".--. .--. .~~. 5\n", + "|1 |-+--|1 |~~~~┊0 ┊)\n", + "`--' | `--' 7 `~~'\n", + " | .--. .~~. 5 .--.\n", + " |--|1 |~~~~┊1 ┊-+--|0 |\n", + " | `--' 8 `~~' |--|1 |\n", + " | `--|2 |\n", + " | .--. .~~. 8 `--'\n", + " `--|1 |~~~~┊2 ┊)\n", + " 9 `--' 9 `~~' 8" ] }, "metadata": {}, @@ -20057,7 +16911,7 @@ { "data": { "text/markdown": [ - "# DC-C-DC-S" + "# DC-C-S-S" ], "text/plain": [ "" @@ -20069,7 +16923,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], @@ -20368,23 +17310,29 @@ "`---' `~~~' `---' `---'\n", "=============================\n", ".--. 0 .~~. 0 .--. 0 .--.\n", - "|0 |~+~~┊0 ┊----|0 |-+--|1 |\n", - "`--' ┊ `~~' 1 `--' `--|2 |\n", - " ┊ .~~. .--. 2 |--|\n", - " ┊~~┊1 ┊-+--|0 |-+--|0 |\n", - " ┊ `~~' | `--' `--|2 |\n", - " ┊ .~~. | .--. 4 |--|\n", - " `~~┊2 ┊)`--|1 |----|0 |\n", - " 3 `~~' 3 `--' 5 `--'\n", - ".--. .~~. 3\n", - "|1 |~+~~┊0 ┊)\n", - "`--' ┊ `~~'\n", - " ┊ .~~. 3 .--. .--.\n", - " ┊~~┊1 ┊----|1 |-+--|0 |\n", - " ┊ `~~' 4 `--' |--|1 |\n", - " ┊ .~~. `--|2 |\n", - " `~~┊2 ┊) 8 `--'\n", - " 6 `~~' 4" + "|0 |~+~~┊0 ┊-+--|0 |~~~~|1 |\n", + "`--' ┊ `~~' | `--' 1 `--'\n", + " ┊ | .--. .--.\n", + " ┊ `--|0 |~~~~|2 |\n", + " ┊ 2 `--' 2 `--'\n", + " ┊ .~~. .--. .--.\n", + " ┊~~┊1 ┊-+--|0 |~~~~|0 |\n", + " ┊ `~~' | `--' 3 `--'\n", + " ┊ .~~. | .--. .--.\n", + " `~~┊2 ┊)|--|0 |~~~~|2 |\n", + " 3 `~~' | `--' 4 `--'\n", + ".--. .~~. | .--. .--.\n", + "|1 |~+~~┊0 ┊)`--|1 |~~~~|0 |\n", + "`--' ┊ `~~' 5 `--' 5 `--'\n", + " ┊ .~~. 5 .--. .--.\n", + " ┊~~┊1 ┊-+--|1 |~~~~|0 |\n", + " ┊ `~~' | `--' 6 `--'\n", + " ┊ .~~. | .--. .--.\n", + " `~~┊2 ┊)|--|1 |~~~~|1 |\n", + " 6 `~~' | `--' 7 `--'\n", + " | .--. .--.\n", + " `--|1 |~~~~|2 |\n", + " 8 `--' 8 `--'" ] }, "metadata": {}, @@ -20393,7 +17341,7 @@ { "data": { "text/markdown": [ - "# DC-DC-S-S" + "# DC-C-C-S" ], "text/plain": [ "" @@ -20405,7 +17353,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + ".---. .~~~. .~~~. .---.\n", + "|i0 |p0 ┊i1 ┊p1 ┊i2 ┊p2 |i3 |\n", + "`---' `~~~' `~~~' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |-+--|0 |-+--|0 |~~~~|1 |\n", - "`--' | `--' | `--' 1 `--'\n", - " | | .--. .--.\n", - " | `--|0 |~~~~|2 |\n", - " | 2 `--' 2 `--'\n", - " | .--. .--. .--.\n", - " `--|1 |-+--|0 |~~~~|0 |\n", - " 2 `--' | `--' 3 `--'\n", - " | .--. .--.\n", - " |--|0 |~~~~|2 |\n", - " | `--' 4 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|0 |\n", - " 5 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |----|1 |-+--|1 |~~~~|0 |\n", - "`--' 3 `--' | `--' 6 `--'\n", - " | .--. .--.\n", - " |--|1 |~~~~|1 |\n", - " | `--' 7 `--'\n", - " | .--. .--.\n", - " `--|1 |~~~~|2 |\n", - " 8 `--' 8 `--'" + ".--. 0 .~~. 0 .~~. 0 .--.\n", + "|0 |~+~~┊0 ┊~+~~┊0 ┊-+--|1 |\n", + "`--' ┊ `~~' ┊ `~~' `--|2 |\n", + " ┊ ┊ .~~. 2 `--'\n", + " ┊ ┊~~┊1 ┊)\n", + " ┊ ┊ `~~'\n", + " ┊ ┊ .~~. 2\n", + " ┊ `~~┊2 ┊)\n", + " ┊ 3 `~~'\n", + " ┊ .~~. .~~. 2 .--.\n", + " ┊~~┊1 ┊~+~~┊0 ┊-+--|0 |\n", + " ┊ `~~' ┊ `~~' `--|2 |\n", + " ┊ ┊ .~~. 4 |--|\n", + " ┊ ┊~~┊1 ┊----|0 |\n", + " ┊ ┊ `~~' 5 `--'\n", + " ┊ ┊ .~~.\n", + " ┊ `~~┊2 ┊)\n", + " ┊ 6 `~~'\n", + " ┊ .~~. .~~. 5\n", + " `~~┊2 ┊~+~~┊0 ┊)\n", + " 3 `~~' ┊ `~~'\n", + " ┊ .~~. 5\n", + " ┊~~┊1 ┊)\n", + " ┊ `~~'\n", + " ┊ .~~. 5\n", + " `~~┊2 ┊)\n", + " 9 `~~'\n", + ".--. .~~. .~~. 5\n", + "|1 |~+~~┊0 ┊~+~~┊0 ┊)\n", + "`--' ┊ `~~' ┊ `~~'\n", + " ┊ ┊ .~~. 5\n", + " ┊ ┊~~┊1 ┊)\n", + " ┊ ┊ `~~'\n", + " ┊ ┊ .~~. 5\n", + " ┊ `~~┊2 ┊)\n", + " ┊ 12 `~~'\n", + " ┊ .~~. .~~. 5\n", + " ┊~~┊1 ┊~+~~┊0 ┊)\n", + " ┊ `~~' ┊ `~~'\n", + " ┊ ┊ .~~. 5 .--.\n", + " ┊ ┊~~┊1 ┊-+--|0 |\n", + " ┊ ┊ `~~' |--|1 |\n", + " ┊ ┊ `--|2 |\n", + " ┊ ┊ .~~. 8 `--'\n", + " ┊ `~~┊2 ┊)\n", + " ┊ 15 `~~'\n", + " ┊ .~~. .~~. 8\n", + " `~~┊2 ┊~+~~┊0 ┊)\n", + " 6 `~~' ┊ `~~'\n", + " ┊ .~~. 8\n", + " ┊~~┊1 ┊)\n", + " ┊ `~~'\n", + " ┊ .~~. 8\n", + " `~~┊2 ┊)\n", + " 18 `~~' 8" ] }, "metadata": {}, @@ -20784,7 +17927,7 @@ { "data": { "text/markdown": [ - "# DC-DC-C-S" + "# DC-C-DC-S" ], "text/plain": [ "" @@ -20796,7 +17939,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .~~~. .---.\n", - "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", - "`---' `---' `~~~' `---'\n", + ".---. .~~~. .---. .---.\n", + "|i0 |p0 ┊i1 ┊p1 |i2 |p2 |i3 |\n", + "`---' `~~~' `---' `---'\n", "=============================\n", - ".--. 0 .--. 0 .~~. 0 .--.\n", - "|0 |-+--|0 |~+~~┊0 ┊-+--|1 |\n", - "`--' | `--' ┊ `~~' `--|2 |\n", - " | ┊ .~~. 2 `--'\n", - " | ┊~~┊1 ┊)\n", - " | ┊ `~~'\n", - " | ┊ .~~. 2\n", - " | `~~┊2 ┊)\n", - " | 3 `~~'\n", - " | .--. .~~. 2 .--.\n", - " `--|1 |~+~~┊0 ┊-+--|0 |\n", - " 2 `--' ┊ `~~' `--|2 |\n", - " ┊ .~~. 4 |--|\n", - " ┊~~┊1 ┊----|0 |\n", - " ┊ `~~' 5 `--'\n", - " ┊ .~~.\n", - " `~~┊2 ┊)\n", - " 6 `~~'\n", - ".--. .--. .~~. 5\n", - "|1 |----|1 |~+~~┊0 ┊)\n", - "`--' 3 `--' ┊ `~~'\n", - " ┊ .~~. 5 .--.\n", - " ┊~~┊1 ┊-+--|0 |\n", - " ┊ `~~' |--|1 |\n", - " ┊ `--|2 |\n", - " ┊ .~~. 8 `--'\n", - " `~~┊2 ┊)\n", - " 9 `~~' 8" + ".--. 0 .~~. 0 .--. 0 .--.\n", + "|0 |~+~~┊0 ┊----|0 |-+--|1 |\n", + "`--' ┊ `~~' 1 `--' `--|2 |\n", + " ┊ .~~. .--. 2 |--|\n", + " ┊~~┊1 ┊-+--|0 |-+--|0 |\n", + " ┊ `~~' | `--' `--|2 |\n", + " ┊ .~~. | .--. 4 |--|\n", + " `~~┊2 ┊)`--|1 |----|0 |\n", + " 3 `~~' 3 `--' 5 `--'\n", + ".--. .~~. 3\n", + "|1 |~+~~┊0 ┊)\n", + "`--' ┊ `~~'\n", + " ┊ .~~. 3 .--. .--.\n", + " ┊~~┊1 ┊----|1 |-+--|0 |\n", + " ┊ `~~' 4 `--' |--|1 |\n", + " ┊ .~~. `--|2 |\n", + " `~~┊2 ┊) 8 `--'\n", + " 6 `~~' 4" ] }, "metadata": {}, @@ -21170,7 +18263,7 @@ { "data": { "text/markdown": [ - "# DC-DC-DC-S" + "# DC-DC-C-S" ], "text/plain": [ "" @@ -21182,7 +18275,7 @@ { "data": { "image/svg+xml": [ - "\n", + "\n", " " ], "text/plain": [ - ".---. .---. .---. .---.\n", - "|i0 |p0 |i1 |p1 |i2 |p2 |i3 |\n", - "`---' `---' `---' `---'\n", + ".---. .---. .~~~. .---.\n", + "|i0 |p0 |i1 |p1 ┊i2 ┊p2 |i3 |\n", + "`---' `---' `~~~' `---'\n", "=============================\n", - ".--. 0 .--. 0 .--. 0 .--.\n", - "|0 |-+--|0 |----|0 |-+--|1 |\n", - "`--' | `--' 1 `--' `--|2 |\n", - " | .--. .--. 2 |--|\n", - " `--|1 |-+--|0 |-+--|0 |\n", - " 2 `--' | `--' `--|2 |\n", - " | .--. 4 |--|\n", - " `--|1 |----|0 |\n", - " 3 `--' 5 `--'\n", - ".--. .--. .--. .--.\n", - "|1 |----|1 |----|1 |-+--|0 |\n", - "`--' 3 `--' 4 `--' |--|1 |\n", - " `--|2 |\n", - " 8 `--'" + ".--. 0 .--. 0 .~~. 0 .--.\n", + "|0 |-+--|0 |~+~~┊0 ┊-+--|1 |\n", + "`--' | `--' ┊ `~~' `--|2 |\n", + " | ┊ .~~. 2 `--'\n", + " | ┊~~┊1 ┊)\n", + " | ┊ `~~'\n", + " | ┊ .~~. 2\n", + " | `~~┊2 ┊)\n", + " | 3 `~~'\n", + " | .--. .~~. 2 .--.\n", + " `--|1 |~+~~┊0 ┊-+--|0 |\n", + " 2 `--' ┊ `~~' `--|2 |\n", + " ┊ .~~. 4 |--|\n", + " ┊~~┊1 ┊----|0 |\n", + " ┊ `~~' 5 `--'\n", + " ┊ .~~.\n", + " `~~┊2 ┊)\n", + " 6 `~~'\n", + ".--. .--. .~~. 5\n", + "|1 |----|1 |~+~~┊0 ┊)\n", + "`--' 3 `--' ┊ `~~'\n", + " ┊ .~~. 5 .--.\n", + " ┊~~┊1 ┊-+--|0 |\n", + " ┊ `~~' |--|1 |\n", + " ┊ `--|2 |\n", + " ┊ .~~. 8 `--'\n", + " `~~┊2 ┊)\n", + " 9 `~~' 8" ] }, "metadata": {}, @@ -21463,6 +18649,8 @@ ], "source": [ "for sparsity in itertools.product(sparsities, sparsities, sparsities, [\"S\"]):\n", + " if \"C\" not in sparsity:\n", + " continue\n", " structure = \"-\".join(sparsity)\n", " IPython.display.display(IPython.display.Markdown(f\"# {structure}\"))\n", " IPython.display.display(SPZ(indices, (3, 3, 3, 3), structure))"