diff --git a/doc/build/.DS_Store b/doc/build/.DS_Store deleted file mode 100644 index 94c7107..0000000 Binary files a/doc/build/.DS_Store and /dev/null differ diff --git a/doc/build/doctrees/commentary/gm.doctree b/doc/build/doctrees/commentary/gm.doctree deleted file mode 100644 index 5bc5af5..0000000 Binary files a/doc/build/doctrees/commentary/gm.doctree and /dev/null differ diff --git a/doc/build/doctrees/commentary/layout-lexing.doctree b/doc/build/doctrees/commentary/layout-lexing.doctree deleted file mode 100644 index 8182c50..0000000 Binary files a/doc/build/doctrees/commentary/layout-lexing.doctree and /dev/null differ diff --git a/doc/build/doctrees/commentary/stg.doctree b/doc/build/doctrees/commentary/stg.doctree deleted file mode 100644 index df8d7e8..0000000 Binary files a/doc/build/doctrees/commentary/stg.doctree and /dev/null differ diff --git a/doc/build/doctrees/commentary/ti.doctree b/doc/build/doctrees/commentary/ti.doctree deleted file mode 100644 index 1205a1a..0000000 Binary files a/doc/build/doctrees/commentary/ti.doctree and /dev/null differ diff --git a/doc/build/doctrees/commentary/tim.doctree b/doc/build/doctrees/commentary/tim.doctree deleted file mode 100644 index a75f499..0000000 Binary files a/doc/build/doctrees/commentary/tim.doctree and /dev/null differ diff --git a/doc/build/doctrees/environment.pickle b/doc/build/doctrees/environment.pickle deleted file mode 100644 index 8fe7d48..0000000 Binary files a/doc/build/doctrees/environment.pickle and /dev/null differ diff --git a/doc/build/doctrees/glossary.doctree b/doc/build/doctrees/glossary.doctree deleted file mode 100644 index 19e0213..0000000 Binary files a/doc/build/doctrees/glossary.doctree and /dev/null differ diff --git a/doc/build/doctrees/index.doctree b/doc/build/doctrees/index.doctree deleted file mode 100644 index 3f9707d..0000000 Binary files a/doc/build/doctrees/index.doctree and /dev/null differ diff --git a/doc/build/doctrees/references/gm-state-transition-rules.doctree b/doc/build/doctrees/references/gm-state-transition-rules.doctree deleted file mode 100644 index 59662fa..0000000 Binary files a/doc/build/doctrees/references/gm-state-transition-rules.doctree and /dev/null differ diff --git a/doc/build/doctrees/references/gm-state-transitions.doctree b/doc/build/doctrees/references/gm-state-transitions.doctree deleted file mode 100644 index 21d8d00..0000000 Binary files a/doc/build/doctrees/references/gm-state-transitions.doctree and /dev/null differ diff --git a/doc/build/doctrees/references/ti-state-transitions.doctree b/doc/build/doctrees/references/ti-state-transitions.doctree deleted file mode 100644 index b3e13ff..0000000 Binary files a/doc/build/doctrees/references/ti-state-transitions.doctree and /dev/null differ diff --git a/doc/build/html/.buildinfo b/doc/build/html/.buildinfo deleted file mode 100644 index c2f5253..0000000 --- a/doc/build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 5e2d340d1e45c11873a642aae3004db1 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/build/html/_images/math/00420770ada7197f2dc04dc2cb7be7957619046e.svg b/doc/build/html/_images/math/00420770ada7197f2dc04dc2cb7be7957619046e.svg deleted file mode 100644 index f8bf21a..0000000 --- a/doc/build/html/_images/math/00420770ada7197f2dc04dc2cb7be7957619046e.svg +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/021357ee48ac0e35395fa99353083fee184026dd.svg b/doc/build/html/_images/math/021357ee48ac0e35395fa99353083fee184026dd.svg deleted file mode 100644 index 7c38391..0000000 --- a/doc/build/html/_images/math/021357ee48ac0e35395fa99353083fee184026dd.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/02341a0151149b70730cfe4fb67c90c60c7b657e.svg b/doc/build/html/_images/math/02341a0151149b70730cfe4fb67c90c60c7b657e.svg deleted file mode 100644 index 00f5175..0000000 --- a/doc/build/html/_images/math/02341a0151149b70730cfe4fb67c90c60c7b657e.svg +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/037e533b299f8acf5a007a8951726e0fb03c8297.svg b/doc/build/html/_images/math/037e533b299f8acf5a007a8951726e0fb03c8297.svg deleted file mode 100644 index 2a2d5dd..0000000 --- a/doc/build/html/_images/math/037e533b299f8acf5a007a8951726e0fb03c8297.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/068dad807177c214a4019500e8cb3e87d1f16fd3.svg b/doc/build/html/_images/math/068dad807177c214a4019500e8cb3e87d1f16fd3.svg deleted file mode 100644 index 4cd6eba..0000000 --- a/doc/build/html/_images/math/068dad807177c214a4019500e8cb3e87d1f16fd3.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/06c8c584f274e78c626596a6cdbb67086a30bf76.svg b/doc/build/html/_images/math/06c8c584f274e78c626596a6cdbb67086a30bf76.svg deleted file mode 100644 index a51ea18..0000000 --- a/doc/build/html/_images/math/06c8c584f274e78c626596a6cdbb67086a30bf76.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/0787f8d42f5944ee828b01d06440da9b5dbd2ab8.svg b/doc/build/html/_images/math/0787f8d42f5944ee828b01d06440da9b5dbd2ab8.svg deleted file mode 100644 index 6b0b1c3..0000000 --- a/doc/build/html/_images/math/0787f8d42f5944ee828b01d06440da9b5dbd2ab8.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/09635090aa47407c859d644721c5384fbb715130.svg b/doc/build/html/_images/math/09635090aa47407c859d644721c5384fbb715130.svg deleted file mode 100644 index f97438a..0000000 --- a/doc/build/html/_images/math/09635090aa47407c859d644721c5384fbb715130.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/096ddb24a14399b5fff7b5f2f691468d437dae7d.svg b/doc/build/html/_images/math/096ddb24a14399b5fff7b5f2f691468d437dae7d.svg deleted file mode 100644 index 5d89f24..0000000 --- a/doc/build/html/_images/math/096ddb24a14399b5fff7b5f2f691468d437dae7d.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/09f13f0deb087a0975f104db0a2fe82979aec7d5.svg b/doc/build/html/_images/math/09f13f0deb087a0975f104db0a2fe82979aec7d5.svg deleted file mode 100644 index f3f435d..0000000 --- a/doc/build/html/_images/math/09f13f0deb087a0975f104db0a2fe82979aec7d5.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/0a0458d62ece3f6e5019d53d0245ff5facdc5fdf.svg b/doc/build/html/_images/math/0a0458d62ece3f6e5019d53d0245ff5facdc5fdf.svg deleted file mode 100644 index fee58fb..0000000 --- a/doc/build/html/_images/math/0a0458d62ece3f6e5019d53d0245ff5facdc5fdf.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/0dad12d4109ecbf3e9de69670796aed4e39bad83.svg b/doc/build/html/_images/math/0dad12d4109ecbf3e9de69670796aed4e39bad83.svg deleted file mode 100644 index e7c0a4c..0000000 --- a/doc/build/html/_images/math/0dad12d4109ecbf3e9de69670796aed4e39bad83.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/0f620d28afa4216e77023746bb49f10715fc8824.svg b/doc/build/html/_images/math/0f620d28afa4216e77023746bb49f10715fc8824.svg deleted file mode 100644 index 26857d5..0000000 --- a/doc/build/html/_images/math/0f620d28afa4216e77023746bb49f10715fc8824.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/0fc7c9df5cc4f923f6953e615c1f28a6531c0b68.svg b/doc/build/html/_images/math/0fc7c9df5cc4f923f6953e615c1f28a6531c0b68.svg deleted file mode 100644 index d8c8a0f..0000000 --- a/doc/build/html/_images/math/0fc7c9df5cc4f923f6953e615c1f28a6531c0b68.svg +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/10e6bec91d32d8e61faf2f5843c718ef27148abd.svg b/doc/build/html/_images/math/10e6bec91d32d8e61faf2f5843c718ef27148abd.svg deleted file mode 100644 index 80bd2b8..0000000 --- a/doc/build/html/_images/math/10e6bec91d32d8e61faf2f5843c718ef27148abd.svg +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/11649b728693b5cbf77eeb3b247c50f599f41294.svg b/doc/build/html/_images/math/11649b728693b5cbf77eeb3b247c50f599f41294.svg deleted file mode 100644 index 7e2fb2d..0000000 --- a/doc/build/html/_images/math/11649b728693b5cbf77eeb3b247c50f599f41294.svg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1181faecef1f280d02390f5e6e4dc19abe5f4eb1.svg b/doc/build/html/_images/math/1181faecef1f280d02390f5e6e4dc19abe5f4eb1.svg deleted file mode 100644 index b7cfb8c..0000000 --- a/doc/build/html/_images/math/1181faecef1f280d02390f5e6e4dc19abe5f4eb1.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/11cdffb9aaad97f1748e14369a93f303987914df.svg b/doc/build/html/_images/math/11cdffb9aaad97f1748e14369a93f303987914df.svg deleted file mode 100644 index b607d95..0000000 --- a/doc/build/html/_images/math/11cdffb9aaad97f1748e14369a93f303987914df.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/11f8d008cc7c2fca0d206330cc817662df3b0c43.svg b/doc/build/html/_images/math/11f8d008cc7c2fca0d206330cc817662df3b0c43.svg deleted file mode 100644 index b84e6ad..0000000 --- a/doc/build/html/_images/math/11f8d008cc7c2fca0d206330cc817662df3b0c43.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/126119a4c2150b58b13370bfdfa9bb789571ef13.svg b/doc/build/html/_images/math/126119a4c2150b58b13370bfdfa9bb789571ef13.svg deleted file mode 100644 index 5e4ca09..0000000 --- a/doc/build/html/_images/math/126119a4c2150b58b13370bfdfa9bb789571ef13.svg +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/13da9cdf17e4f8cf26f0caad8bda0e132f604db0.svg b/doc/build/html/_images/math/13da9cdf17e4f8cf26f0caad8bda0e132f604db0.svg deleted file mode 100644 index 51ef60d..0000000 --- a/doc/build/html/_images/math/13da9cdf17e4f8cf26f0caad8bda0e132f604db0.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/13fdcdda44eede2cc7be00ace4f3d009e82ebf8d.svg b/doc/build/html/_images/math/13fdcdda44eede2cc7be00ace4f3d009e82ebf8d.svg deleted file mode 100644 index 7934125..0000000 --- a/doc/build/html/_images/math/13fdcdda44eede2cc7be00ace4f3d009e82ebf8d.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1543958253280895e6abea369c0f9abf4898649c.svg b/doc/build/html/_images/math/1543958253280895e6abea369c0f9abf4898649c.svg deleted file mode 100644 index 6776387..0000000 --- a/doc/build/html/_images/math/1543958253280895e6abea369c0f9abf4898649c.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/15d23b1b737948104e84da7d3e79c697816c10df.svg b/doc/build/html/_images/math/15d23b1b737948104e84da7d3e79c697816c10df.svg deleted file mode 100644 index 5018285..0000000 --- a/doc/build/html/_images/math/15d23b1b737948104e84da7d3e79c697816c10df.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1631c78842178c05d1a9c61aca6fbe3d74247ced.svg b/doc/build/html/_images/math/1631c78842178c05d1a9c61aca6fbe3d74247ced.svg deleted file mode 100644 index 7934125..0000000 --- a/doc/build/html/_images/math/1631c78842178c05d1a9c61aca6fbe3d74247ced.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/169b0ba6ac3730b32a1d4054ae9a3ec0912ff9c0.svg b/doc/build/html/_images/math/169b0ba6ac3730b32a1d4054ae9a3ec0912ff9c0.svg deleted file mode 100644 index b6fc685..0000000 --- a/doc/build/html/_images/math/169b0ba6ac3730b32a1d4054ae9a3ec0912ff9c0.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/176a0e2360b1e342041d8129c3a264321ae806ce.svg b/doc/build/html/_images/math/176a0e2360b1e342041d8129c3a264321ae806ce.svg deleted file mode 100644 index 0f137d1..0000000 --- a/doc/build/html/_images/math/176a0e2360b1e342041d8129c3a264321ae806ce.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/187ead99c2f67003ebe37c473bac713194eaa50e.svg b/doc/build/html/_images/math/187ead99c2f67003ebe37c473bac713194eaa50e.svg deleted file mode 100644 index ad2dc83..0000000 --- a/doc/build/html/_images/math/187ead99c2f67003ebe37c473bac713194eaa50e.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/18d617a93c757f0b0e644d4000b9decf2c1730df.svg b/doc/build/html/_images/math/18d617a93c757f0b0e644d4000b9decf2c1730df.svg deleted file mode 100644 index 439ed26..0000000 --- a/doc/build/html/_images/math/18d617a93c757f0b0e644d4000b9decf2c1730df.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/18d81e1fc22e6feb876a993fe30fd9e8336f5bf6.svg b/doc/build/html/_images/math/18d81e1fc22e6feb876a993fe30fd9e8336f5bf6.svg deleted file mode 100644 index 843a842..0000000 --- a/doc/build/html/_images/math/18d81e1fc22e6feb876a993fe30fd9e8336f5bf6.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1994936ebb09fed720f969439d19593b228aec95.svg b/doc/build/html/_images/math/1994936ebb09fed720f969439d19593b228aec95.svg deleted file mode 100644 index c60e75c..0000000 --- a/doc/build/html/_images/math/1994936ebb09fed720f969439d19593b228aec95.svg +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1bbf876b63a42c5c5fd537974667f28e4fdfe71f.svg b/doc/build/html/_images/math/1bbf876b63a42c5c5fd537974667f28e4fdfe71f.svg deleted file mode 100644 index f3f435d..0000000 --- a/doc/build/html/_images/math/1bbf876b63a42c5c5fd537974667f28e4fdfe71f.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1d1d05c2792b02598e523fd646d6268749231320.svg b/doc/build/html/_images/math/1d1d05c2792b02598e523fd646d6268749231320.svg deleted file mode 100644 index 7538762..0000000 --- a/doc/build/html/_images/math/1d1d05c2792b02598e523fd646d6268749231320.svg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1db3a2eb7103da4d39315e15158991ac5eb31a8f.svg b/doc/build/html/_images/math/1db3a2eb7103da4d39315e15158991ac5eb31a8f.svg deleted file mode 100644 index 716e802..0000000 --- a/doc/build/html/_images/math/1db3a2eb7103da4d39315e15158991ac5eb31a8f.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1e7e72c2a7ae8acbb9c293a2681b3cdf41e403b7.svg b/doc/build/html/_images/math/1e7e72c2a7ae8acbb9c293a2681b3cdf41e403b7.svg deleted file mode 100644 index f3f435d..0000000 --- a/doc/build/html/_images/math/1e7e72c2a7ae8acbb9c293a2681b3cdf41e403b7.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1ec3c5f46f67104788324ef961a5eb2126495009.svg b/doc/build/html/_images/math/1ec3c5f46f67104788324ef961a5eb2126495009.svg deleted file mode 100644 index a90d9e4..0000000 --- a/doc/build/html/_images/math/1ec3c5f46f67104788324ef961a5eb2126495009.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1f35e0be8716b58b223dddd9dc21d3cbf9b932c9.svg b/doc/build/html/_images/math/1f35e0be8716b58b223dddd9dc21d3cbf9b932c9.svg deleted file mode 100644 index 91b88ad..0000000 --- a/doc/build/html/_images/math/1f35e0be8716b58b223dddd9dc21d3cbf9b932c9.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/1fc5e2a4ce5b523a6e99c0937d45b0f285461097.svg b/doc/build/html/_images/math/1fc5e2a4ce5b523a6e99c0937d45b0f285461097.svg deleted file mode 100644 index a8df688..0000000 --- a/doc/build/html/_images/math/1fc5e2a4ce5b523a6e99c0937d45b0f285461097.svg +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/20219b0570be52c3f596972c4cd5461a162cccf9.svg b/doc/build/html/_images/math/20219b0570be52c3f596972c4cd5461a162cccf9.svg deleted file mode 100644 index 3fab4ba..0000000 --- a/doc/build/html/_images/math/20219b0570be52c3f596972c4cd5461a162cccf9.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/22bd53275636be43362c037f2ad50f5f63231e10.svg b/doc/build/html/_images/math/22bd53275636be43362c037f2ad50f5f63231e10.svg deleted file mode 100644 index f9ff864..0000000 --- a/doc/build/html/_images/math/22bd53275636be43362c037f2ad50f5f63231e10.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/2417422cdf63ed202b16462208f8a62630f99679.svg b/doc/build/html/_images/math/2417422cdf63ed202b16462208f8a62630f99679.svg deleted file mode 100644 index d06c2d2..0000000 --- a/doc/build/html/_images/math/2417422cdf63ed202b16462208f8a62630f99679.svg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/24642c97b2dc64d03a103607414f676b6e9daf5c.svg b/doc/build/html/_images/math/24642c97b2dc64d03a103607414f676b6e9daf5c.svg deleted file mode 100644 index c1c058d..0000000 --- a/doc/build/html/_images/math/24642c97b2dc64d03a103607414f676b6e9daf5c.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/24c437dab01cb429328b3fe9d20e8f5b64cefdc0.svg b/doc/build/html/_images/math/24c437dab01cb429328b3fe9d20e8f5b64cefdc0.svg deleted file mode 100644 index 6c61428..0000000 --- a/doc/build/html/_images/math/24c437dab01cb429328b3fe9d20e8f5b64cefdc0.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/262187dda48952ac064d34af5a8dc5ccc5df1126.svg b/doc/build/html/_images/math/262187dda48952ac064d34af5a8dc5ccc5df1126.svg deleted file mode 100644 index 749a1ee..0000000 --- a/doc/build/html/_images/math/262187dda48952ac064d34af5a8dc5ccc5df1126.svg +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/26f3be2a43bd1ac2dfa07345e26336292899f61f.svg b/doc/build/html/_images/math/26f3be2a43bd1ac2dfa07345e26336292899f61f.svg deleted file mode 100644 index b7f419b..0000000 --- a/doc/build/html/_images/math/26f3be2a43bd1ac2dfa07345e26336292899f61f.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/276f330b47308dae1686a2c0030783ed20a8866d.svg b/doc/build/html/_images/math/276f330b47308dae1686a2c0030783ed20a8866d.svg deleted file mode 100644 index 17c0cbe..0000000 --- a/doc/build/html/_images/math/276f330b47308dae1686a2c0030783ed20a8866d.svg +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/278a79d24fb8713d66c77d17909485589a944e60.svg b/doc/build/html/_images/math/278a79d24fb8713d66c77d17909485589a944e60.svg deleted file mode 100644 index bf087ed..0000000 --- a/doc/build/html/_images/math/278a79d24fb8713d66c77d17909485589a944e60.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/29a11053c0f5950b2126ebf4829f569eeaa85ad6.svg b/doc/build/html/_images/math/29a11053c0f5950b2126ebf4829f569eeaa85ad6.svg deleted file mode 100644 index 54b0ef3..0000000 --- a/doc/build/html/_images/math/29a11053c0f5950b2126ebf4829f569eeaa85ad6.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/2a63b1f89224cb96d4e2b5a0f9494eac68234a42.svg b/doc/build/html/_images/math/2a63b1f89224cb96d4e2b5a0f9494eac68234a42.svg deleted file mode 100644 index 3cf35e5..0000000 --- a/doc/build/html/_images/math/2a63b1f89224cb96d4e2b5a0f9494eac68234a42.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/2b4c25ea56a82ed5f9d8182f3c38c632ab47e8bd.svg b/doc/build/html/_images/math/2b4c25ea56a82ed5f9d8182f3c38c632ab47e8bd.svg deleted file mode 100644 index c60aba4..0000000 --- a/doc/build/html/_images/math/2b4c25ea56a82ed5f9d8182f3c38c632ab47e8bd.svg +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/2bfab760cd5a82cd980862645b628ea4c2a97f34.svg b/doc/build/html/_images/math/2bfab760cd5a82cd980862645b628ea4c2a97f34.svg deleted file mode 100644 index 83eb70d..0000000 --- a/doc/build/html/_images/math/2bfab760cd5a82cd980862645b628ea4c2a97f34.svg +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/2dc5e48f0f26f08073e6e1cdd70ff876c6ec2434.svg b/doc/build/html/_images/math/2dc5e48f0f26f08073e6e1cdd70ff876c6ec2434.svg deleted file mode 100644 index 5b253d8..0000000 --- a/doc/build/html/_images/math/2dc5e48f0f26f08073e6e1cdd70ff876c6ec2434.svg +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/2e21d478eedaa358bccb9aa3c57a5b290e671863.svg b/doc/build/html/_images/math/2e21d478eedaa358bccb9aa3c57a5b290e671863.svg deleted file mode 100644 index 47f743f..0000000 --- a/doc/build/html/_images/math/2e21d478eedaa358bccb9aa3c57a5b290e671863.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/2f7215ad8dc4415a832b9101c30f98ad94307f61.svg b/doc/build/html/_images/math/2f7215ad8dc4415a832b9101c30f98ad94307f61.svg deleted file mode 100644 index be14422..0000000 --- a/doc/build/html/_images/math/2f7215ad8dc4415a832b9101c30f98ad94307f61.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3075f944e67c6a986438fad3c0d23ee7cc191a88.svg b/doc/build/html/_images/math/3075f944e67c6a986438fad3c0d23ee7cc191a88.svg deleted file mode 100644 index 4cd6eba..0000000 --- a/doc/build/html/_images/math/3075f944e67c6a986438fad3c0d23ee7cc191a88.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/30ca5614d0c1f1e407a064238095024a155e2466.svg b/doc/build/html/_images/math/30ca5614d0c1f1e407a064238095024a155e2466.svg deleted file mode 100644 index f3f435d..0000000 --- a/doc/build/html/_images/math/30ca5614d0c1f1e407a064238095024a155e2466.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/314087b4a49447d217e1247a7a58aeb2ebf04f6b.svg b/doc/build/html/_images/math/314087b4a49447d217e1247a7a58aeb2ebf04f6b.svg deleted file mode 100644 index 5c6f94d..0000000 --- a/doc/build/html/_images/math/314087b4a49447d217e1247a7a58aeb2ebf04f6b.svg +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/32843bfb29b74cf3428d62c0a0bb4a85018bf793.svg b/doc/build/html/_images/math/32843bfb29b74cf3428d62c0a0bb4a85018bf793.svg deleted file mode 100644 index 445a72b..0000000 --- a/doc/build/html/_images/math/32843bfb29b74cf3428d62c0a0bb4a85018bf793.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/334a9ad9e9541a3f8be7530fed1ec7373510a227.svg b/doc/build/html/_images/math/334a9ad9e9541a3f8be7530fed1ec7373510a227.svg deleted file mode 100644 index 8be4928..0000000 --- a/doc/build/html/_images/math/334a9ad9e9541a3f8be7530fed1ec7373510a227.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/33b86e3c01637e2ffa96b8a23365bd27e98594fb.svg b/doc/build/html/_images/math/33b86e3c01637e2ffa96b8a23365bd27e98594fb.svg deleted file mode 100644 index f531ab6..0000000 --- a/doc/build/html/_images/math/33b86e3c01637e2ffa96b8a23365bd27e98594fb.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/33f37b6cae353c26c80f089c5b354e7575e7c201.svg b/doc/build/html/_images/math/33f37b6cae353c26c80f089c5b354e7575e7c201.svg deleted file mode 100644 index 23c0fa0..0000000 --- a/doc/build/html/_images/math/33f37b6cae353c26c80f089c5b354e7575e7c201.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3436a201726f4f03e64783f41d44d9ae3edd5118.svg b/doc/build/html/_images/math/3436a201726f4f03e64783f41d44d9ae3edd5118.svg deleted file mode 100644 index 6c61428..0000000 --- a/doc/build/html/_images/math/3436a201726f4f03e64783f41d44d9ae3edd5118.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/34e91bc0685dd54adb3e06c06e6fc0cc4d8ad419.svg b/doc/build/html/_images/math/34e91bc0685dd54adb3e06c06e6fc0cc4d8ad419.svg deleted file mode 100644 index f5a0a58..0000000 --- a/doc/build/html/_images/math/34e91bc0685dd54adb3e06c06e6fc0cc4d8ad419.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/354d9ac40cde930452a7f40dd91dc043c92aba12.svg b/doc/build/html/_images/math/354d9ac40cde930452a7f40dd91dc043c92aba12.svg deleted file mode 100644 index 81205c5..0000000 --- a/doc/build/html/_images/math/354d9ac40cde930452a7f40dd91dc043c92aba12.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/37c1815c2dba065ef8c2f84100676cf9d1b6511a.svg b/doc/build/html/_images/math/37c1815c2dba065ef8c2f84100676cf9d1b6511a.svg deleted file mode 100644 index 2782267..0000000 --- a/doc/build/html/_images/math/37c1815c2dba065ef8c2f84100676cf9d1b6511a.svg +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3939cf0a8e341efac8ba1aeb5ae6271cd00c37c7.svg b/doc/build/html/_images/math/3939cf0a8e341efac8ba1aeb5ae6271cd00c37c7.svg deleted file mode 100644 index 1656617..0000000 --- a/doc/build/html/_images/math/3939cf0a8e341efac8ba1aeb5ae6271cd00c37c7.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3a0879f2e436b8778f86d0b3315af89e4b23061e.svg b/doc/build/html/_images/math/3a0879f2e436b8778f86d0b3315af89e4b23061e.svg deleted file mode 100644 index 068e833..0000000 --- a/doc/build/html/_images/math/3a0879f2e436b8778f86d0b3315af89e4b23061e.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3c5133875b5087d8f8b521a6b737f82d715cf7e7.svg b/doc/build/html/_images/math/3c5133875b5087d8f8b521a6b737f82d715cf7e7.svg deleted file mode 100644 index 5c80b04..0000000 --- a/doc/build/html/_images/math/3c5133875b5087d8f8b521a6b737f82d715cf7e7.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3cdf4d8583b839b15fed122e5293d261cc34639d.svg b/doc/build/html/_images/math/3cdf4d8583b839b15fed122e5293d261cc34639d.svg deleted file mode 100644 index f3f435d..0000000 --- a/doc/build/html/_images/math/3cdf4d8583b839b15fed122e5293d261cc34639d.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3eb2a0684a9c3d7c7a02334d788b2bd85cc83b55.svg b/doc/build/html/_images/math/3eb2a0684a9c3d7c7a02334d788b2bd85cc83b55.svg deleted file mode 100644 index 30c0ae5..0000000 --- a/doc/build/html/_images/math/3eb2a0684a9c3d7c7a02334d788b2bd85cc83b55.svg +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3f0efc21d61f6d73d821b258392b7be1fc9036eb.svg b/doc/build/html/_images/math/3f0efc21d61f6d73d821b258392b7be1fc9036eb.svg deleted file mode 100644 index f991058..0000000 --- a/doc/build/html/_images/math/3f0efc21d61f6d73d821b258392b7be1fc9036eb.svg +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3fa33eeafbc80a0bcf2766e8f56e9cb2b6148e79.svg b/doc/build/html/_images/math/3fa33eeafbc80a0bcf2766e8f56e9cb2b6148e79.svg deleted file mode 100644 index dec7a64..0000000 --- a/doc/build/html/_images/math/3fa33eeafbc80a0bcf2766e8f56e9cb2b6148e79.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3fc332dc07916d83f75fcddf6da06a7734032ee9.svg b/doc/build/html/_images/math/3fc332dc07916d83f75fcddf6da06a7734032ee9.svg deleted file mode 100644 index 09a7149..0000000 --- a/doc/build/html/_images/math/3fc332dc07916d83f75fcddf6da06a7734032ee9.svg +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/3ffc6e15d2c381b0ab11691e13dba314d2c6541d.svg b/doc/build/html/_images/math/3ffc6e15d2c381b0ab11691e13dba314d2c6541d.svg deleted file mode 100644 index 4f3b8b7..0000000 --- a/doc/build/html/_images/math/3ffc6e15d2c381b0ab11691e13dba314d2c6541d.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/4004b3a0b74a3d25993573e61733383293f43681.svg b/doc/build/html/_images/math/4004b3a0b74a3d25993573e61733383293f43681.svg deleted file mode 100644 index 1b4963d..0000000 --- a/doc/build/html/_images/math/4004b3a0b74a3d25993573e61733383293f43681.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/42273dafbdeac1dd5bdf8568a1e9ab8625c0629d.svg b/doc/build/html/_images/math/42273dafbdeac1dd5bdf8568a1e9ab8625c0629d.svg deleted file mode 100644 index 84b934a..0000000 --- a/doc/build/html/_images/math/42273dafbdeac1dd5bdf8568a1e9ab8625c0629d.svg +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/422ce4de46a354723a0f5b33995d885c86bb0e70.svg b/doc/build/html/_images/math/422ce4de46a354723a0f5b33995d885c86bb0e70.svg deleted file mode 100644 index 6c61428..0000000 --- a/doc/build/html/_images/math/422ce4de46a354723a0f5b33995d885c86bb0e70.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/4298057f95b17024436a0d57ca56eae8125e10ec.svg b/doc/build/html/_images/math/4298057f95b17024436a0d57ca56eae8125e10ec.svg deleted file mode 100644 index 19256da..0000000 --- a/doc/build/html/_images/math/4298057f95b17024436a0d57ca56eae8125e10ec.svg +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/42da9c8a8264ec5b3d99bd3549773d2113758a5f.svg b/doc/build/html/_images/math/42da9c8a8264ec5b3d99bd3549773d2113758a5f.svg deleted file mode 100644 index 9f4a820..0000000 --- a/doc/build/html/_images/math/42da9c8a8264ec5b3d99bd3549773d2113758a5f.svg +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/43434266ad5b9f36d523d70ff88db5c4e9366b03.svg b/doc/build/html/_images/math/43434266ad5b9f36d523d70ff88db5c4e9366b03.svg deleted file mode 100644 index b8865a4..0000000 --- a/doc/build/html/_images/math/43434266ad5b9f36d523d70ff88db5c4e9366b03.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/4713e4c065d6aabec3acece28c5ecc882faa119a.svg b/doc/build/html/_images/math/4713e4c065d6aabec3acece28c5ecc882faa119a.svg deleted file mode 100644 index f9e1a4c..0000000 --- a/doc/build/html/_images/math/4713e4c065d6aabec3acece28c5ecc882faa119a.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/478aeca314882e29dc3a52d64624061fb36948f0.svg b/doc/build/html/_images/math/478aeca314882e29dc3a52d64624061fb36948f0.svg deleted file mode 100644 index 1f5867d..0000000 --- a/doc/build/html/_images/math/478aeca314882e29dc3a52d64624061fb36948f0.svg +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/48d3c54aba5df0dae426f9470d65778e8ccc24ab.svg b/doc/build/html/_images/math/48d3c54aba5df0dae426f9470d65778e8ccc24ab.svg deleted file mode 100644 index 093ca17..0000000 --- a/doc/build/html/_images/math/48d3c54aba5df0dae426f9470d65778e8ccc24ab.svg +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/4966d2d6002bc14e00e77569c63b325e5b02f101.svg b/doc/build/html/_images/math/4966d2d6002bc14e00e77569c63b325e5b02f101.svg deleted file mode 100644 index c758361..0000000 --- a/doc/build/html/_images/math/4966d2d6002bc14e00e77569c63b325e5b02f101.svg +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/49a5030ceb5f0c5f44d4581db994508f66b20dfa.svg b/doc/build/html/_images/math/49a5030ceb5f0c5f44d4581db994508f66b20dfa.svg deleted file mode 100644 index 76ab1e6..0000000 --- a/doc/build/html/_images/math/49a5030ceb5f0c5f44d4581db994508f66b20dfa.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/4d427448f9b8b54db19e316c805033a7abfe11d2.svg b/doc/build/html/_images/math/4d427448f9b8b54db19e316c805033a7abfe11d2.svg deleted file mode 100644 index c689ec2..0000000 --- a/doc/build/html/_images/math/4d427448f9b8b54db19e316c805033a7abfe11d2.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/4d588662930e30ecc01abfa745b194bfb5ffbb27.svg b/doc/build/html/_images/math/4d588662930e30ecc01abfa745b194bfb5ffbb27.svg deleted file mode 100644 index ab4a3b2..0000000 --- a/doc/build/html/_images/math/4d588662930e30ecc01abfa745b194bfb5ffbb27.svg +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/4dc55ad8626b971383946574d473861074202c72.svg b/doc/build/html/_images/math/4dc55ad8626b971383946574d473861074202c72.svg deleted file mode 100644 index 6c61428..0000000 --- a/doc/build/html/_images/math/4dc55ad8626b971383946574d473861074202c72.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/4de73a2c1d1501096302e1e173eaf947ceb9c7d4.svg b/doc/build/html/_images/math/4de73a2c1d1501096302e1e173eaf947ceb9c7d4.svg deleted file mode 100644 index c313d19..0000000 --- a/doc/build/html/_images/math/4de73a2c1d1501096302e1e173eaf947ceb9c7d4.svg +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/4f85c9abccccc8bc1f4b830fa22701457c595b96.png b/doc/build/html/_images/math/4f85c9abccccc8bc1f4b830fa22701457c595b96.png deleted file mode 100644 index 2548abe..0000000 Binary files a/doc/build/html/_images/math/4f85c9abccccc8bc1f4b830fa22701457c595b96.png and /dev/null differ diff --git a/doc/build/html/_images/math/4f85c9abccccc8bc1f4b830fa22701457c595b96.svg b/doc/build/html/_images/math/4f85c9abccccc8bc1f4b830fa22701457c595b96.svg deleted file mode 100644 index fb57299..0000000 --- a/doc/build/html/_images/math/4f85c9abccccc8bc1f4b830fa22701457c595b96.svg +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/51b8ee3def56618c3d5c55841743d53ffbedbcfb.svg b/doc/build/html/_images/math/51b8ee3def56618c3d5c55841743d53ffbedbcfb.svg deleted file mode 100644 index b028c15..0000000 --- a/doc/build/html/_images/math/51b8ee3def56618c3d5c55841743d53ffbedbcfb.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/52bc533fab728efc3a24ef236fcb017ad2888830.svg b/doc/build/html/_images/math/52bc533fab728efc3a24ef236fcb017ad2888830.svg deleted file mode 100644 index 1a3d3d5..0000000 --- a/doc/build/html/_images/math/52bc533fab728efc3a24ef236fcb017ad2888830.svg +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/537fa099ced1d1933aba81912860d6c60e6c6f75.svg b/doc/build/html/_images/math/537fa099ced1d1933aba81912860d6c60e6c6f75.svg deleted file mode 100644 index 8772fb8..0000000 --- a/doc/build/html/_images/math/537fa099ced1d1933aba81912860d6c60e6c6f75.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/5380d8227d0a06608b108a26b4a618972b4b7e28.svg b/doc/build/html/_images/math/5380d8227d0a06608b108a26b4a618972b4b7e28.svg deleted file mode 100644 index 2b59167..0000000 --- a/doc/build/html/_images/math/5380d8227d0a06608b108a26b4a618972b4b7e28.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/538b0fab8c90c1abe8c6abaa3c807886040452db.svg b/doc/build/html/_images/math/538b0fab8c90c1abe8c6abaa3c807886040452db.svg deleted file mode 100644 index e92295f..0000000 --- a/doc/build/html/_images/math/538b0fab8c90c1abe8c6abaa3c807886040452db.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/565b4d912dcfd08351ed35fd0deb3cadc0781241.svg b/doc/build/html/_images/math/565b4d912dcfd08351ed35fd0deb3cadc0781241.svg deleted file mode 100644 index 16f68bd..0000000 --- a/doc/build/html/_images/math/565b4d912dcfd08351ed35fd0deb3cadc0781241.svg +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/57b0d3fbe6f17a0e706fda6039130d8aaaf32903.svg b/doc/build/html/_images/math/57b0d3fbe6f17a0e706fda6039130d8aaaf32903.svg deleted file mode 100644 index feebd72..0000000 --- a/doc/build/html/_images/math/57b0d3fbe6f17a0e706fda6039130d8aaaf32903.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/5a00c38ab6f040dfa75be56918953af44dc11637.svg b/doc/build/html/_images/math/5a00c38ab6f040dfa75be56918953af44dc11637.svg deleted file mode 100644 index ffc8c4f..0000000 --- a/doc/build/html/_images/math/5a00c38ab6f040dfa75be56918953af44dc11637.svg +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/5acebcc879cae1694dcc537b99796e0dc0e0ff05.svg b/doc/build/html/_images/math/5acebcc879cae1694dcc537b99796e0dc0e0ff05.svg deleted file mode 100644 index eaf0f91..0000000 --- a/doc/build/html/_images/math/5acebcc879cae1694dcc537b99796e0dc0e0ff05.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/5bd3cd582dce130ac602d5d805972076e5bc0f56.svg b/doc/build/html/_images/math/5bd3cd582dce130ac602d5d805972076e5bc0f56.svg deleted file mode 100644 index 2b036ca..0000000 --- a/doc/build/html/_images/math/5bd3cd582dce130ac602d5d805972076e5bc0f56.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/5cf94fab747054130daaf436fc83ab590969c35f.svg b/doc/build/html/_images/math/5cf94fab747054130daaf436fc83ab590969c35f.svg deleted file mode 100644 index f15e5c7..0000000 --- a/doc/build/html/_images/math/5cf94fab747054130daaf436fc83ab590969c35f.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/5e158f7fd5d27c3feef4c9b1500d451656fe2aa9.svg b/doc/build/html/_images/math/5e158f7fd5d27c3feef4c9b1500d451656fe2aa9.svg deleted file mode 100644 index 91b1c26..0000000 --- a/doc/build/html/_images/math/5e158f7fd5d27c3feef4c9b1500d451656fe2aa9.svg +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/5f6f5e2b2f037821ad3386d2355364f2667e3c34.svg b/doc/build/html/_images/math/5f6f5e2b2f037821ad3386d2355364f2667e3c34.svg deleted file mode 100644 index f9d63f9..0000000 --- a/doc/build/html/_images/math/5f6f5e2b2f037821ad3386d2355364f2667e3c34.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/604a42b94739b04fa9559a97c3703816bf57aa5c.svg b/doc/build/html/_images/math/604a42b94739b04fa9559a97c3703816bf57aa5c.svg deleted file mode 100644 index 5e6adc0..0000000 --- a/doc/build/html/_images/math/604a42b94739b04fa9559a97c3703816bf57aa5c.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/607985174357bbbea2e2b47ab0694b2d21a71b35.svg b/doc/build/html/_images/math/607985174357bbbea2e2b47ab0694b2d21a71b35.svg deleted file mode 100644 index 784201c..0000000 --- a/doc/build/html/_images/math/607985174357bbbea2e2b47ab0694b2d21a71b35.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/60f4e38bb9ff4a7bcb201e82cb956a3ccf064632.svg b/doc/build/html/_images/math/60f4e38bb9ff4a7bcb201e82cb956a3ccf064632.svg deleted file mode 100644 index d66df7f..0000000 --- a/doc/build/html/_images/math/60f4e38bb9ff4a7bcb201e82cb956a3ccf064632.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/620e45afe56ccc0dae7d9566d244b13bb6cb0631.svg b/doc/build/html/_images/math/620e45afe56ccc0dae7d9566d244b13bb6cb0631.svg deleted file mode 100644 index c60aba4..0000000 --- a/doc/build/html/_images/math/620e45afe56ccc0dae7d9566d244b13bb6cb0631.svg +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/625a1ccce064b171eb9d5ec015e07d234ef26c74.svg b/doc/build/html/_images/math/625a1ccce064b171eb9d5ec015e07d234ef26c74.svg deleted file mode 100644 index 9d56d84..0000000 --- a/doc/build/html/_images/math/625a1ccce064b171eb9d5ec015e07d234ef26c74.svg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/643dd082a2b49d9ebdb87533aac62fdd342f4fd5.svg b/doc/build/html/_images/math/643dd082a2b49d9ebdb87533aac62fdd342f4fd5.svg deleted file mode 100644 index 477060d..0000000 --- a/doc/build/html/_images/math/643dd082a2b49d9ebdb87533aac62fdd342f4fd5.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/64728a32abbc0b68b58acd0467082b83653421df.svg b/doc/build/html/_images/math/64728a32abbc0b68b58acd0467082b83653421df.svg deleted file mode 100644 index ec79f8b..0000000 --- a/doc/build/html/_images/math/64728a32abbc0b68b58acd0467082b83653421df.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/66eb37710389b629d7ffa626fb55276426bef938.svg b/doc/build/html/_images/math/66eb37710389b629d7ffa626fb55276426bef938.svg deleted file mode 100644 index 15dfb50..0000000 --- a/doc/build/html/_images/math/66eb37710389b629d7ffa626fb55276426bef938.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6a99995af47f16f85dab4ffa3208177455960e73.svg b/doc/build/html/_images/math/6a99995af47f16f85dab4ffa3208177455960e73.svg deleted file mode 100644 index cf16993..0000000 --- a/doc/build/html/_images/math/6a99995af47f16f85dab4ffa3208177455960e73.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6bb003bcdf823b102e5c80f3ca1cd4208c7493fc.svg b/doc/build/html/_images/math/6bb003bcdf823b102e5c80f3ca1cd4208c7493fc.svg deleted file mode 100644 index f3f435d..0000000 --- a/doc/build/html/_images/math/6bb003bcdf823b102e5c80f3ca1cd4208c7493fc.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6bdb1b0b4006f5b62d10449cd280f311f4cf12f8.svg b/doc/build/html/_images/math/6bdb1b0b4006f5b62d10449cd280f311f4cf12f8.svg deleted file mode 100644 index 4cd6eba..0000000 --- a/doc/build/html/_images/math/6bdb1b0b4006f5b62d10449cd280f311f4cf12f8.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6c62b0ff237d0ef459470304b79de4219c771037.svg b/doc/build/html/_images/math/6c62b0ff237d0ef459470304b79de4219c771037.svg deleted file mode 100644 index f9ff864..0000000 --- a/doc/build/html/_images/math/6c62b0ff237d0ef459470304b79de4219c771037.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6d7f995d88e257359a4ce4f854c967791c1ec71d.svg b/doc/build/html/_images/math/6d7f995d88e257359a4ce4f854c967791c1ec71d.svg deleted file mode 100644 index d5c35c6..0000000 --- a/doc/build/html/_images/math/6d7f995d88e257359a4ce4f854c967791c1ec71d.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6d95eec30809d2f72c4d645e69ee6ba5fd3f0767.svg b/doc/build/html/_images/math/6d95eec30809d2f72c4d645e69ee6ba5fd3f0767.svg deleted file mode 100644 index 5d2b052..0000000 --- a/doc/build/html/_images/math/6d95eec30809d2f72c4d645e69ee6ba5fd3f0767.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6de99ea1d6d13dbeedcdfcf7e3807cdd4f2e8594.svg b/doc/build/html/_images/math/6de99ea1d6d13dbeedcdfcf7e3807cdd4f2e8594.svg deleted file mode 100644 index b2bef05..0000000 --- a/doc/build/html/_images/math/6de99ea1d6d13dbeedcdfcf7e3807cdd4f2e8594.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6e064e1b27f430eda7087e304da72f29d1f0b102.svg b/doc/build/html/_images/math/6e064e1b27f430eda7087e304da72f29d1f0b102.svg deleted file mode 100644 index a6766a3..0000000 --- a/doc/build/html/_images/math/6e064e1b27f430eda7087e304da72f29d1f0b102.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6efb62efa4d897975a5924d6f8ef3b7466fc7b4a.svg b/doc/build/html/_images/math/6efb62efa4d897975a5924d6f8ef3b7466fc7b4a.svg deleted file mode 100644 index 983bd13..0000000 --- a/doc/build/html/_images/math/6efb62efa4d897975a5924d6f8ef3b7466fc7b4a.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6f23f2ac78d6d7452697a0a4d711c406a7e04b6b.svg b/doc/build/html/_images/math/6f23f2ac78d6d7452697a0a4d711c406a7e04b6b.svg deleted file mode 100644 index 1fc5df7..0000000 --- a/doc/build/html/_images/math/6f23f2ac78d6d7452697a0a4d711c406a7e04b6b.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6fd2125a6059ef9b07f4cbe32c2f5b35ee13ff49.svg b/doc/build/html/_images/math/6fd2125a6059ef9b07f4cbe32c2f5b35ee13ff49.svg deleted file mode 100644 index 1368dbb..0000000 --- a/doc/build/html/_images/math/6fd2125a6059ef9b07f4cbe32c2f5b35ee13ff49.svg +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/6fdc8bbb8b19c7ad0794ceefd47b82c0111b21f8.svg b/doc/build/html/_images/math/6fdc8bbb8b19c7ad0794ceefd47b82c0111b21f8.svg deleted file mode 100644 index 344767d..0000000 --- a/doc/build/html/_images/math/6fdc8bbb8b19c7ad0794ceefd47b82c0111b21f8.svg +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/702f28367db2bbf757f819d55f238962369384ad.svg b/doc/build/html/_images/math/702f28367db2bbf757f819d55f238962369384ad.svg deleted file mode 100644 index 9bc1f01..0000000 --- a/doc/build/html/_images/math/702f28367db2bbf757f819d55f238962369384ad.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/71a114da143774e891c3cb6c37c39d8bc98c0386.svg b/doc/build/html/_images/math/71a114da143774e891c3cb6c37c39d8bc98c0386.svg deleted file mode 100644 index f3f435d..0000000 --- a/doc/build/html/_images/math/71a114da143774e891c3cb6c37c39d8bc98c0386.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/746912d7454caf98daf2e20797372b64bb3b728e.svg b/doc/build/html/_images/math/746912d7454caf98daf2e20797372b64bb3b728e.svg deleted file mode 100644 index f9e1a4c..0000000 --- a/doc/build/html/_images/math/746912d7454caf98daf2e20797372b64bb3b728e.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/75427250d809caece36cbdd61547f4f5e714757e.svg b/doc/build/html/_images/math/75427250d809caece36cbdd61547f4f5e714757e.svg deleted file mode 100644 index 7d11232..0000000 --- a/doc/build/html/_images/math/75427250d809caece36cbdd61547f4f5e714757e.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/758e69f9e44c00c28db11caa744ce8468e26062d.svg b/doc/build/html/_images/math/758e69f9e44c00c28db11caa744ce8468e26062d.svg deleted file mode 100644 index 15608ff..0000000 --- a/doc/build/html/_images/math/758e69f9e44c00c28db11caa744ce8468e26062d.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/7648bfc0796ff33966fbc002c446b2242d296fd9.svg b/doc/build/html/_images/math/7648bfc0796ff33966fbc002c446b2242d296fd9.svg deleted file mode 100644 index 165e7bb..0000000 --- a/doc/build/html/_images/math/7648bfc0796ff33966fbc002c446b2242d296fd9.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/768668a1db4f505075a95e7966ad942d5fb6fd83.svg b/doc/build/html/_images/math/768668a1db4f505075a95e7966ad942d5fb6fd83.svg deleted file mode 100644 index c2651cb..0000000 --- a/doc/build/html/_images/math/768668a1db4f505075a95e7966ad942d5fb6fd83.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/76b4cd411d70f6fc673e2311a6a786f54b72bf67.svg b/doc/build/html/_images/math/76b4cd411d70f6fc673e2311a6a786f54b72bf67.svg deleted file mode 100644 index 4340d20..0000000 --- a/doc/build/html/_images/math/76b4cd411d70f6fc673e2311a6a786f54b72bf67.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/78965124ba0a627060835202535c7861f9b8c69b.svg b/doc/build/html/_images/math/78965124ba0a627060835202535c7861f9b8c69b.svg deleted file mode 100644 index 98a4a20..0000000 --- a/doc/build/html/_images/math/78965124ba0a627060835202535c7861f9b8c69b.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/79765386818a281cce0f753107ac50656c0cc8fa.svg b/doc/build/html/_images/math/79765386818a281cce0f753107ac50656c0cc8fa.svg deleted file mode 100644 index adb8faf..0000000 --- a/doc/build/html/_images/math/79765386818a281cce0f753107ac50656c0cc8fa.svg +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/7a274836cebcd29820798059050d713d9c2fc3f9.svg b/doc/build/html/_images/math/7a274836cebcd29820798059050d713d9c2fc3f9.svg deleted file mode 100644 index e68e872..0000000 --- a/doc/build/html/_images/math/7a274836cebcd29820798059050d713d9c2fc3f9.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/7a5577f4835bea58fb5e61feccfb2cac76ad365a.svg b/doc/build/html/_images/math/7a5577f4835bea58fb5e61feccfb2cac76ad365a.svg deleted file mode 100644 index 6047b1e..0000000 --- a/doc/build/html/_images/math/7a5577f4835bea58fb5e61feccfb2cac76ad365a.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/7aaf1912f6d672948be49227545febbb868e4887.svg b/doc/build/html/_images/math/7aaf1912f6d672948be49227545febbb868e4887.svg deleted file mode 100644 index ee29efe..0000000 --- a/doc/build/html/_images/math/7aaf1912f6d672948be49227545febbb868e4887.svg +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/7b6ca1926b0911a8c3523f091346cf45a7877c61.svg b/doc/build/html/_images/math/7b6ca1926b0911a8c3523f091346cf45a7877c61.svg deleted file mode 100644 index f7868c7..0000000 --- a/doc/build/html/_images/math/7b6ca1926b0911a8c3523f091346cf45a7877c61.svg +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/7bec4ba909b65b3426b4a35a78d3bb691135632f.svg b/doc/build/html/_images/math/7bec4ba909b65b3426b4a35a78d3bb691135632f.svg deleted file mode 100644 index 16ebb54..0000000 --- a/doc/build/html/_images/math/7bec4ba909b65b3426b4a35a78d3bb691135632f.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/7c31cda93cce15a6bef0ecb07b4221f15d15cc9f.svg b/doc/build/html/_images/math/7c31cda93cce15a6bef0ecb07b4221f15d15cc9f.svg deleted file mode 100644 index 978e5bc..0000000 --- a/doc/build/html/_images/math/7c31cda93cce15a6bef0ecb07b4221f15d15cc9f.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/7df716294edee0018b3f078e794ae5d964c4e7e5.svg b/doc/build/html/_images/math/7df716294edee0018b3f078e794ae5d964c4e7e5.svg deleted file mode 100644 index a4a90c9..0000000 --- a/doc/build/html/_images/math/7df716294edee0018b3f078e794ae5d964c4e7e5.svg +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/7e73c74dddb2e10b652efe45aa14cbb6023c92aa.svg b/doc/build/html/_images/math/7e73c74dddb2e10b652efe45aa14cbb6023c92aa.svg deleted file mode 100644 index dec7a64..0000000 --- a/doc/build/html/_images/math/7e73c74dddb2e10b652efe45aa14cbb6023c92aa.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/815a11ada9963c3e3b8ab06f0764c4a39027b903.svg b/doc/build/html/_images/math/815a11ada9963c3e3b8ab06f0764c4a39027b903.svg deleted file mode 100644 index 01fb6eb..0000000 --- a/doc/build/html/_images/math/815a11ada9963c3e3b8ab06f0764c4a39027b903.svg +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/82419b70ee4382ef98b643337d72fb4f360c54dc.svg b/doc/build/html/_images/math/82419b70ee4382ef98b643337d72fb4f360c54dc.svg deleted file mode 100644 index f3f435d..0000000 --- a/doc/build/html/_images/math/82419b70ee4382ef98b643337d72fb4f360c54dc.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/825f35a00bb05b6028399a1a574a9c9eceaae3dc.svg b/doc/build/html/_images/math/825f35a00bb05b6028399a1a574a9c9eceaae3dc.svg deleted file mode 100644 index 0847bb3..0000000 --- a/doc/build/html/_images/math/825f35a00bb05b6028399a1a574a9c9eceaae3dc.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/8282bc1515ee7f12235b6cf5ec58b653adacf9ab.svg b/doc/build/html/_images/math/8282bc1515ee7f12235b6cf5ec58b653adacf9ab.svg deleted file mode 100644 index c31f611..0000000 --- a/doc/build/html/_images/math/8282bc1515ee7f12235b6cf5ec58b653adacf9ab.svg +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/83e53e21f5584af23d7fbd41bdc8b4eb06e150d9.svg b/doc/build/html/_images/math/83e53e21f5584af23d7fbd41bdc8b4eb06e150d9.svg deleted file mode 100644 index 29bec1e..0000000 --- a/doc/build/html/_images/math/83e53e21f5584af23d7fbd41bdc8b4eb06e150d9.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/845e1f51c7b1adf37c30a54e0205dd325c0fbd83.svg b/doc/build/html/_images/math/845e1f51c7b1adf37c30a54e0205dd325c0fbd83.svg deleted file mode 100644 index 6c61428..0000000 --- a/doc/build/html/_images/math/845e1f51c7b1adf37c30a54e0205dd325c0fbd83.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/89771851f25b7b1500b570c182c104346f4caf10.svg b/doc/build/html/_images/math/89771851f25b7b1500b570c182c104346f4caf10.svg deleted file mode 100644 index 7b3fc8f..0000000 --- a/doc/build/html/_images/math/89771851f25b7b1500b570c182c104346f4caf10.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/8dd8da75ac6612b08aa1c953fe79f69d9614a370.svg b/doc/build/html/_images/math/8dd8da75ac6612b08aa1c953fe79f69d9614a370.svg deleted file mode 100644 index 9293140..0000000 --- a/doc/build/html/_images/math/8dd8da75ac6612b08aa1c953fe79f69d9614a370.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/90592e982322fa08f1b8ae0e6bcdaca11fc8de59.svg b/doc/build/html/_images/math/90592e982322fa08f1b8ae0e6bcdaca11fc8de59.svg deleted file mode 100644 index f9ff864..0000000 --- a/doc/build/html/_images/math/90592e982322fa08f1b8ae0e6bcdaca11fc8de59.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/9074d5122d0889ba7171982a92c523d35a2c447b.svg b/doc/build/html/_images/math/9074d5122d0889ba7171982a92c523d35a2c447b.svg deleted file mode 100644 index 4cd6eba..0000000 --- a/doc/build/html/_images/math/9074d5122d0889ba7171982a92c523d35a2c447b.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/90d7e53e2606d1ffdcc0d85fcc0be2db9b919797.svg b/doc/build/html/_images/math/90d7e53e2606d1ffdcc0d85fcc0be2db9b919797.svg deleted file mode 100644 index 410dc5d..0000000 --- a/doc/build/html/_images/math/90d7e53e2606d1ffdcc0d85fcc0be2db9b919797.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/916611b9f35e3a8af01f51234df415eb9adbfe61.svg b/doc/build/html/_images/math/916611b9f35e3a8af01f51234df415eb9adbfe61.svg deleted file mode 100644 index 6020781..0000000 --- a/doc/build/html/_images/math/916611b9f35e3a8af01f51234df415eb9adbfe61.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/9264520765ac3abdf00f5cff93232ef8f436c08c.svg b/doc/build/html/_images/math/9264520765ac3abdf00f5cff93232ef8f436c08c.svg deleted file mode 100644 index c31f611..0000000 --- a/doc/build/html/_images/math/9264520765ac3abdf00f5cff93232ef8f436c08c.svg +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/93dcd8e1232a9b79d01e09ea8c1be65747300380.svg b/doc/build/html/_images/math/93dcd8e1232a9b79d01e09ea8c1be65747300380.svg deleted file mode 100644 index 5db364a..0000000 --- a/doc/build/html/_images/math/93dcd8e1232a9b79d01e09ea8c1be65747300380.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/95f01e99347ef7cc15166f53ec582de9b502f58b.svg b/doc/build/html/_images/math/95f01e99347ef7cc15166f53ec582de9b502f58b.svg deleted file mode 100644 index 0ede58d..0000000 --- a/doc/build/html/_images/math/95f01e99347ef7cc15166f53ec582de9b502f58b.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/96b775e1d32106f30d74a6fc743db615ea6e51ea.svg b/doc/build/html/_images/math/96b775e1d32106f30d74a6fc743db615ea6e51ea.svg deleted file mode 100644 index 73a1d5d..0000000 --- a/doc/build/html/_images/math/96b775e1d32106f30d74a6fc743db615ea6e51ea.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/996b14e88c00afb0c157a014c7b04c192a6667d8.svg b/doc/build/html/_images/math/996b14e88c00afb0c157a014c7b04c192a6667d8.svg deleted file mode 100644 index 4cd6eba..0000000 --- a/doc/build/html/_images/math/996b14e88c00afb0c157a014c7b04c192a6667d8.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/9a55feec1c2be23566d6cb240ecccdb2cb43ffba.svg b/doc/build/html/_images/math/9a55feec1c2be23566d6cb240ecccdb2cb43ffba.svg deleted file mode 100644 index b00624b..0000000 --- a/doc/build/html/_images/math/9a55feec1c2be23566d6cb240ecccdb2cb43ffba.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/9d5c92329653dc668aca7375b3b801213e300119.svg b/doc/build/html/_images/math/9d5c92329653dc668aca7375b3b801213e300119.svg deleted file mode 100644 index 3cf35e5..0000000 --- a/doc/build/html/_images/math/9d5c92329653dc668aca7375b3b801213e300119.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/9ee353f5c7ea494aa1bb607f0b42adc51955a770.svg b/doc/build/html/_images/math/9ee353f5c7ea494aa1bb607f0b42adc51955a770.svg deleted file mode 100644 index 181ac5d..0000000 --- a/doc/build/html/_images/math/9ee353f5c7ea494aa1bb607f0b42adc51955a770.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/9f2aa4d374eadac24cdfa581a79bc6a768ce1b1d.svg b/doc/build/html/_images/math/9f2aa4d374eadac24cdfa581a79bc6a768ce1b1d.svg deleted file mode 100644 index 1f76872..0000000 --- a/doc/build/html/_images/math/9f2aa4d374eadac24cdfa581a79bc6a768ce1b1d.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/a540630fbb5173bbf2de2d38326e10e6977b2c18.svg b/doc/build/html/_images/math/a540630fbb5173bbf2de2d38326e10e6977b2c18.svg deleted file mode 100644 index 027e8ec..0000000 --- a/doc/build/html/_images/math/a540630fbb5173bbf2de2d38326e10e6977b2c18.svg +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/a64b8ca02be0eeffa5e995f1fe689a97f456c00b.svg b/doc/build/html/_images/math/a64b8ca02be0eeffa5e995f1fe689a97f456c00b.svg deleted file mode 100644 index ff4fe76..0000000 --- a/doc/build/html/_images/math/a64b8ca02be0eeffa5e995f1fe689a97f456c00b.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/a6502e03af9f1e3d8a7dce9053c7125364a0cae5.svg b/doc/build/html/_images/math/a6502e03af9f1e3d8a7dce9053c7125364a0cae5.svg deleted file mode 100644 index b26ff03..0000000 --- a/doc/build/html/_images/math/a6502e03af9f1e3d8a7dce9053c7125364a0cae5.svg +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/a6b3075593c703668bf03f396fce6a5fe573717f.svg b/doc/build/html/_images/math/a6b3075593c703668bf03f396fce6a5fe573717f.svg deleted file mode 100644 index e66bdf4..0000000 --- a/doc/build/html/_images/math/a6b3075593c703668bf03f396fce6a5fe573717f.svg +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/a7e563f9e2af17336ffd26eba981364f3f1d2168.svg b/doc/build/html/_images/math/a7e563f9e2af17336ffd26eba981364f3f1d2168.svg deleted file mode 100644 index 3cf35e5..0000000 --- a/doc/build/html/_images/math/a7e563f9e2af17336ffd26eba981364f3f1d2168.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/a80027a70b057da00d97dd31650e183080cb43b5.svg b/doc/build/html/_images/math/a80027a70b057da00d97dd31650e183080cb43b5.svg deleted file mode 100644 index dec7a64..0000000 --- a/doc/build/html/_images/math/a80027a70b057da00d97dd31650e183080cb43b5.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/a86f901ae855d64263ac2ab365517c5a7e5ccd14.svg b/doc/build/html/_images/math/a86f901ae855d64263ac2ab365517c5a7e5ccd14.svg deleted file mode 100644 index 3cf35e5..0000000 --- a/doc/build/html/_images/math/a86f901ae855d64263ac2ab365517c5a7e5ccd14.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/a93c0b8b1360d0ec2ee767ec404fb6345ab0577c.svg b/doc/build/html/_images/math/a93c0b8b1360d0ec2ee767ec404fb6345ab0577c.svg deleted file mode 100644 index dec7a64..0000000 --- a/doc/build/html/_images/math/a93c0b8b1360d0ec2ee767ec404fb6345ab0577c.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/a94d342ea354a4cdc3d38f7892d58fae9545a926.svg b/doc/build/html/_images/math/a94d342ea354a4cdc3d38f7892d58fae9545a926.svg deleted file mode 100644 index 15dfb50..0000000 --- a/doc/build/html/_images/math/a94d342ea354a4cdc3d38f7892d58fae9545a926.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/a9edef6fb240c138d22677e925b4b653bf9f990e.svg b/doc/build/html/_images/math/a9edef6fb240c138d22677e925b4b653bf9f990e.svg deleted file mode 100644 index 1b4963d..0000000 --- a/doc/build/html/_images/math/a9edef6fb240c138d22677e925b4b653bf9f990e.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ac67f9acd3737b5efcdc6cb35f39df773ebad7fe.svg b/doc/build/html/_images/math/ac67f9acd3737b5efcdc6cb35f39df773ebad7fe.svg deleted file mode 100644 index 522d0fd..0000000 --- a/doc/build/html/_images/math/ac67f9acd3737b5efcdc6cb35f39df773ebad7fe.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ad19952585566a69fb8233562ce15d85100265b5.svg b/doc/build/html/_images/math/ad19952585566a69fb8233562ce15d85100265b5.svg deleted file mode 100644 index 0bd5bdc..0000000 --- a/doc/build/html/_images/math/ad19952585566a69fb8233562ce15d85100265b5.svg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ad2a60679e9e7a3465fbf469680cf03f3821da24.svg b/doc/build/html/_images/math/ad2a60679e9e7a3465fbf469680cf03f3821da24.svg deleted file mode 100644 index f9e1a4c..0000000 --- a/doc/build/html/_images/math/ad2a60679e9e7a3465fbf469680cf03f3821da24.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ad3f2f323917c4c577d00563525d086013713d90.svg b/doc/build/html/_images/math/ad3f2f323917c4c577d00563525d086013713d90.svg deleted file mode 100644 index 5cb5293..0000000 --- a/doc/build/html/_images/math/ad3f2f323917c4c577d00563525d086013713d90.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ae53d53d52e506becc6c9eba1bbee8d52a0c0096.svg b/doc/build/html/_images/math/ae53d53d52e506becc6c9eba1bbee8d52a0c0096.svg deleted file mode 100644 index c1529b9..0000000 --- a/doc/build/html/_images/math/ae53d53d52e506becc6c9eba1bbee8d52a0c0096.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ae912ca6357b80cd4ac0e500254988780137d73d.svg b/doc/build/html/_images/math/ae912ca6357b80cd4ac0e500254988780137d73d.svg deleted file mode 100644 index f9e1a4c..0000000 --- a/doc/build/html/_images/math/ae912ca6357b80cd4ac0e500254988780137d73d.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/aec9099fc8c459eb433947bd6c9cc0f96fe38f98.svg b/doc/build/html/_images/math/aec9099fc8c459eb433947bd6c9cc0f96fe38f98.svg deleted file mode 100644 index 48fc237..0000000 --- a/doc/build/html/_images/math/aec9099fc8c459eb433947bd6c9cc0f96fe38f98.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/afd7514f494125ad1ed346ea20de2b74b04c6b71.svg b/doc/build/html/_images/math/afd7514f494125ad1ed346ea20de2b74b04c6b71.svg deleted file mode 100644 index d9c297f..0000000 --- a/doc/build/html/_images/math/afd7514f494125ad1ed346ea20de2b74b04c6b71.svg +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/b010802103c6f085b1f155800dc07fed61660394.svg b/doc/build/html/_images/math/b010802103c6f085b1f155800dc07fed61660394.svg deleted file mode 100644 index 22f1be6..0000000 --- a/doc/build/html/_images/math/b010802103c6f085b1f155800dc07fed61660394.svg +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/b0285722e6eed4a0fa69945efe4dfe0fbe124582.svg b/doc/build/html/_images/math/b0285722e6eed4a0fa69945efe4dfe0fbe124582.svg deleted file mode 100644 index 378228e..0000000 --- a/doc/build/html/_images/math/b0285722e6eed4a0fa69945efe4dfe0fbe124582.svg +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/b04167eaade600ab592e2a4441ffc27f5268cccf.svg b/doc/build/html/_images/math/b04167eaade600ab592e2a4441ffc27f5268cccf.svg deleted file mode 100644 index 710b5c8..0000000 --- a/doc/build/html/_images/math/b04167eaade600ab592e2a4441ffc27f5268cccf.svg +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/b2dfd7e61552070e476dde55e5f97dc21189d8bd.svg b/doc/build/html/_images/math/b2dfd7e61552070e476dde55e5f97dc21189d8bd.svg deleted file mode 100644 index 4cd6eba..0000000 --- a/doc/build/html/_images/math/b2dfd7e61552070e476dde55e5f97dc21189d8bd.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/b3c0a4ea1f5e913e84a4419ab76546940b976999.svg b/doc/build/html/_images/math/b3c0a4ea1f5e913e84a4419ab76546940b976999.svg deleted file mode 100644 index 35cc9eb..0000000 --- a/doc/build/html/_images/math/b3c0a4ea1f5e913e84a4419ab76546940b976999.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/b6eae68ed847d26cca7f5a8121d080f07d02bf94.svg b/doc/build/html/_images/math/b6eae68ed847d26cca7f5a8121d080f07d02bf94.svg deleted file mode 100644 index 0a709e2..0000000 --- a/doc/build/html/_images/math/b6eae68ed847d26cca7f5a8121d080f07d02bf94.svg +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/b86a1741e36673576f163fbc74134ff742b364d8.svg b/doc/build/html/_images/math/b86a1741e36673576f163fbc74134ff742b364d8.svg deleted file mode 100644 index 8a7892a..0000000 --- a/doc/build/html/_images/math/b86a1741e36673576f163fbc74134ff742b364d8.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ba7021e35d6fc44fe3d205ce7c892946b63c7507.svg b/doc/build/html/_images/math/ba7021e35d6fc44fe3d205ce7c892946b63c7507.svg deleted file mode 100644 index 2d46fac..0000000 --- a/doc/build/html/_images/math/ba7021e35d6fc44fe3d205ce7c892946b63c7507.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/bc438562da17dd63bb4fb24226789a7afac1650f.svg b/doc/build/html/_images/math/bc438562da17dd63bb4fb24226789a7afac1650f.svg deleted file mode 100644 index 6a8c704..0000000 --- a/doc/build/html/_images/math/bc438562da17dd63bb4fb24226789a7afac1650f.svg +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/c067c4215cbfc6897d6e5eaf14ded0dc221b972c.svg b/doc/build/html/_images/math/c067c4215cbfc6897d6e5eaf14ded0dc221b972c.svg deleted file mode 100644 index f3f435d..0000000 --- a/doc/build/html/_images/math/c067c4215cbfc6897d6e5eaf14ded0dc221b972c.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/c11a34fefbc9f3c9204a0f4dae73804946be6692.svg b/doc/build/html/_images/math/c11a34fefbc9f3c9204a0f4dae73804946be6692.svg deleted file mode 100644 index 3ebae7e..0000000 --- a/doc/build/html/_images/math/c11a34fefbc9f3c9204a0f4dae73804946be6692.svg +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/c14e418c03a66965d1ff43d7a166d4bc403fb59c.svg b/doc/build/html/_images/math/c14e418c03a66965d1ff43d7a166d4bc403fb59c.svg deleted file mode 100644 index 213dcce..0000000 --- a/doc/build/html/_images/math/c14e418c03a66965d1ff43d7a166d4bc403fb59c.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/c2ed36f728a405f51900a56136f234fd1c84253e.svg b/doc/build/html/_images/math/c2ed36f728a405f51900a56136f234fd1c84253e.svg deleted file mode 100644 index b2e625d..0000000 --- a/doc/build/html/_images/math/c2ed36f728a405f51900a56136f234fd1c84253e.svg +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/c3a1a49f30e99ec10fb5965633edca518a10441b.svg b/doc/build/html/_images/math/c3a1a49f30e99ec10fb5965633edca518a10441b.svg deleted file mode 100644 index 074890c..0000000 --- a/doc/build/html/_images/math/c3a1a49f30e99ec10fb5965633edca518a10441b.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/c5937687478d980ab66b85de909dcb73d4bc9b13.svg b/doc/build/html/_images/math/c5937687478d980ab66b85de909dcb73d4bc9b13.svg deleted file mode 100644 index a1375d8..0000000 --- a/doc/build/html/_images/math/c5937687478d980ab66b85de909dcb73d4bc9b13.svg +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/c63271fd2e7964699e51df9fee16b043e40449fd.svg b/doc/build/html/_images/math/c63271fd2e7964699e51df9fee16b043e40449fd.svg deleted file mode 100644 index 15dfb50..0000000 --- a/doc/build/html/_images/math/c63271fd2e7964699e51df9fee16b043e40449fd.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/c9ac657e040edf18bbbf248d15d73ab640a93f2d.svg b/doc/build/html/_images/math/c9ac657e040edf18bbbf248d15d73ab640a93f2d.svg deleted file mode 100644 index 3cf35e5..0000000 --- a/doc/build/html/_images/math/c9ac657e040edf18bbbf248d15d73ab640a93f2d.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/cc49d1fafb6a28c6c042491d610586fbcb48c0b5.svg b/doc/build/html/_images/math/cc49d1fafb6a28c6c042491d610586fbcb48c0b5.svg deleted file mode 100644 index 0d2ba8c..0000000 --- a/doc/build/html/_images/math/cc49d1fafb6a28c6c042491d610586fbcb48c0b5.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/cc9ad1bf37cbb0cbc3156f31e10ce7d8148d5e06.svg b/doc/build/html/_images/math/cc9ad1bf37cbb0cbc3156f31e10ce7d8148d5e06.svg deleted file mode 100644 index f9ff864..0000000 --- a/doc/build/html/_images/math/cc9ad1bf37cbb0cbc3156f31e10ce7d8148d5e06.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/cddff17c817c1acda8498e28276cbace394ea817.svg b/doc/build/html/_images/math/cddff17c817c1acda8498e28276cbace394ea817.svg deleted file mode 100644 index 983bd13..0000000 --- a/doc/build/html/_images/math/cddff17c817c1acda8498e28276cbace394ea817.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ce745b5797483cfcb6ff4816364d91d3d5b6e6c4.svg b/doc/build/html/_images/math/ce745b5797483cfcb6ff4816364d91d3d5b6e6c4.svg deleted file mode 100644 index dd1f599..0000000 --- a/doc/build/html/_images/math/ce745b5797483cfcb6ff4816364d91d3d5b6e6c4.svg +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/d04fe0dc2dd02e9d27dfd46e93827894feb96d1f.svg b/doc/build/html/_images/math/d04fe0dc2dd02e9d27dfd46e93827894feb96d1f.svg deleted file mode 100644 index f3f435d..0000000 --- a/doc/build/html/_images/math/d04fe0dc2dd02e9d27dfd46e93827894feb96d1f.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/d13a272a60d62c8a6b0ae4f178970b34b3cbc34b.svg b/doc/build/html/_images/math/d13a272a60d62c8a6b0ae4f178970b34b3cbc34b.svg deleted file mode 100644 index 7d11232..0000000 --- a/doc/build/html/_images/math/d13a272a60d62c8a6b0ae4f178970b34b3cbc34b.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/d13e748def2419af7ed6d97286f8f8ba95d695ab.svg b/doc/build/html/_images/math/d13e748def2419af7ed6d97286f8f8ba95d695ab.svg deleted file mode 100644 index 7e2b16e..0000000 --- a/doc/build/html/_images/math/d13e748def2419af7ed6d97286f8f8ba95d695ab.svg +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/d267fe313a3b9c3638dde67e05f045efc2ddfe06.svg b/doc/build/html/_images/math/d267fe313a3b9c3638dde67e05f045efc2ddfe06.svg deleted file mode 100644 index 75213b1..0000000 --- a/doc/build/html/_images/math/d267fe313a3b9c3638dde67e05f045efc2ddfe06.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/d30cef88d057bcc5920fca7d63d0682f802d9006.svg b/doc/build/html/_images/math/d30cef88d057bcc5920fca7d63d0682f802d9006.svg deleted file mode 100644 index 77b75f2..0000000 --- a/doc/build/html/_images/math/d30cef88d057bcc5920fca7d63d0682f802d9006.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/d4cef9805eafbbcd57b5fefe36bab8b23012c7d1.svg b/doc/build/html/_images/math/d4cef9805eafbbcd57b5fefe36bab8b23012c7d1.svg deleted file mode 100644 index 67acfed..0000000 --- a/doc/build/html/_images/math/d4cef9805eafbbcd57b5fefe36bab8b23012c7d1.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/d50602aa4f63b11b8a8c07c95722fee7ea97b348.svg b/doc/build/html/_images/math/d50602aa4f63b11b8a8c07c95722fee7ea97b348.svg deleted file mode 100644 index 64e5bf7..0000000 --- a/doc/build/html/_images/math/d50602aa4f63b11b8a8c07c95722fee7ea97b348.svg +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/d56941a661a880391bd898f16e5dcf9c0b8a7e59.svg b/doc/build/html/_images/math/d56941a661a880391bd898f16e5dcf9c0b8a7e59.svg deleted file mode 100644 index 31ba42e..0000000 --- a/doc/build/html/_images/math/d56941a661a880391bd898f16e5dcf9c0b8a7e59.svg +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/d696439e8724d5b54e9b4b344b9c99d0facc8b7c.svg b/doc/build/html/_images/math/d696439e8724d5b54e9b4b344b9c99d0facc8b7c.svg deleted file mode 100644 index 7934125..0000000 --- a/doc/build/html/_images/math/d696439e8724d5b54e9b4b344b9c99d0facc8b7c.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/d799367c490fcb15b82b8c5ee3fa5c9cbcc68dd8.svg b/doc/build/html/_images/math/d799367c490fcb15b82b8c5ee3fa5c9cbcc68dd8.svg deleted file mode 100644 index c94e6e6..0000000 --- a/doc/build/html/_images/math/d799367c490fcb15b82b8c5ee3fa5c9cbcc68dd8.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/dce20146d5eb77607e0a55541f4efb1a4b8c4b8c.svg b/doc/build/html/_images/math/dce20146d5eb77607e0a55541f4efb1a4b8c4b8c.svg deleted file mode 100644 index 4c6f8f0..0000000 --- a/doc/build/html/_images/math/dce20146d5eb77607e0a55541f4efb1a4b8c4b8c.svg +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ded4d6d37345b9aafba642fa7cfba7494ff14f70.svg b/doc/build/html/_images/math/ded4d6d37345b9aafba642fa7cfba7494ff14f70.svg deleted file mode 100644 index 1bddbca..0000000 --- a/doc/build/html/_images/math/ded4d6d37345b9aafba642fa7cfba7494ff14f70.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e0156186842b31629791a1077f601176a7365f82.svg b/doc/build/html/_images/math/e0156186842b31629791a1077f601176a7365f82.svg deleted file mode 100644 index 7934125..0000000 --- a/doc/build/html/_images/math/e0156186842b31629791a1077f601176a7365f82.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e15ab32e61ffbf9ec981451984dd7a6e61675385.svg b/doc/build/html/_images/math/e15ab32e61ffbf9ec981451984dd7a6e61675385.svg deleted file mode 100644 index d9f571a..0000000 --- a/doc/build/html/_images/math/e15ab32e61ffbf9ec981451984dd7a6e61675385.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e299a147e6e958303111e813e82a3507ded25437.svg b/doc/build/html/_images/math/e299a147e6e958303111e813e82a3507ded25437.svg deleted file mode 100644 index f699582..0000000 --- a/doc/build/html/_images/math/e299a147e6e958303111e813e82a3507ded25437.svg +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e34c3c7dbb292f28e888bfb49920d7c293055d2b.svg b/doc/build/html/_images/math/e34c3c7dbb292f28e888bfb49920d7c293055d2b.svg deleted file mode 100644 index 23c0fa0..0000000 --- a/doc/build/html/_images/math/e34c3c7dbb292f28e888bfb49920d7c293055d2b.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e4dc66520823a07e0df31b43dda92f9b2ea9e792.svg b/doc/build/html/_images/math/e4dc66520823a07e0df31b43dda92f9b2ea9e792.svg deleted file mode 100644 index 23c0fa0..0000000 --- a/doc/build/html/_images/math/e4dc66520823a07e0df31b43dda92f9b2ea9e792.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e568b3a2690eb8037909cae4b88b8ab16459605e.svg b/doc/build/html/_images/math/e568b3a2690eb8037909cae4b88b8ab16459605e.svg deleted file mode 100644 index 1efab50..0000000 --- a/doc/build/html/_images/math/e568b3a2690eb8037909cae4b88b8ab16459605e.svg +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e56dfd5625638bc4ad9867951a7818cf20c88a2f.svg b/doc/build/html/_images/math/e56dfd5625638bc4ad9867951a7818cf20c88a2f.svg deleted file mode 100644 index ac92e56..0000000 --- a/doc/build/html/_images/math/e56dfd5625638bc4ad9867951a7818cf20c88a2f.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e83c9268a37c748c7cd0f640a1f28bd878bb1749.svg b/doc/build/html/_images/math/e83c9268a37c748c7cd0f640a1f28bd878bb1749.svg deleted file mode 100644 index f9ff864..0000000 --- a/doc/build/html/_images/math/e83c9268a37c748c7cd0f640a1f28bd878bb1749.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e8a47d0c4e105b420931ccbeb7571abc3dd7f73d.svg b/doc/build/html/_images/math/e8a47d0c4e105b420931ccbeb7571abc3dd7f73d.svg deleted file mode 100644 index 445de07..0000000 --- a/doc/build/html/_images/math/e8a47d0c4e105b420931ccbeb7571abc3dd7f73d.svg +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e8b568237d1744ae5272cadf1bdd39eaed69c1f6.svg b/doc/build/html/_images/math/e8b568237d1744ae5272cadf1bdd39eaed69c1f6.svg deleted file mode 100644 index dee034f..0000000 --- a/doc/build/html/_images/math/e8b568237d1744ae5272cadf1bdd39eaed69c1f6.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e8e5c388fc50fed467da5027dde63736ec11b971.svg b/doc/build/html/_images/math/e8e5c388fc50fed467da5027dde63736ec11b971.svg deleted file mode 100644 index f9e1a4c..0000000 --- a/doc/build/html/_images/math/e8e5c388fc50fed467da5027dde63736ec11b971.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/e91c8c9e0530c873480544a154b5156c1a3bc5cf.svg b/doc/build/html/_images/math/e91c8c9e0530c873480544a154b5156c1a3bc5cf.svg deleted file mode 100644 index a724e47..0000000 --- a/doc/build/html/_images/math/e91c8c9e0530c873480544a154b5156c1a3bc5cf.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ea96fb3afc754d2d914e95c7197dd020ee4d8eeb.svg b/doc/build/html/_images/math/ea96fb3afc754d2d914e95c7197dd020ee4d8eeb.svg deleted file mode 100644 index 4cd6eba..0000000 --- a/doc/build/html/_images/math/ea96fb3afc754d2d914e95c7197dd020ee4d8eeb.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/eb7dc8445c84c126f6834aa63965b5866af4862f.svg b/doc/build/html/_images/math/eb7dc8445c84c126f6834aa63965b5866af4862f.svg deleted file mode 100644 index 83c3726..0000000 --- a/doc/build/html/_images/math/eb7dc8445c84c126f6834aa63965b5866af4862f.svg +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ebd2e5584b404461c1046b8bf084d34487e21129.svg b/doc/build/html/_images/math/ebd2e5584b404461c1046b8bf084d34487e21129.svg deleted file mode 100644 index b00624b..0000000 --- a/doc/build/html/_images/math/ebd2e5584b404461c1046b8bf084d34487e21129.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ecf8d8521b87e224ab55f1fb9b3b29c0d61c22d8.svg b/doc/build/html/_images/math/ecf8d8521b87e224ab55f1fb9b3b29c0d61c22d8.svg deleted file mode 100644 index e391d28..0000000 --- a/doc/build/html/_images/math/ecf8d8521b87e224ab55f1fb9b3b29c0d61c22d8.svg +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/ed6af2733291dcf5001173a8dbaf8f59c817212a.svg b/doc/build/html/_images/math/ed6af2733291dcf5001173a8dbaf8f59c817212a.svg deleted file mode 100644 index 773fc05..0000000 --- a/doc/build/html/_images/math/ed6af2733291dcf5001173a8dbaf8f59c817212a.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f028854f696e20d8f3e7fc8807f20c444cf43eaa.svg b/doc/build/html/_images/math/f028854f696e20d8f3e7fc8807f20c444cf43eaa.svg deleted file mode 100644 index 1054756..0000000 --- a/doc/build/html/_images/math/f028854f696e20d8f3e7fc8807f20c444cf43eaa.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f02d55fb6c249a7da5a9df6b7e5c96ab6be7672b.svg b/doc/build/html/_images/math/f02d55fb6c249a7da5a9df6b7e5c96ab6be7672b.svg deleted file mode 100644 index 0ff2d07..0000000 --- a/doc/build/html/_images/math/f02d55fb6c249a7da5a9df6b7e5c96ab6be7672b.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f0910149fc44dd7dabe235ebff17a2060ae8714e.svg b/doc/build/html/_images/math/f0910149fc44dd7dabe235ebff17a2060ae8714e.svg deleted file mode 100644 index fa0247c..0000000 --- a/doc/build/html/_images/math/f0910149fc44dd7dabe235ebff17a2060ae8714e.svg +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f17c96b90fd292ae6974ada44ee78617139e5141.svg b/doc/build/html/_images/math/f17c96b90fd292ae6974ada44ee78617139e5141.svg deleted file mode 100644 index 7934125..0000000 --- a/doc/build/html/_images/math/f17c96b90fd292ae6974ada44ee78617139e5141.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f19df02362bdcb3832d9a6e1e22c7d9a8374e613.svg b/doc/build/html/_images/math/f19df02362bdcb3832d9a6e1e22c7d9a8374e613.svg deleted file mode 100644 index bbe332d..0000000 --- a/doc/build/html/_images/math/f19df02362bdcb3832d9a6e1e22c7d9a8374e613.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f3284172ff91453e703a9b5979f8386f44f9948c.svg b/doc/build/html/_images/math/f3284172ff91453e703a9b5979f8386f44f9948c.svg deleted file mode 100644 index dec7a64..0000000 --- a/doc/build/html/_images/math/f3284172ff91453e703a9b5979f8386f44f9948c.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f49c3dd83ce20802dd9b32036339dbb3b354bd2d.svg b/doc/build/html/_images/math/f49c3dd83ce20802dd9b32036339dbb3b354bd2d.svg deleted file mode 100644 index ff42303..0000000 --- a/doc/build/html/_images/math/f49c3dd83ce20802dd9b32036339dbb3b354bd2d.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f670f05da2f796ded634f483374c8523a2ed0ac4.svg b/doc/build/html/_images/math/f670f05da2f796ded634f483374c8523a2ed0ac4.svg deleted file mode 100644 index 98e00ae..0000000 --- a/doc/build/html/_images/math/f670f05da2f796ded634f483374c8523a2ed0ac4.svg +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f6fd6928c1aaf2be4844f5d4e293a09bc610f44f.svg b/doc/build/html/_images/math/f6fd6928c1aaf2be4844f5d4e293a09bc610f44f.svg deleted file mode 100644 index 96a726b..0000000 --- a/doc/build/html/_images/math/f6fd6928c1aaf2be4844f5d4e293a09bc610f44f.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f7679edba251c469017904363c4f2ee6919879f3.svg b/doc/build/html/_images/math/f7679edba251c469017904363c4f2ee6919879f3.svg deleted file mode 100644 index 15dfb50..0000000 --- a/doc/build/html/_images/math/f7679edba251c469017904363c4f2ee6919879f3.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/f9a521977b1461b53094f1bae24aa6d1bb757b07.svg b/doc/build/html/_images/math/f9a521977b1461b53094f1bae24aa6d1bb757b07.svg deleted file mode 100644 index 322f03a..0000000 --- a/doc/build/html/_images/math/f9a521977b1461b53094f1bae24aa6d1bb757b07.svg +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/fb4ddd4f20941bccbdf1c7cee61f00284285e536.svg b/doc/build/html/_images/math/fb4ddd4f20941bccbdf1c7cee61f00284285e536.svg deleted file mode 100644 index 15dfb50..0000000 --- a/doc/build/html/_images/math/fb4ddd4f20941bccbdf1c7cee61f00284285e536.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_images/math/fea71c9f02d3639232648b940b80e5b9c1a03db3.svg b/doc/build/html/_images/math/fea71c9f02d3639232648b940b80e5b9c1a03db3.svg deleted file mode 100644 index 5f0dc7c..0000000 --- a/doc/build/html/_images/math/fea71c9f02d3639232648b940b80e5b9c1a03db3.svg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/build/html/_sources/commentary/gm.rst.txt b/doc/build/html/_sources/commentary/gm.rst.txt deleted file mode 100644 index 1682a58..0000000 --- a/doc/build/html/_sources/commentary/gm.rst.txt +++ /dev/null @@ -1,104 +0,0 @@ -The *G-Machine* -=============== - -********** -Motivation -********** - -Our initial model, the *Template Instantiator* (TI) was a very -straightforward solution to compilation, but its core design has a major -Achilles' heel, being that Compilation is interleaved with evaluation -- The -heap nodes for supercombinators hold uninstantiated expressions, i.e. raw ASTs -straight from the parser. When a supercombinator is found on the stack during -evaluation, the template expression is instantiated (compiled) on the spot. - -.. math:: - \transrule - { a_0 : a_1 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_0 : \mathtt{NSupercomb} \; [x_1,\ldots,x_n] \; e - \end{bmatrix} - & g - } - { a_n : s - & d - & h' - & g - \\ - & \SetCell[c=3]{c} - \text{where } h' = \mathtt{instantiateU} \; e \; a_n \; h \; g - } - -The process of instantiating a supercombinator goes something like this - -1. Augment the environment with bindings to the arguments. - -2. Using the local augmented environment, instantiate the supercombinator body - on the heap. - -3. Remove the nodes applying the supercombinator to its arguments from the - stack. - -4. Push the address to the newly instantiated body onto the stack. - -.. literalinclude:: /../../src/TI.hs - :dedent: - :start-after: -- >> [ref/scStep] - :end-before: -- << [ref/scStep] - :caption: src/TI.hs - -Instantiating the supercombinator's body in this way is the root of our -Achilles' heel. Traversing a tree structure is a very non-linear task unfit for -an assembly target. The goal of our new G-Machine is to compile a *linear -sequence of instructions* which instantiate the expression at execution. - -************************** -Trees and Vines, in Theory -************************** - -WIP. - -************************** -Evaluation: Slurping Vines -************************** - -WIP. - -Laziness --------- - -WIP. - -* Instead of :code:`Slide (n+1); Unwind`, do :code:`Update n; Pop n; Unwind` - -**************************** -Compilation: Squashing Trees -**************************** - -WIP. - -Notice that we do not keep a (local) environment at run-time. The environment -only exists at compile-time to map local names to stack indices. When compiling -a supercombinator, the arguments are enumerated from zero (the top of the -stack), and passed to :code:`compileR` as an environment. - -.. literalinclude:: /../../src/GM.hs - :dedent: - :start-after: -- >> [ref/compileSc] - :end-before: -- << [ref/compileSc] - :caption: src/GM.hs - -Of course, variables being indexed relative to the top of the stack means that -they will become inaccurate the moment we push or pop the stack a single time. -The way around this is quite simple: simply offset the stack when w - -.. literalinclude:: /../../src/GM.hs - :dedent: - :start-after: -- >> [ref/compileC] - :end-before: -- << [ref/compileC] - :caption: src/GM.hs - - - diff --git a/doc/build/html/_sources/commentary/layout-lexing.rst.txt b/doc/build/html/_sources/commentary/layout-lexing.rst.txt deleted file mode 100644 index 4fbfd5e..0000000 --- a/doc/build/html/_sources/commentary/layout-lexing.rst.txt +++ /dev/null @@ -1,235 +0,0 @@ -Lexing, Parsing, and Layouts -============================ - -The C-style languages of my previous experiences have all had quite trivial -lexical analysis stages, peaking in complexity when I streamed tokens lazily in -C. The task of tokenising a C-style language is very simple in description: you -ignore all whitespace and point out what you recognise. If you don't recognise -something, check if it's a literal or an identifier. Should it be neither, -return an error. - -On paper, both lexing and parsing a Haskell-like language seem to pose a few -greater challenges. Listed by ascending intimidation factor, some of the -potential roadblocks on my mind before making an attempt were: - -* Operators; Haskell has not only user-defined infix operators, but user-defined - precedence levels and associativities. I recall using an algorithm that looked - up infix, prefix, postfix, and even mixfix operators up in a global table to - call their appropriate parser (if their precedence was appropriate, also - stored in the table). I never modified the table at runtime, however this - could be a very nice solution for Haskell. - -* Context-sensitive keywords; Haskell allows for some words to be used as identifiers in - appropriate contexts, such as :code:`family`, :code:`role`, :code:`as`. - Reading a note_ found in `GHC's lexer`_, - it appears that keywords are only considered in bodies for which their use is - relevant, e.g. :code:`family` and :code:`role` in type declarations, - :code:`as` after :code:`case`; :code:`if`, :code:`then`, and :code:`else` in - expressions, etc. - -* Whitespace sensitivity; While I was comfortable with the idea of a system - similar to Python's INDENT/DEDENT tokens, Haskell seemed to use whitespace to - section code in a way that *felt* different. - -.. _note: https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/coding-style#2-using-notes -.. _GHC's lexer: https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Parser/Lexer.x#L1133 - -After a bit of thought and research, whitespace sensitivity in the form of -*layouts* as Haskell and I will refer to them as, are easily the scariest thing -on this list -- however they are achievable! - -A Lexical Primer: Python -************************ - -We will compare and contrast with Python's lexical analysis. Much to my dismay, -Python uses newlines and indentation to separate statements and resolve scope -instead of the traditional semicolons and braces found in C-style languages (we -may generally refer to these C-style languages as *explicitly-sectioned*). -Internally during tokenisation, when the Python lexer begins a new line, they -compare the indentation of the new line with that of the previous and apply the -following rules: - -1. If the new line has greater indentation than the previous, insert an INDENT - token and push the new line's indentation level onto the indentation stack - (the stack is initialised with an indentation level of zero). - -2. If the new line has lesser indentation than the previous, pop the stack until - the top of the stack is greater than the new line's indentation level. A - DEDENT token is inserted for each level popped. - -3. If the indentation is equal, insert a NEWLINE token to terminate the previous - line, and leave it at that! - -Parsing Python with the INDENT, DEDENT, and NEWLINE tokens is identical to -parsing a language with braces and semicolons. This is a solution pretty in line -with Python's philosophy of the "one correct answer" (TODO: this needs a -source). In developing our *layout* rules, we will follow in the pattern of -translating the whitespace-sensitive source language to an explicitly sectioned -language. - -But What About Haskell? -*********************** - -We saw that Python, the most notable example of an implicitly sectioned -language, is pretty simple to lex. Why then am I so afraid of Haskell's layouts? -To be frank, I'm far less scared after asking myself this -- however there are -certainly some new complexities that Python needn't concern. Haskell has -implicit line *continuation*: forms written over multiple lines; indentation -styles often seen in Haskell are somewhat esoteric compared to Python's -"s/[{};]//". - -.. code-block:: haskell - - -- line continuation - something = this is a - single expression - - -- an extremely common style found in haskell - data Python = Users - { are :: Crying - , right :: About - , now :: Sorry - } - - -- another formatting oddity - -- note that this is not a single - -- continued line! `look at`, - -- `this`, and `alignment` are all - -- separate expressions! - anotherThing = do look at - this - alignment - -But enough fear, lets actually think about implementation. Firstly, some -formality: what do we mean when we say layout? We will define layout as the -rules we apply to an implicitly-sectioned language in order to yield one that is -explicitly-sectioned. We will also define indentation of a lexeme as the column -number of its first character. - -Thankfully for us, our entry point is quite clear; layouts only appear after a -select few keywords, (with a minor exception; TODO: elaborate) being :code:`let` -(followed by supercombinators), :code:`where` (followed by supercombinators), -:code:`do` (followed by expressions), and :code:`of` (followed by alternatives) -(TODO: all of these terms need linked glossary entries). In order to manage the -cascade of layout contexts, our lexer will record a stack for which each element -is either :math:`\varnothing`, denoting an explicit layout written with braces -and semicolons, or a :math:`\langle n \rangle`, denoting an implicitly laid-out -layout where the start of each item belonging to the layout is indented -:math:`n` columns. - -.. code-block:: haskell - - -- layout stack: [] - module M where -- layout stack: [∅] - - f x = let -- layout keyword; remember indentation of next token - y = w * w -- layout stack: [∅, <10>] - w = x + x - -- layout ends here - in do -- layout keyword; next token is a brace! - { -- layout stack: [∅] - print y; - print x; - } - -Finally, we also need the concept of "virtual" brace tokens, which as far as -we're concerned at this moment are exactly like normal brace tokens, except -implicitly inserted by the compiler. With the presented ideas in mind, we may -begin to introduce a small set of informal rules describing the lexer's handling -of layouts, the first being: - -1. If a layout keyword is followed by the token '{', push :math:`\varnothing` - onto the layout context stack. Otherwise, push :math:`\langle n \rangle` onto - the layout context stack where :math:`n` is the indentation of the token - following the layout keyword. Additionally, the lexer is to insert a virtual - opening brace after the token representing the layout keyword. - -Consider the following observations from that previous code sample: - -* Function definitions should belong to a layout, each of which may start at - column 1. - -* A layout can enclose multiple bodies, as seen in the :code:`let`-bindings and - the :code:`do`-expression. - -* Semicolons should *terminate* items, rather than *separate* them. - -Our current focus is the semicolons. In an implicit layout, items are on -separate lines each aligned with the previous. A naïve implementation would be -to insert the semicolon token when the EOL is reached, but this proves unideal -when you consider the alignment requirement. In our implementation, our lexer -will wait until the first token on a new line is reached, then compare -indentation and insert a semicolon if appropriate. This comparison -- the -nondescript measurement of "more, less, or equal indentation" rather than a -numeric value -- is referred to as *offside* by myself internally and the -Haskell report describing layouts. We informally formalise this rule as follows: - -2. When the first token on a line is preceeded only by whitespace, if the - token's first grapheme resides on a column number :math:`m` equal to the - indentation level of the enclosing context -- i.e. the :math:`\langle n - \rangle` on top of the layout stack. Should no such context exist on the - stack, assume :math:`m > n`. - -We have an idea of how to begin layouts, delimit the enclosed items, and last -we'll need to end layouts. This is where the distinction between virtual and -non-virtual brace tokens comes into play. The lexer needs only partial concern -towards closing layouts; the complete responsibility is shared with the parser. -This will be elaborated on in the next section. For now, we will be content with -naïvely inserting a virtual closing brace when a token is indented right of the -layout. - -3. Under the same conditions as rule 2., when :math:`m < n` the lexer shall - insert a virtual closing brace and pop the layout stack. - -This rule covers some cases including the top-level, however, consider -tokenising the :code:`in` in a :code:`let`-expression. If our lexical analysis -framework only allows for lexing a single token at a time, we cannot return both -a virtual right-brace and a :code:`in`. Under this model, the lexer may simply -pop the layout stack and return the :code:`in` token. As we'll see in the next -section, as long as the lexer keeps track of its own context (i.e. the stack), -the parser will cope just fine without the virtual end-brace. - -Parsing Lonely Braces -********************* - -When viewed in the abstract, parsing and tokenising are near-identical tasks yet -the two are very often decomposed into discrete systems with very different -implementations. Lexers operate on streams of text and tokens, while parsers -are typically far less linear, using a parse stack or recursing top-down. A -big reason for this separation is state management: the parser aims to be as -context-free as possible, while the lexer tends to burden the necessary -statefulness. Still, the nature of a stream-oriented lexer makes backtracking -difficult and quite inelegant. - -However, simply declaring a parse error to be not an error at all -counterintuitively proves to be an elegant solution our layout problem which -minimises backtracking and state in both the lexer and the parser. Consider the -following definitions found in rlp's BNF: - -.. productionlist:: rlp - VOpen : `vopen` - VClose : `vclose` | `error` - -A parse error is recovered and treated as a closing brace. Another point of note -in the BNF is the difference between virtual and non-virtual braces (TODO: i -don't like that the BNF is formatted without newlines :/): - -.. productionlist:: rlp - LetExpr : `let` VOpen Bindings VClose `in` Expr | `let` `{` Bindings `}` `in` Expr - -This ensures that non-virtual braces are closed explicitly. - -This set of rules is adequete enough to satisfy our basic concerns about line -continations and layout lists. For a more pedantic description of the layout -system, see `chapter 10 -`_ of the -2010 Haskell Report, which I heavily referenced here. - -References ----------- - -* `Python's lexical analysis - `_ - -* `Haskell syntax reference - `_ diff --git a/doc/build/html/_sources/commentary/stg.rst.txt b/doc/build/html/_sources/commentary/stg.rst.txt deleted file mode 100644 index f668576..0000000 --- a/doc/build/html/_sources/commentary/stg.rst.txt +++ /dev/null @@ -1,336 +0,0 @@ -The *Spineless Tagless G-Machine* -================================= - -WIP. This will hopefully be expanded into a thorough walkthrough of the state -machine. - -Evaluation is complete when a single :code:`NNum` remains on the stack and the -dump is empty. - -.. math:: - \transrule - { a : \nillist - & \nillist - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & g - } - { \mathtt{HALT} - } - -Dereference an indirection passed as an argument to a function. - -.. math:: - \transrule - {a : s & d & h - \begin{bmatrix} - a : \mathtt{NAp} \; a_1 \; a_2 \\ - a_2 : \mathtt{NInd} \; a_3 - \end{bmatrix} & g} - {a : s & d & h[a : \mathtt{NAp} \; a_1 \; a_3] & g} - -Dereference an indirection on top of the stack. - -.. math:: - \transrule - {p : s & d & h - \begin{bmatrix} - p : \mathtt{NInd} \; a - \end{bmatrix} & g} - {a : s & d & h & g} - -Perform a unary operation :math:`o(n)` with internal :code:`Prim` constructor -:code:`O` on an argument in normal form. - -.. math:: - \transrule - { f : a : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{O} \\ - a : \mathtt{NAp} \; f \; x \\ - x : \mathtt{NNum} \; n - \end{bmatrix} - & g - } - { a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; (o(n)) - \end{bmatrix} - & g - } - -Evaluate the argument of a unary operation with internal :code:`Prim` -constructor :code:`O`. - -.. math:: - \transrule - { f : a : \nillist - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{O} \\ - a : \mathtt{NAp} \; f \; x - \end{bmatrix} - & g - } - { x : \nillist - & (f : a : \nillist) : d - & h - & g - } - -Restore the stack when a sub-computation has completed. - -.. math:: - \transrule - { a : \nillist - & s : d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & g - } - { s - & d - & h - & g - } - -Reduce a supercombinator and update the root with the :math:`\beta`-reduced form - -.. math:: - \transrule - { a_0 : a_1 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_0 : \mathtt{NSupercomb} \; [x_1,\ldots,x_n] \; e - \end{bmatrix} - & g - } - { a_n : s - & d - & h' - & g - \\ - & \SetCell[c=3]{c} - \text{where } h' = \mathtt{instantiateU} \; e \; a_n \; h \; g - } - -Perform a binary operation :math:`o(x,y)` associated with internal :code:`Prim` -constructor :code:`O` on two :code:`NNum` s both in normal form. - -.. math:: - \transrule - { f : a_1 : a_2 : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{O} \\ - a_1 : \mathtt{NAp} \; f \; (\mathtt{NNum} \; x) \\ - a_2 : \mathtt{NAp} \; a_1 \; (\mathtt{NNum} \; y) - \end{bmatrix} - & g - } - { a_2 : s - & d - & h - \begin{bmatrix} - a_2 : \mathtt{NNum} \; (o(x,y)) - \end{bmatrix} - & g - } - -In a conditional primitive, perform the reduction if the condition has been -evaluated as True (:code:`NData 1 []`). - -.. math:: - \transrule - { f : a_1 : a_2 : a_3 : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{IfP} \\ - c : \mathtt{NPrim} \; (\mathtt{NData} \; 1 \; \nillist) \\ - a_1 : \mathtt{NAp} \; f \; c \\ - a_2 : \mathtt{NAp} \; a_1 \; x \\ - a_3 : \mathtt{NAp} \; a_2 \; y - \end{bmatrix} - & g - } - { x : s - & d - & h - & g - } - -In a conditional primitive, perform the reduction if the condition has been -evaluated as False (:code:`NData 0 []`). - -.. math:: - \transrule - { f : a_1 : a_2 : a_3 : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{IfP} \\ - c : \mathtt{NPrim} \; (\mathtt{NData} \; 0 \; \nillist) \\ - a_1 : \mathtt{NAp} \; f \; c \\ - a_2 : \mathtt{NAp} \; a_1 \; x \\ - a_3 : \mathtt{NAp} \; a_2 \; y - \end{bmatrix} - & g - } - { y : s - & d - & h - & g - } - - -In a conditional primitive, evaluate the condition. - -.. math:: - \transrule - { f : a_1 : \nillist - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{IfP} \\ - a_1 : \mathtt{NAp} \; f \; x - \end{bmatrix} - & g - } - { x : \nillist - & (f : a_1 : \nillist) : d - & h - & g - } - -Construct :code:`NData` out of a constructor and its arguments - -.. math:: - \transrule - { c : a_1 : \ldots : a_n : \nillist - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; (\mathtt{ConP} \; t \; n) \\ - a_1 : \mathtt{NAp} \; c \; x_1 \\ - \vdots \\ - a_n : \mathtt{NAp} \; a_{n-1} \; x_n - \end{bmatrix} - & g - } - { a_n : \nillist - & d - & h - \begin{bmatrix} - a_n : \mathtt{NData} \; t \; [x_1, \ldots, x_n] - \end{bmatrix} - & g - } - -Pairs ------ - -Evaluate the first argument if necessary - -.. math:: - \transrule - { c : a_1 : a_2 : \nillist - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CasePairP} \\ - p : \mathtt{NAp} \; \_ \: \_ \\ - a_1 : \mathtt{NAp} \; c \; p \\ - a_2 : \mathtt{NAp} \; a_2 \; f - \end{bmatrix} - & g - } - { p : \nillist - & (a_1 : a_2 : \nillist) : d - & h - & g - } - -Perform the reduction if the first argument is in normal form - -.. math:: - \transrule - { c : a_1 : a_2 : s - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CasePairP} \\ - p : \mathtt{NData} \; 0 \; [x,y] \\ - a_1 : \mathtt{NAp} \; c \; p \\ - a_2 : \mathtt{NAp} \; a_1 \; f - \end{bmatrix} - & g - } - { a_1 : a_2 : s - & d - & h - \begin{bmatrix} - a_1 : \mathtt{NAp} \; f \; x \\ - a_2 : \mathtt{NAp} \; a_1 \; y - \end{bmatrix} - & g - } - -Lists ------ - -Evaluate the scrutinee - -.. math:: - \transrule - { c : a_1 : a_2 : a_3 : \nillist - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CaseListP} \\ - a_1 : \mathtt{NAp} \; c \; x - \end{bmatrix} - & g - } - { x : \nillist - & (a_1 : a_2 : a_3) : \nillist - & h - & g - } - -If the scrutinee is :code:`Nil`, perform the appropriate reduction. - -.. math:: - \transrule - { c : a_1 : a_2 : a_3 : s - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CaseListP} \\ - p : \mathtt{NData} \; 1 \; \nillist \\ - a_1 : \mathtt{NAp} \; c \; p \\ - a_2 : \mathtt{NAp} \; p \; f_\text{nil} \\ - a_3 : \mathtt{NAp} \; a_2 \; f_\text{cons} - \end{bmatrix} - & g - } - { a_3 : s - & d - & h - \begin{bmatrix} - a_3 : \mathtt{NAp} \; f_\text{nil} - \end{bmatrix} - & g - } - diff --git a/doc/build/html/_sources/commentary/ti.rst.txt b/doc/build/html/_sources/commentary/ti.rst.txt deleted file mode 100644 index 4e167d0..0000000 --- a/doc/build/html/_sources/commentary/ti.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -The *Template Instantiator* -==================================== - -WIP. This will hopefully be expanded into a thorough walkthrough of the state -machine. - diff --git a/doc/build/html/_sources/commentary/tim.rst.txt b/doc/build/html/_sources/commentary/tim.rst.txt deleted file mode 100644 index 4dd05cd..0000000 --- a/doc/build/html/_sources/commentary/tim.rst.txt +++ /dev/null @@ -1,336 +0,0 @@ -The *Template Instantiation Machine* -==================================== - -WIP. This will hopefully be expanded into a thorough walkthrough of the state -machine. - -Evaluation is complete when a single :code:`NNum` remains on the stack and the -dump is empty. - -.. math:: - \transrule - { a : \nillist - & \nillist - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & g - } - { \mathtt{HALT} - } - -Dereference an indirection passed as an argument to a function. - -.. math:: - \transrule - {a : s & d & h - \begin{bmatrix} - a : \mathtt{NAp} \; a_1 \; a_2 \\ - a_2 : \mathtt{NInd} \; a_3 - \end{bmatrix} & g} - {a : s & d & h[a : \mathtt{NAp} \; a_1 \; a_3] & g} - -Dereference an indirection on top of the stack. - -.. math:: - \transrule - {p : s & d & h - \begin{bmatrix} - p : \mathtt{NInd} \; a - \end{bmatrix} & g} - {a : s & d & h & g} - -Perform a unary operation :math:`o(n)` with internal :code:`Prim` constructor -:code:`O` on an argument in normal form. - -.. math:: - \transrule - { f : a : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{O} \\ - a : \mathtt{NAp} \; f \; x \\ - x : \mathtt{NNum} \; n - \end{bmatrix} - & g - } - { a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; (o(n)) - \end{bmatrix} - & g - } - -Evaluate the argument of a unary operation with internal :code:`Prim` -constructor :code:`O`. - -.. math:: - \transrule - { f : a : \nillist - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{O} \\ - a : \mathtt{NAp} \; f \; x - \end{bmatrix} - & g - } - { x : \nillist - & (f : a : \nillist) : d - & h - & g - } - -Restore the stack when a sub-computation has completed. - -.. math:: - \transrule - { a : \nillist - & s : d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & g - } - { s - & d - & h - & g - } - -Reduce a supercombinator and update the root with the :math:`\beta`-reduced form - -.. math:: - \transrule - { a_0 : a_1 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_0 : \mathtt{NSupercomb} \; [x_1,\ldots,x_n] \; e - \end{bmatrix} - & g - } - { a_n : s - & d - & h' - & g - \\ - & \SetCell[c=3]{c} - \text{where } h' = \mathtt{instantiateU} \; e \; a_n \; h \; g - } - -Perform a binary operation :math:`o(x,y)` associated with internal :code:`Prim` -constructor :code:`O` on two :code:`NNum` s both in normal form. - -.. math:: - \transrule - { f : a_1 : a_2 : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{O} \\ - a_1 : \mathtt{NAp} \; f \; (\mathtt{NNum} \; x) \\ - a_2 : \mathtt{NAp} \; a_1 \; (\mathtt{NNum} \; y) - \end{bmatrix} - & g - } - { a_2 : s - & d - & h - \begin{bmatrix} - a_2 : \mathtt{NNum} \; (o(x,y)) - \end{bmatrix} - & g - } - -In a conditional primitive, perform the reduction if the condition has been -evaluated as True (:code:`NData 1 []`). - -.. math:: - \transrule - { f : a_1 : a_2 : a_3 : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{IfP} \\ - c : \mathtt{NPrim} \; (\mathtt{NData} \; 1 \; \nillist) \\ - a_1 : \mathtt{NAp} \; f \; c \\ - a_2 : \mathtt{NAp} \; a_1 \; x \\ - a_3 : \mathtt{NAp} \; a_2 \; y - \end{bmatrix} - & g - } - { x : s - & d - & h - & g - } - -In a conditional primitive, perform the reduction if the condition has been -evaluated as False (:code:`NData 0 []`). - -.. math:: - \transrule - { f : a_1 : a_2 : a_3 : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{IfP} \\ - c : \mathtt{NPrim} \; (\mathtt{NData} \; 0 \; \nillist) \\ - a_1 : \mathtt{NAp} \; f \; c \\ - a_2 : \mathtt{NAp} \; a_1 \; x \\ - a_3 : \mathtt{NAp} \; a_2 \; y - \end{bmatrix} - & g - } - { y : s - & d - & h - & g - } - - -In a conditional primitive, evaluate the condition. - -.. math:: - \transrule - { f : a_1 : \nillist - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{IfP} \\ - a_1 : \mathtt{NAp} \; f \; x - \end{bmatrix} - & g - } - { x : \nillist - & (f : a_1 : \nillist) : d - & h - & g - } - -Construct :code:`NData` out of a constructor and its arguments - -.. math:: - \transrule - { c : a_1 : \ldots : a_n : \nillist - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; (\mathtt{ConP} \; t \; n) \\ - a_1 : \mathtt{NAp} \; c \; x_1 \\ - \vdots \\ - a_n : \mathtt{NAp} \; a_{n-1} \; x_n - \end{bmatrix} - & g - } - { a_n : \nillist - & d - & h - \begin{bmatrix} - a_n : \mathtt{NData} \; t \; [x_1, \ldots, x_n] - \end{bmatrix} - & g - } - -Pairs ------ - -Evaluate the first argument if necessary - -.. math:: - \transrule - { c : a_1 : a_2 : \nillist - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CasePairP} \\ - p : \mathtt{NAp} \; \_ \: \_ \\ - a_1 : \mathtt{NAp} \; c \; p \\ - a_2 : \mathtt{NAp} \; a_2 \; f - \end{bmatrix} - & g - } - { p : \nillist - & (a_1 : a_2 : \nillist) : d - & h - & g - } - -Perform the reduction if the first argument is in normal form - -.. math:: - \transrule - { c : a_1 : a_2 : s - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CasePairP} \\ - p : \mathtt{NData} \; 0 \; [x,y] \\ - a_1 : \mathtt{NAp} \; c \; p \\ - a_2 : \mathtt{NAp} \; a_1 \; f - \end{bmatrix} - & g - } - { a_1 : a_2 : s - & d - & h - \begin{bmatrix} - a_1 : \mathtt{NAp} \; f \; x \\ - a_2 : \mathtt{NAp} \; a_1 \; y - \end{bmatrix} - & g - } - -Lists ------ - -Evaluate the scrutinee - -.. math:: - \transrule - { c : a_1 : a_2 : a_3 : \nillist - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CaseListP} \\ - a_1 : \mathtt{NAp} \; c \; x - \end{bmatrix} - & g - } - { x - & (a_1 : a_2 : a_3) : \nillist - & h - & g - } - -If the scrutinee is :code:`Nil`, perform the appropriate reduction. - -.. math:: - \transrule - { c : a_1 : a_2 : a_3 : s - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CaseListP} \\ - p : \mathtt{NData} \; 1 \; \nillist \\ - a_1 : \mathtt{NAp} \; c \; p \\ - a_2 : \mathtt{NAp} \; p \; f_\text{nil} \\ - a_3 : \mathtt{NAp} \; a_2 \; f_\text{cons} - \end{bmatrix} - & g - } - { a_3 : s - & d - & h - \begin{bmatrix} - a_3 : \mathtt{NAp} \; f_\text{nil} - \end{bmatrix} - & g - } - diff --git a/doc/build/html/_sources/glossary.rst.txt b/doc/build/html/_sources/glossary.rst.txt deleted file mode 100644 index 6315c39..0000000 --- a/doc/build/html/_sources/glossary.rst.txt +++ /dev/null @@ -1,19 +0,0 @@ -Glossary -======== - -Haskell and Haskell culture is infamous for using scary mathematical terms for -simple ideas. Please excuse us, it's really fun :3. - -.. glossary:: - - supercombinator - An expression with no free variables. For most purposes, just think of a - top-level definition. - - case alternative - An possible match in a case expression (TODO: example) - - layout - The syntax used in rlp and Haskell that allows for implicitly sectioned - code using alignment and newlines. - diff --git a/doc/build/html/_sources/index.rst.txt b/doc/build/html/_sources/index.rst.txt deleted file mode 100644 index bf4caa1..0000000 --- a/doc/build/html/_sources/index.rst.txt +++ /dev/null @@ -1,26 +0,0 @@ -Welcome to rlp's documentation! -=============================== - -Contents --------- - -.. toctree:: - :maxdepth: 2 - :caption: Index - - glossary.rst - -.. toctree:: - :maxdepth: 1 - :caption: Commentary - :glob: - - commentary/* - -.. toctree:: - :maxdepth: 1 - :caption: References - :glob: - - references/* - diff --git a/doc/build/html/_sources/references/gm-state-transition-rules.rst.txt b/doc/build/html/_sources/references/gm-state-transition-rules.rst.txt deleted file mode 100644 index 0cb9d21..0000000 --- a/doc/build/html/_sources/references/gm-state-transition-rules.rst.txt +++ /dev/null @@ -1,347 +0,0 @@ -================================ -G-Machine State Transition Rules -================================ - -********************* -Core Transition Rules -********************* - -1. Lookup a global by name and push its value onto the stack - -.. math:: - \gmrule - { \mathtt{PushGlobal} \; f : i - & s - & d - & h - & m - \begin{bmatrix} - f : a - \end{bmatrix} - } - { i - & a : s - & d - & h - & m - } - -2. Allocate an int node on the heap, and push the address of the newly created - node onto the stack - -.. math:: - \gmrule - { \mathtt{PushInt} \; n : i - & s - & d - & h - & m - } - { i - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & m - } - -3. Allocate an application node on the heap, applying the top of the stack to - the address directly below it. The address of the application node is pushed - onto the stack. - -.. math:: - \gmrule - { \mathtt{MkAp} : i - & f : x : s - & d - & h - & m - } - { i - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NAp} \; f \; x - \end{bmatrix} - & m - } - -4. Push a function's argument onto the stack - -.. math:: - \gmrule - { \mathtt{Push} \; n : i - & a_0 : \ldots : a_n : s - & d - & h - & m - } - { i - & a_n : a_0 : \ldots : a_n : s - & d - & h - & m - } - -5. Tidy up the stack after instantiating a supercombinator - -.. math:: - \gmrule - { \mathtt{Slide} \; n : i - & a_0 : \ldots : a_n : s - & d - & h - & m - } - { i - & a_0 : s - & d - & h - & m - } - -6. If a number is on top of the stack, :code:`Unwind` leaves the machine in a - halt state - -.. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & m - } - { \nillist - & a : s - & d - & h - & m - } - -7. If an application is on top of the stack, :code:`Unwind` continues unwinding - -.. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NAp} \; f \; x - \end{bmatrix} - & m - } - { \mathtt{Unwind} : \nillist - & f : a : s - & d - & h - & m - } - -8. When a supercombinator is on top of the stack (and the correct number of - arguments have been provided), :code:`Unwind` sets up the stack and jumps to - the supercombinator's code (:math:`\beta`-reduction) - -.. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a_0 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_0 : \mathtt{NGlobal} \; n \; c \\ - a_1 : \mathtt{NAp} \; a_0 \; e_1 \\ - \vdots \\ - a_n : \mathtt{NAp} \; a_{n-1} \; e_n \\ - \end{bmatrix} - & m - } - { c - & e_1 : \ldots : e_n : a_n : s - & d - & h - & m - } - -9. Pop the stack, and update the nth node to point to the popped address - -.. math:: - \gmrule - { \mathtt{Update} \; n : i - & e : f : a_1 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_1 : \mathtt{NAp} \; f \; e \\ - \vdots \\ - a_n : \mathtt{NAp} \; a_{n-1} \; e_n - \end{bmatrix} - & m - } - { i - & f : a_1 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_n : \mathtt{NInd} \; e - \end{bmatrix} - & m - } - -10. Pop the stack. - -.. math:: - \gmrule - { \mathtt{Pop} \; n : i - & a_1 : \ldots : a_n : s - & d - & h - & m - } - { i - & s - & d - & h - & m - } - -11. Follow indirections while unwinding - -.. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NInd} \; a' - \end{bmatrix} - & m - } - { \mathtt{Unwind} : \nillist - & a' : s - & d - & h - & m - } - -12. Allocate uninitialised heap space - -.. math:: - \gmrule - { \mathtt{Alloc} \; n : i - & s - & d - & h - & m - } - { i - & a_1 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_1 : \mathtt{NUninitialised} \\ - \vdots \\ - a_n : \mathtt{NUninitialised} \\ - \end{bmatrix} - & m - } - -13. When unwinding, if the top of the stack is in WHNF, pop the dump - -.. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a : s - & \langle i', s' \rangle : d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & m - } - { i' - & a : s' - & d - & h - & m - } - -14. Evaluate the top of the stack to WHNF - -.. math:: - \gmrule - { \mathtt{Eval} : i - & a : s - & d - & h - & m - } - { i' - & a : \nillist - & \langle i, s \rangle - & h - & m - } - -*************** -Extension Rules -*************** - -1. A sneaky trick to enable sharing of :code:`NNum` nodes. We note that the - global environment is a mapping of :code:`Name` objects (i.e. identifiers) to - heap addresses. Strings of digits are not considered valid identifiers! We - abuse this by modifying Core Rule 2 to update the global environment with the - new node's address. Consider how this rule might impact garbage collection - (remember that the environment is intended for *globals*). - -.. math:: - \gmrule - { \mathtt{PushInt} \; n : i - & s - & h - & m - } - { i - & a : s - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & m - \begin{bmatrix} - n' : a - \end{bmatrix} - \\ - \SetCell[c=5]{c} - \text{where $n'$ is the base-10 string rep. of $n$} - } - -2. In order for Extension Rule 1. to be effective, we are also required to take - action when a number already exists in the environment: - -.. math:: - \transrule - { \mathtt{PushInt} \; n : i - & s - & h - & m - \begin{bmatrix} - n' : a - \end{bmatrix} - } - { i - & a : s - & h - & m - \\ - \SetCell[c=5]{c} - \text{where $n'$ is the base-10 string rep. of $n$} - } - diff --git a/doc/build/html/_sources/references/gm-state-transitions.rst.txt b/doc/build/html/_sources/references/gm-state-transitions.rst.txt deleted file mode 100644 index 1c452f0..0000000 --- a/doc/build/html/_sources/references/gm-state-transitions.rst.txt +++ /dev/null @@ -1,466 +0,0 @@ -================================ -G-Machine State Transition Rules -================================ - -********************* -Core Transition Rules -********************* - -#. Lookup a global by name and push its value onto the stack - - .. math:: - \gmrule - { \mathtt{PushGlobal} \; f : i - & s - & d - & h - & m - \begin{bmatrix} - f : a - \end{bmatrix} - } - { i - & a : s - & d - & h - & m - } - -#. Allocate an int node on the heap, and push the address of the newly created - node onto the stack - - .. math:: - \gmrule - { \mathtt{PushInt} \; n : i - & s - & d - & h - & m - } - { i - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & m - } - -#. Allocate an application node on the heap, applying the top of the stack to - the address directly below it. The address of the application node is pushed - onto the stack. - - .. math:: - \gmrule - { \mathtt{MkAp} : i - & f : x : s - & d - & h - & m - } - { i - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NAp} \; f \; x - \end{bmatrix} - & m - } - -#. Push a function's argument onto the stack - - .. math:: - \gmrule - { \mathtt{Push} \; n : i - & a_0 : \ldots : a_n : s - & d - & h - & m - } - { i - & a_n : a_0 : \ldots : a_n : s - & d - & h - & m - } - -#. Tidy up the stack after instantiating a supercombinator - - .. math:: - \gmrule - { \mathtt{Slide} \; n : i - & a_0 : \ldots : a_n : s - & d - & h - & m - } - { i - & a_0 : s - & d - & h - & m - } - -#. If the top of the stack is in WHNF (currently this just means a number) is on - top of the stack, :code:`Unwind` considers evaluation complete. In the case - where the dump is **not** empty, the instruction queue and stack is restored - from the top. - - .. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a : s - & \langle i', s' \rangle : d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & m - } - { i' - & a : s' - & d - & h - & m - } - -#. Bulding on the previous rule, in the case where the dump **is** empty, leave - the machine in a halt state (i.e. with an empty instruction queue). - - .. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a : s - & \nillist - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & m - } - { \nillist - & a : s - & \nillist - & h - & m - } - -#. Again, building on the previous rules, this rule makes the machine consider - unapplied supercombinators to be in WHNF - - .. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a_0 : \ldots : a_n : \nillist - & \langle i, s \rangle : d - & h - \begin{bmatrix} - a_0 : \mathtt{NGlobal} \; k \; c - \end{bmatrix} - & m - } - { i - & a_n : s - & d - & h - & m \\ - \SetCell[c=2]{c} - \text{when $n < k$} - } - -#. If an application is on top of the stack, :code:`Unwind` continues unwinding - - .. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NAp} \; f \; x - \end{bmatrix} - & m - } - { \mathtt{Unwind} : \nillist - & f : a : s - & d - & h - & m - } - -#. When a supercombinator is on top of the stack (and the correct number of - arguments have been provided), :code:`Unwind` sets up the stack and jumps to - the supercombinator's code (:math:`\beta`-reduction) - - .. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a_0 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_0 : \mathtt{NGlobal} \; n \; c \\ - a_1 : \mathtt{NAp} \; a_0 \; e_1 \\ - \vdots \\ - a_n : \mathtt{NAp} \; a_{n-1} \; e_n \\ - \end{bmatrix} - & m - } - { c - & e_1 : \ldots : e_n : a_n : s - & d - & h - & m - } - -#. Pop the stack, and update the nth node to point to the popped address - - .. math:: - \gmrule - { \mathtt{Update} \; n : i - & e : f : a_1 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_1 : \mathtt{NAp} \; f \; e \\ - \vdots \\ - a_n : \mathtt{NAp} \; a_{n-1} \; e_n - \end{bmatrix} - & m - } - { i - & f : a_1 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_n : \mathtt{NInd} \; e - \end{bmatrix} - & m - } - -#. Pop the stack. - - .. math:: - \gmrule - { \mathtt{Pop} \; n : i - & a_1 : \ldots : a_n : s - & d - & h - & m - } - { i - & s - & d - & h - & m - } - -#. Follow indirections while unwinding - - .. math:: - \gmrule - { \mathtt{Unwind} : \nillist - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NInd} \; a' - \end{bmatrix} - & m - } - { \mathtt{Unwind} : \nillist - & a' : s - & d - & h - & m - } - -#. Allocate uninitialised heap space - - .. math:: - \gmrule - { \mathtt{Alloc} \; n : i - & s - & d - & h - & m - } - { i - & a_1 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_1 : \mathtt{NUninitialised} \\ - \vdots \\ - a_n : \mathtt{NUninitialised} \\ - \end{bmatrix} - & m - } - -#. Evaluate the top of the stack to WHNF - - .. math:: - \gmrule - { \mathtt{Eval} : i - & a : s - & d - & h - & m - } - { \mathtt{Unwind} : \nillist - & a : \nillist - & \langle i, s \rangle : d - & h - & m - } - -#. Reduce a primitive binary operator :math:`*`. - - .. math:: - \gmrule - { * : i - & a_1 : a_2 : s - & d - & h - \begin{bmatrix} - a_1 : x \\ - a_2 : y - \end{bmatrix} - & m - } - { i - & a' : s - & d - & h - \begin{bmatrix} - a' : (x * y) - \end{bmatrix} - & m - } - -#. Reduce a primitive unary operator :math:`\neg`. - - .. math:: - \gmrule - { \neg : i - & a : s - & d - & h - \begin{bmatrix} - a : x - \end{bmatrix} - & m - } - { i - & a' : s - & d - & h - \begin{bmatrix} - a' : (\neg x) - \end{bmatrix} - & m - } - -#. Pack a constructor if there are sufficient arguments - - .. math:: - \gmrule - { \mathtt{Pack} \; t \; n : i - & a_1 : \ldots : a_n : s - & d - & h - & m - } - { i - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NConstr} \; t \; [a_1,\ldots,a_n] - \end{bmatrix} - & m - } - -#. Evaluate a case - - .. math:: - \gmrule - { \mathtt{CaseJump} \begin{bmatrix} t \to c \end{bmatrix} : i - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NConstr} \; t \; v - \end{bmatrix} - & m - } - { c \concat i - & d - & h - & m - } - - - -*************** -Extension Rules -*************** - -#. A sneaky trick to enable sharing of :code:`NNum` nodes. We note that the - global environment is a mapping of plain old strings to heap addresses. - Strings of digits are not considered valid identifiers, so putting them on - the global environment will never conflict with a supercombinator! We abuse - this by modifying Core Rule 2 to update the global environment with the new - node's address. Consider how this rule might impact garbage collection - (remember that the environment is intended for *globals*). - - .. math:: - \gmrule - { \mathtt{PushInt} \; n : i - & s - & d - & h - & m - } - { i - & a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & m - \begin{bmatrix} - n' : a - \end{bmatrix} - \\ - \SetCell[c=5]{c} - \text{where $n'$ is the base-10 string rep. of $n$} - } - -#. In order for the previous rule to be effective, we are also required to take - action when a number already exists in the environment: - - .. math:: - \gmrule - { \mathtt{PushInt} \; n : i - & s - & d - & h - & m - \begin{bmatrix} - n' : a - \end{bmatrix} - } - { i - & a : s - & d - & h - & m - \\ - \SetCell[c=5]{c} - \text{where $n'$ is the base-10 string rep. of $n$} - } - diff --git a/doc/build/html/_sources/references/ti-state-transitions.rst.txt b/doc/build/html/_sources/references/ti-state-transitions.rst.txt deleted file mode 100644 index ec25182..0000000 --- a/doc/build/html/_sources/references/ti-state-transitions.rst.txt +++ /dev/null @@ -1,334 +0,0 @@ -============================================ -Template Instantiator State Transition Rules -============================================ - -Evaluation is complete when a single :code:`NNum` remains on the stack and the -dump is empty. - -.. math:: - \transrule - { a : \nillist - & \nillist - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & g - } - { \mathtt{HALT} - } - -Dereference an indirection passed as an argument to a function. - -.. math:: - \transrule - {a : s & d & h - \begin{bmatrix} - a : \mathtt{NAp} \; a_1 \; a_2 \\ - a_2 : \mathtt{NInd} \; a_3 - \end{bmatrix} & g} - {a : s & d & h[a : \mathtt{NAp} \; a_1 \; a_3] & g} - -Dereference an indirection on top of the stack. - -.. math:: - \transrule - {p : s & d & h - \begin{bmatrix} - p : \mathtt{NInd} \; a - \end{bmatrix} & g} - {a : s & d & h & g} - -Perform a unary operation :math:`o(n)` with internal :code:`Prim` constructor -:code:`O` on an argument in normal form. - -.. math:: - \transrule - { f : a : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{O} \\ - a : \mathtt{NAp} \; f \; x \\ - x : \mathtt{NNum} \; n - \end{bmatrix} - & g - } - { a : s - & d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; (o(n)) - \end{bmatrix} - & g - } - -Evaluate the argument of a unary operation with internal :code:`Prim` -constructor :code:`O`. - -.. math:: - \transrule - { f : a : \nillist - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{O} \\ - a : \mathtt{NAp} \; f \; x - \end{bmatrix} - & g - } - { x : \nillist - & (f : a : \nillist) : d - & h - & g - } - -Restore the stack when a sub-computation has completed. - -.. math:: - \transrule - { a : \nillist - & s : d - & h - \begin{bmatrix} - a : \mathtt{NNum} \; n - \end{bmatrix} - & g - } - { s - & d - & h - & g - } - -Reduce a supercombinator and update the root with the :math:`\beta`-reduced form - -.. math:: - \transrule - { a_0 : a_1 : \ldots : a_n : s - & d - & h - \begin{bmatrix} - a_0 : \mathtt{NSupercomb} \; [x_1,\ldots,x_n] \; e - \end{bmatrix} - & g - } - { a_n : s - & d - & h' - & g - \\ - & \SetCell[c=3]{c} - \text{where } h' = \mathtt{instantiateU} \; e \; a_n \; h \; g - } - -Perform a binary operation :math:`o(x,y)` associated with internal :code:`Prim` -constructor :code:`O` on two :code:`NNum` s both in normal form. - -.. math:: - \transrule - { f : a_1 : a_2 : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{O} \\ - a_1 : \mathtt{NAp} \; f \; (\mathtt{NNum} \; x) \\ - a_2 : \mathtt{NAp} \; a_1 \; (\mathtt{NNum} \; y) - \end{bmatrix} - & g - } - { a_2 : s - & d - & h - \begin{bmatrix} - a_2 : \mathtt{NNum} \; (o(x,y)) - \end{bmatrix} - & g - } - -In a conditional primitive, perform the reduction if the condition has been -evaluated as True (:code:`NData 1 []`). - -.. math:: - \transrule - { f : a_1 : a_2 : a_3 : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{IfP} \\ - c : \mathtt{NPrim} \; (\mathtt{NData} \; 1 \; \nillist) \\ - a_1 : \mathtt{NAp} \; f \; c \\ - a_2 : \mathtt{NAp} \; a_1 \; x \\ - a_3 : \mathtt{NAp} \; a_2 \; y - \end{bmatrix} - & g - } - { x : s - & d - & h - & g - } - -In a conditional primitive, perform the reduction if the condition has been -evaluated as False (:code:`NData 0 []`). - -.. math:: - \transrule - { f : a_1 : a_2 : a_3 : s - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{IfP} \\ - c : \mathtt{NPrim} \; (\mathtt{NData} \; 0 \; \nillist) \\ - a_1 : \mathtt{NAp} \; f \; c \\ - a_2 : \mathtt{NAp} \; a_1 \; x \\ - a_3 : \mathtt{NAp} \; a_2 \; y - \end{bmatrix} - & g - } - { y : s - & d - & h - & g - } - - -In a conditional primitive, evaluate the condition. - -.. math:: - \transrule - { f : a_1 : \nillist - & d - & h - \begin{bmatrix} - f : \mathtt{NPrim} \; \mathtt{IfP} \\ - a_1 : \mathtt{NAp} \; f \; x - \end{bmatrix} - & g - } - { x : \nillist - & (f : a_1 : \nillist) : d - & h - & g - } - -Construct :code:`NData` out of a constructor and its arguments - -.. math:: - \transrule - { c : a_1 : \ldots : a_n : \nillist - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; (\mathtt{ConP} \; t \; n) \\ - a_1 : \mathtt{NAp} \; c \; x_1 \\ - \vdots \\ - a_n : \mathtt{NAp} \; a_{n-1} \; x_n - \end{bmatrix} - & g - } - { a_n : \nillist - & d - & h - \begin{bmatrix} - a_n : \mathtt{NData} \; t \; [x_1, \ldots, x_n] - \end{bmatrix} - & g - } - -Pairs ------ - -Evaluate the first argument if necessary - -.. math:: - \transrule - { c : a_1 : a_2 : \nillist - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CasePairP} \\ - p : \mathtt{NAp} \; \_ \: \_ \\ - a_1 : \mathtt{NAp} \; c \; p \\ - a_2 : \mathtt{NAp} \; a_2 \; f - \end{bmatrix} - & g - } - { p : \nillist - & (a_1 : a_2 : \nillist) : d - & h - & g - } - -Perform the reduction if the first argument is in normal form - -.. math:: - \transrule - { c : a_1 : a_2 : s - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CasePairP} \\ - p : \mathtt{NData} \; 0 \; [x,y] \\ - a_1 : \mathtt{NAp} \; c \; p \\ - a_2 : \mathtt{NAp} \; a_1 \; f - \end{bmatrix} - & g - } - { a_1 : a_2 : s - & d - & h - \begin{bmatrix} - a_1 : \mathtt{NAp} \; f \; x \\ - a_2 : \mathtt{NAp} \; a_1 \; y - \end{bmatrix} - & g - } - -Lists ------ - -Evaluate the scrutinee - -.. math:: - \transrule - { c : a_1 : a_2 : a_3 : \nillist - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CaseListP} \\ - a_1 : \mathtt{NAp} \; c \; x - \end{bmatrix} - & g - } - { x - & (a_1 : a_2 : a_3) : \nillist - & h - & g - } - -If the scrutinee is :code:`Nil`, perform the appropriate reduction. - -.. math:: - \transrule - { c : a_1 : a_2 : a_3 : s - & d - & h - \begin{bmatrix} - c : \mathtt{NPrim} \; \mathtt{CaseListP} \\ - p : \mathtt{NData} \; 1 \; \nillist \\ - a_1 : \mathtt{NAp} \; c \; p \\ - a_2 : \mathtt{NAp} \; p \; f_\text{nil} \\ - a_3 : \mathtt{NAp} \; a_2 \; f_\text{cons} - \end{bmatrix} - & g - } - { a_3 : s - & d - & h - \begin{bmatrix} - a_3 : \mathtt{NAp} \; f_\text{nil} - \end{bmatrix} - & g - } - diff --git a/doc/build/html/_sources/test.rst.txt b/doc/build/html/_sources/test.rst.txt deleted file mode 100644 index 480ae44..0000000 --- a/doc/build/html/_sources/test.rst.txt +++ /dev/null @@ -1,9 +0,0 @@ -test page -========= - - this is a normal paragraph. what follows is a precompiled latex equation:: - -.. math:: - \transrule{a : s & d & h \begin{bmatrix} a : \mathtt{NAp} \; a_1 \; a_2 \\ a_2 : \mathtt{NInd} \; a_3 \end{bmatrix} & f} - {a : s & d & h[a : \mathtt{NAp} \; a_1 \; a_3] & f} - diff --git a/doc/build/html/_static/alabaster.css b/doc/build/html/_static/alabaster.css deleted file mode 100644 index 517d0b2..0000000 --- a/doc/build/html/_static/alabaster.css +++ /dev/null @@ -1,703 +0,0 @@ -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: Georgia, serif; - font-size: 17px; - background-color: #fff; - color: #000; - margin: 0; - padding: 0; -} - - -div.document { - width: 940px; - margin: 30px auto 0 auto; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 220px; -} - -div.sphinxsidebar { - width: 220px; - font-size: 14px; - line-height: 1.5; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.body { - background-color: #fff; - color: #3E4349; - padding: 0 30px 0 30px; -} - -div.body > .section { - text-align: left; -} - -div.footer { - width: 940px; - margin: 20px auto 30px auto; - font-size: 14px; - color: #888; - text-align: right; -} - -div.footer a { - color: #888; -} - -p.caption { - font-family: inherit; - font-size: inherit; -} - - -div.relations { - display: none; -} - - -div.sphinxsidebar a { - color: #444; - text-decoration: none; - border-bottom: 1px dotted #999; -} - -div.sphinxsidebar a:hover { - border-bottom: 1px solid #999; -} - -div.sphinxsidebarwrapper { - padding: 18px 10px; -} - -div.sphinxsidebarwrapper p.logo { - padding: 0; - margin: -10px 0 0 0px; - text-align: center; -} - -div.sphinxsidebarwrapper h1.logo { - margin-top: -10px; - text-align: center; - margin-bottom: 5px; - text-align: left; -} - -div.sphinxsidebarwrapper h1.logo-name { - margin-top: 0px; -} - -div.sphinxsidebarwrapper p.blurb { - margin-top: 0; - font-style: normal; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: Georgia, serif; - color: #444; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 20px; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p.logo a, -div.sphinxsidebar h3 a, -div.sphinxsidebar p.logo a:hover, -div.sphinxsidebar h3 a:hover { - border: none; -} - -div.sphinxsidebar p { - color: #555; - margin: 10px 0; -} - -div.sphinxsidebar ul { - margin: 10px 0; - padding: 0; - color: #000; -} - -div.sphinxsidebar ul li.toctree-l1 > a { - font-size: 120%; -} - -div.sphinxsidebar ul li.toctree-l2 > a { - font-size: 110%; -} - -div.sphinxsidebar input { - border: 1px solid #CCC; - font-family: Georgia, serif; - font-size: 1em; -} - -div.sphinxsidebar hr { - border: none; - height: 1px; - color: #AAA; - background: #AAA; - - text-align: left; - margin-left: 0; - width: 50%; -} - -div.sphinxsidebar .badge { - border-bottom: none; -} - -div.sphinxsidebar .badge:hover { - border-bottom: none; -} - -/* To address an issue with donation coming after search */ -div.sphinxsidebar h3.donation { - margin-top: 10px; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: Georgia, serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #DDD; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #EAEAEA; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - margin: 20px 0px; - padding: 10px 30px; - background-color: #EEE; - border: 1px solid #CCC; -} - -div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fafafa; -} - -div.admonition p.admonition-title { - font-family: Georgia, serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -div.highlight { - background-color: #fff; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.warning { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.danger { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.error { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.caution { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.attention { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.important { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.note { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.tip { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.hint { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.seealso { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.topic { - background-color: #EEE; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt, code { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; - font-size: 0.9em; -} - -.hll { - background-color: #FFC; - margin: 0 -12px; - padding: 0 12px; - display: block; -} - -img.screenshot { -} - -tt.descname, tt.descclassname, code.descname, code.descclassname { - font-size: 0.95em; -} - -tt.descname, code.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #EEE; - background: #FDFDFD; - font-size: 0.9em; -} - -table.footnote + table.footnote { - margin-top: -15px; - border-top: none; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.field-list p { - margin-bottom: 0.8em; -} - -/* Cloned from - * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 - */ -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -table.footnote td.label { - width: .1px; - padding: 0.3em 0 0.3em 0.5em; -} - -table.footnote td { - padding: 0.3em 0.5em; -} - -dl { - margin-left: 0; - margin-right: 0; - margin-top: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -blockquote { - margin: 0 0 0 30px; - padding: 0; -} - -ul, ol { - /* Matches the 30px from the narrow-screen "li > ul" selector below */ - margin: 10px 0 10px 30px; - padding: 0; -} - -pre { - background: #EEE; - padding: 7px 30px; - margin: 15px 0px; - line-height: 1.3em; -} - -div.viewcode-block:target { - background: #ffd; -} - -dl pre, blockquote pre, li pre { - margin-left: 0; - padding-left: 30px; -} - -tt, code { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, code.xref, a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fff; -} - -a.reference { - text-decoration: none; - border-bottom: 1px dotted #004B6B; -} - -/* Don't put an underline on images */ -a.image-reference, a.image-reference:hover { - border-bottom: none; -} - -a.reference:hover { - border-bottom: 1px solid #6D4100; -} - -a.footnote-reference { - text-decoration: none; - font-size: 0.7em; - vertical-align: top; - border-bottom: 1px dotted #004B6B; -} - -a.footnote-reference:hover { - border-bottom: 1px solid #6D4100; -} - -a:hover tt, a:hover code { - background: #EEE; -} - - -@media screen and (max-width: 870px) { - - div.sphinxsidebar { - display: none; - } - - div.document { - width: 100%; - - } - - div.documentwrapper { - margin-left: 0; - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - } - - div.bodywrapper { - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - margin-left: 0; - } - - ul { - margin-left: 0; - } - - li > ul { - /* Matches the 30px from the "ul, ol" selector above */ - margin-left: 30px; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .bodywrapper { - margin: 0; - } - - .footer { - width: auto; - } - - .github { - display: none; - } - - - -} - - - -@media screen and (max-width: 875px) { - - body { - margin: 0; - padding: 20px 30px; - } - - div.documentwrapper { - float: none; - background: #fff; - } - - div.sphinxsidebar { - display: block; - float: none; - width: 102.5%; - margin: 50px -30px -20px -30px; - padding: 10px 20px; - background: #333; - color: #FFF; - } - - div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: #fff; - } - - div.sphinxsidebar a { - color: #AAA; - } - - div.sphinxsidebar p.logo { - display: none; - } - - div.document { - width: 100%; - margin: 0; - } - - div.footer { - display: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - padding: 0; - } - - .rtd_doc_footer { - display: none; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .footer { - width: auto; - } - - .github { - display: none; - } -} - - -/* misc. */ - -.revsys-inline { - display: none!important; -} - -/* Make nested-list/multi-paragraph items look better in Releases changelog - * pages. Without this, docutils' magical list fuckery causes inconsistent - * formatting between different release sub-lists. - */ -div#changelog > div.section > ul > li > p:only-child { - margin-bottom: 0; -} - -/* Hide fugly table cell borders in ..bibliography:: directive output */ -table.docutils.citation, table.docutils.citation td, table.docutils.citation th { - border: none; - /* Below needed in some edge cases; if not applied, bottom shadows appear */ - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - - -/* relbar */ - -.related { - line-height: 30px; - width: 100%; - font-size: 0.9rem; -} - -.related.top { - border-bottom: 1px solid #EEE; - margin-bottom: 20px; -} - -.related.bottom { - border-top: 1px solid #EEE; -} - -.related ul { - padding: 0; - margin: 0; - list-style: none; -} - -.related li { - display: inline; -} - -nav#rellinks { - float: right; -} - -nav#rellinks li+li:before { - content: "|"; -} - -nav#breadcrumbs li+li:before { - content: "\00BB"; -} - -/* Hide certain items when printing */ -@media print { - div.related { - display: none; - } -} \ No newline at end of file diff --git a/doc/build/html/_static/basic.css b/doc/build/html/_static/basic.css deleted file mode 100644 index 30fee9d..0000000 --- a/doc/build/html/_static/basic.css +++ /dev/null @@ -1,925 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a:visited { - color: #551A8B; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -.sig dd { - margin-top: 0px; - margin-bottom: 0px; -} - -.sig dl { - margin-top: 0px; - margin-bottom: 0px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -.translated { - background-color: rgba(207, 255, 207, 0.2) -} - -.untranslated { - background-color: rgba(255, 207, 207, 0.2) -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/doc/build/html/_static/custom.css b/doc/build/html/_static/custom.css deleted file mode 100644 index 2a924f1..0000000 --- a/doc/build/html/_static/custom.css +++ /dev/null @@ -1 +0,0 @@ -/* This file intentionally left blank. */ diff --git a/doc/build/html/_static/doctools.js b/doc/build/html/_static/doctools.js deleted file mode 100644 index d06a71d..0000000 --- a/doc/build/html/_static/doctools.js +++ /dev/null @@ -1,156 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Base JavaScript utilities for all Sphinx HTML documentation. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", -]); - -const _ready = (callback) => { - if (document.readyState !== "loading") { - callback(); - } else { - document.addEventListener("DOMContentLoaded", callback); - } -}; - -/** - * Small JavaScript module for the documentation. - */ -const Documentation = { - init: () => { - Documentation.initDomainIndexTable(); - Documentation.initOnKeyListeners(); - }, - - /** - * i18n support - */ - TRANSLATIONS: {}, - PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), - LOCALE: "unknown", - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext: (string) => { - const translated = Documentation.TRANSLATIONS[string]; - switch (typeof translated) { - case "undefined": - return string; // no translation - case "string": - return translated; // translation exists - default: - return translated[0]; // (singular, plural) translation tuple exists - } - }, - - ngettext: (singular, plural, n) => { - const translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated !== "undefined") - return translated[Documentation.PLURAL_EXPR(n)]; - return n === 1 ? singular : plural; - }, - - addTranslations: (catalog) => { - Object.assign(Documentation.TRANSLATIONS, catalog.messages); - Documentation.PLURAL_EXPR = new Function( - "n", - `return (${catalog.plural_expr})` - ); - Documentation.LOCALE = catalog.locale; - }, - - /** - * helper function to focus on search bar - */ - focusSearchBar: () => { - document.querySelectorAll("input[name=q]")[0]?.focus(); - }, - - /** - * Initialise the domain index toggle buttons - */ - initDomainIndexTable: () => { - const toggler = (el) => { - const idNumber = el.id.substr(7); - const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); - if (el.src.substr(-9) === "minus.png") { - el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; - toggledRows.forEach((el) => (el.style.display = "none")); - } else { - el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; - toggledRows.forEach((el) => (el.style.display = "")); - } - }; - - const togglerElements = document.querySelectorAll("img.toggler"); - togglerElements.forEach((el) => - el.addEventListener("click", (event) => toggler(event.currentTarget)) - ); - togglerElements.forEach((el) => (el.style.display = "")); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); - }, - - initOnKeyListeners: () => { - // only install a listener if it is really needed - if ( - !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS - ) - return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.altKey || event.ctrlKey || event.metaKey) return; - - if (!event.shiftKey) { - switch (event.key) { - case "ArrowLeft": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const prevLink = document.querySelector('link[rel="prev"]'); - if (prevLink && prevLink.href) { - window.location.href = prevLink.href; - event.preventDefault(); - } - break; - case "ArrowRight": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const nextLink = document.querySelector('link[rel="next"]'); - if (nextLink && nextLink.href) { - window.location.href = nextLink.href; - event.preventDefault(); - } - break; - } - } - - // some keyboard layouts may need Shift to get / - switch (event.key) { - case "/": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.focusSearchBar(); - event.preventDefault(); - } - }); - }, -}; - -// quick alias for translations -const _ = Documentation.gettext; - -_ready(Documentation.init); diff --git a/doc/build/html/_static/documentation_options.js b/doc/build/html/_static/documentation_options.js deleted file mode 100644 index 7e4c114..0000000 --- a/doc/build/html/_static/documentation_options.js +++ /dev/null @@ -1,13 +0,0 @@ -const DOCUMENTATION_OPTIONS = { - VERSION: '', - LANGUAGE: 'en', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, -}; \ No newline at end of file diff --git a/doc/build/html/_static/file.png b/doc/build/html/_static/file.png deleted file mode 100644 index a858a41..0000000 Binary files a/doc/build/html/_static/file.png and /dev/null differ diff --git a/doc/build/html/_static/language_data.js b/doc/build/html/_static/language_data.js deleted file mode 100644 index 250f566..0000000 --- a/doc/build/html/_static/language_data.js +++ /dev/null @@ -1,199 +0,0 @@ -/* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * - * This script contains the language-specific data used by searchtools.js, - * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; - - -/* Non-minified version is copied as a separate JS file, is available */ - -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - diff --git a/doc/build/html/_static/minus.png b/doc/build/html/_static/minus.png deleted file mode 100644 index d96755f..0000000 Binary files a/doc/build/html/_static/minus.png and /dev/null differ diff --git a/doc/build/html/_static/plus.png b/doc/build/html/_static/plus.png deleted file mode 100644 index 7107cec..0000000 Binary files a/doc/build/html/_static/plus.png and /dev/null differ diff --git a/doc/build/html/_static/pygments.css b/doc/build/html/_static/pygments.css deleted file mode 100644 index 57c7df3..0000000 --- a/doc/build/html/_static/pygments.css +++ /dev/null @@ -1,84 +0,0 @@ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } -.highlight .c { color: #8f5902; font-style: italic } /* Comment */ -.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ -.highlight .g { color: #000000 } /* Generic */ -.highlight .k { color: #004461; font-weight: bold } /* Keyword */ -.highlight .l { color: #000000 } /* Literal */ -.highlight .n { color: #000000 } /* Name */ -.highlight .o { color: #582800 } /* Operator */ -.highlight .x { color: #000000 } /* Other */ -.highlight .p { color: #000000; font-weight: bold } /* Punctuation */ -.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #8f5902 } /* Comment.Preproc */ -.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #a40000 } /* Generic.Deleted */ -.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ -.highlight .ges { color: #000000 } /* Generic.EmphStrong */ -.highlight .gr { color: #ef2929 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #745334 } /* Generic.Prompt */ -.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ -.highlight .kc { color: #004461; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #004461; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #004461; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #004461; font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { color: #004461; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #004461; font-weight: bold } /* Keyword.Type */ -.highlight .ld { color: #000000 } /* Literal.Date */ -.highlight .m { color: #990000 } /* Literal.Number */ -.highlight .s { color: #4e9a06 } /* Literal.String */ -.highlight .na { color: #c4a000 } /* Name.Attribute */ -.highlight .nb { color: #004461 } /* Name.Builtin */ -.highlight .nc { color: #000000 } /* Name.Class */ -.highlight .no { color: #000000 } /* Name.Constant */ -.highlight .nd { color: #888888 } /* Name.Decorator */ -.highlight .ni { color: #ce5c00 } /* Name.Entity */ -.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #000000 } /* Name.Function */ -.highlight .nl { color: #f57900 } /* Name.Label */ -.highlight .nn { color: #000000 } /* Name.Namespace */ -.highlight .nx { color: #000000 } /* Name.Other */ -.highlight .py { color: #000000 } /* Name.Property */ -.highlight .nt { color: #004461; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #000000 } /* Name.Variable */ -.highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */ -.highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ -.highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ -.highlight .mb { color: #990000 } /* Literal.Number.Bin */ -.highlight .mf { color: #990000 } /* Literal.Number.Float */ -.highlight .mh { color: #990000 } /* Literal.Number.Hex */ -.highlight .mi { color: #990000 } /* Literal.Number.Integer */ -.highlight .mo { color: #990000 } /* Literal.Number.Oct */ -.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */ -.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ -.highlight .sc { color: #4e9a06 } /* Literal.String.Char */ -.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */ -.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ -.highlight .se { color: #4e9a06 } /* Literal.String.Escape */ -.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ -.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ -.highlight .sx { color: #4e9a06 } /* Literal.String.Other */ -.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ -.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ -.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ -.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #000000 } /* Name.Function.Magic */ -.highlight .vc { color: #000000 } /* Name.Variable.Class */ -.highlight .vg { color: #000000 } /* Name.Variable.Global */ -.highlight .vi { color: #000000 } /* Name.Variable.Instance */ -.highlight .vm { color: #000000 } /* Name.Variable.Magic */ -.highlight .il { color: #990000 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/doc/build/html/_static/searchtools.js b/doc/build/html/_static/searchtools.js deleted file mode 100644 index 7918c3f..0000000 --- a/doc/build/html/_static/searchtools.js +++ /dev/null @@ -1,574 +0,0 @@ -/* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -/** - * Simple result scoring code. - */ -if (typeof Scorer === "undefined") { - var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array [docname, title, anchor, descr, score, filename] - // and returns the new score. - /* - score: result => { - const [docname, title, anchor, descr, score, filename] = result - return score - }, - */ - - // query matches the full name of an object - objNameMatch: 11, - // or matches in the last dotted part of the object name - objPartialMatch: 6, - // Additive scores depending on the priority of the object - objPrio: { - 0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5, // used to be unimportantResults - }, - // Used when the priority is not in the mapping. - objPrioDefault: 0, - - // query found in title - title: 15, - partialTitle: 7, - // query found in terms - term: 5, - partialTerm: 2, - }; -} - -const _removeChildren = (element) => { - while (element && element.lastChild) element.removeChild(element.lastChild); -}; - -/** - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping - */ -const _escapeRegExp = (string) => - string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string - -const _displayItem = (item, searchTerms, highlightTerms) => { - const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; - const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; - const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - const contentRoot = document.documentElement.dataset.content_root; - - const [docName, title, anchor, descr, score, _filename] = item; - - let listItem = document.createElement("li"); - let requestUrl; - let linkUrl; - if (docBuilder === "dirhtml") { - // dirhtml builder - let dirname = docName + "/"; - if (dirname.match(/\/index\/$/)) - dirname = dirname.substring(0, dirname.length - 6); - else if (dirname === "index/") dirname = ""; - requestUrl = contentRoot + dirname; - linkUrl = requestUrl; - } else { - // normal html builders - requestUrl = contentRoot + docName + docFileSuffix; - linkUrl = docName + docLinkSuffix; - } - let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + anchor; - linkEl.dataset.score = score; - linkEl.innerHTML = title; - if (descr) { - listItem.appendChild(document.createElement("span")).innerHTML = - " (" + descr + ")"; - // highlight search terms in the description - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - } - else if (showSearchSummary) - fetch(requestUrl) - .then((responseData) => responseData.text()) - .then((data) => { - if (data) - listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) - ); - // highlight search terms in the summary - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - }); - Search.output.appendChild(listItem); -}; -const _finishSearch = (resultCount) => { - Search.stopPulse(); - Search.title.innerText = _("Search Results"); - if (!resultCount) - Search.status.innerText = Documentation.gettext( - "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." - ); - else - Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); -}; -const _displayNextItem = ( - results, - resultCount, - searchTerms, - highlightTerms, -) => { - // results left, load the summary and display it - // this is intended to be dynamic (don't sub resultsCount) - if (results.length) { - _displayItem(results.pop(), searchTerms, highlightTerms); - setTimeout( - () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), - 5 - ); - } - // search finished, update title and status message - else _finishSearch(resultCount); -}; - -/** - * Default splitQuery function. Can be overridden in ``sphinx.search`` with a - * custom function per language. - * - * The regular expression works by splitting the string on consecutive characters - * that are not Unicode letters, numbers, underscores, or emoji characters. - * This is the same as ``\W+`` in Python, preserving the surrogate pair area. - */ -if (typeof splitQuery === "undefined") { - var splitQuery = (query) => query - .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) - .filter(term => term) // remove remaining empty strings -} - -/** - * Search Module - */ -const Search = { - _index: null, - _queued_query: null, - _pulse_status: -1, - - htmlToText: (htmlString) => { - const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); - const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; - console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." - ); - return ""; - }, - - init: () => { - const query = new URLSearchParams(window.location.search).get("q"); - document - .querySelectorAll('input[name="q"]') - .forEach((el) => (el.value = query)); - if (query) Search.performSearch(query); - }, - - loadIndex: (url) => - (document.body.appendChild(document.createElement("script")).src = url), - - setIndex: (index) => { - Search._index = index; - if (Search._queued_query !== null) { - const query = Search._queued_query; - Search._queued_query = null; - Search.query(query); - } - }, - - hasIndex: () => Search._index !== null, - - deferQuery: (query) => (Search._queued_query = query), - - stopPulse: () => (Search._pulse_status = -1), - - startPulse: () => { - if (Search._pulse_status >= 0) return; - - const pulse = () => { - Search._pulse_status = (Search._pulse_status + 1) % 4; - Search.dots.innerText = ".".repeat(Search._pulse_status); - if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); - }; - pulse(); - }, - - /** - * perform a search for something (or wait until index is loaded) - */ - performSearch: (query) => { - // create the required interface elements - const searchText = document.createElement("h2"); - searchText.textContent = _("Searching"); - const searchSummary = document.createElement("p"); - searchSummary.classList.add("search-summary"); - searchSummary.innerText = ""; - const searchList = document.createElement("ul"); - searchList.classList.add("search"); - - const out = document.getElementById("search-results"); - Search.title = out.appendChild(searchText); - Search.dots = Search.title.appendChild(document.createElement("span")); - Search.status = out.appendChild(searchSummary); - Search.output = out.appendChild(searchList); - - const searchProgress = document.getElementById("search-progress"); - // Some themes don't use the search progress node - if (searchProgress) { - searchProgress.innerText = _("Preparing search..."); - } - Search.startPulse(); - - // index already loaded, the browser was quick! - if (Search.hasIndex()) Search.query(query); - else Search.deferQuery(query); - }, - - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - - // stem the search terms and add them to the correct list - const stemmer = new Stemmer(); - const searchTerms = new Set(); - const excludedTerms = new Set(); - const highlightTerms = new Set(); - const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); - splitQuery(query.trim()).forEach((queryTerm) => { - const queryTermLower = queryTerm.toLowerCase(); - - // maybe skip this "word" - // stopwords array is from language_data.js - if ( - stopwords.indexOf(queryTermLower) !== -1 || - queryTerm.match(/^\d+$/) - ) - return; - - // stem the word - let word = stemmer.stemWord(queryTermLower); - // select the correct list - if (word[0] === "-") excludedTerms.add(word.substr(1)); - else { - searchTerms.add(word); - highlightTerms.add(queryTermLower); - } - }); - - if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js - localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) - } - - // console.debug("SEARCH: searching for:"); - // console.info("required: ", [...searchTerms]); - // console.info("excluded: ", [...excludedTerms]); - - // array of [docname, title, anchor, descr, score, filename] - let results = []; - _removeChildren(document.getElementById("search-progress")); - - const queryLower = query.toLowerCase(); - for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { - for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ - docNames[file], - titles[file] !== title ? `${titles[file]} > ${title}` : title, - id !== null ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // search for explicit entries in index directives - for (const [entry, foundEntries] of Object.entries(indexEntries)) { - if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ - docNames[file], - titles[file], - id ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // lookup as object - objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) - ); - - // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); - - // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); - - // remove duplicate search results - // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept - let seen = new Set(); - results = results.reverse().reduce((acc, result) => { - let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); - if (!seen.has(resultStr)) { - acc.push(result); - seen.add(resultStr); - } - return acc; - }, []); - - results = results.reverse(); - - // for debugging - //Search.lastresults = results.slice(); // a copy - // console.info("search results:", Search.lastresults); - - // print the results - _displayNextItem(results, results.length, searchTerms, highlightTerms); - }, - - /** - * search for object names - */ - performObjectSearch: (object, objectTerms) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const objects = Search._index.objects; - const objNames = Search._index.objnames; - const titles = Search._index.titles; - - const results = []; - - const objectSearchCallback = (prefix, match) => { - const name = match[4] - const fullname = (prefix ? prefix + "." : "") + name; - const fullnameLower = fullname.toLowerCase(); - if (fullnameLower.indexOf(object) < 0) return; - - let score = 0; - const parts = fullnameLower.split("."); - - // check for different match types: exact matches of full name or - // "last name" (i.e. last dotted part) - if (fullnameLower === object || parts.slice(-1)[0] === object) - score += Scorer.objNameMatch; - else if (parts.slice(-1)[0].indexOf(object) > -1) - score += Scorer.objPartialMatch; // matches in last name - - const objName = objNames[match[1]][2]; - const title = titles[match[0]]; - - // If more than one term searched for, we require other words to be - // found in the name/title/description - const otherTerms = new Set(objectTerms); - otherTerms.delete(object); - if (otherTerms.size > 0) { - const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); - if ( - [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) - ) - return; - } - - let anchor = match[3]; - if (anchor === "") anchor = fullname; - else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; - - const descr = objName + _(", in ") + title; - - // add custom score for some objects according to scorer - if (Scorer.objPrio.hasOwnProperty(match[2])) - score += Scorer.objPrio[match[2]]; - else score += Scorer.objPrioDefault; - - results.push([ - docNames[match[0]], - fullname, - "#" + anchor, - descr, - score, - filenames[match[0]], - ]); - }; - Object.keys(objects).forEach((prefix) => - objects[prefix].forEach((array) => - objectSearchCallback(prefix, array) - ) - ); - return results; - }, - - /** - * search for full-text terms in the index - */ - performTermsSearch: (searchTerms, excludedTerms) => { - // prepare search - const terms = Search._index.terms; - const titleTerms = Search._index.titleterms; - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - - const scoreMap = new Map(); - const fileMap = new Map(); - - // perform the search on the required terms - searchTerms.forEach((word) => { - const files = []; - const arr = [ - { files: terms[word], score: Scorer.term }, - { files: titleTerms[word], score: Scorer.title }, - ]; - // add support for partial matches - if (word.length > 2) { - const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); - } - - // no match but word was a required one - if (arr.every((record) => record.files === undefined)) return; - - // found search word in contents - arr.forEach((record) => { - if (record.files === undefined) return; - - let recordFiles = record.files; - if (recordFiles.length === undefined) recordFiles = [recordFiles]; - files.push(...recordFiles); - - // set score for the word in each file - recordFiles.forEach((file) => { - if (!scoreMap.has(file)) scoreMap.set(file, {}); - scoreMap.get(file)[word] = record.score; - }); - }); - - // create the mapping - files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); - }); - }); - - // now check if the files don't contain excluded terms - const results = []; - for (const [file, wordList] of fileMap) { - // check if all requirements are matched - - // as search terms with length < 3 are discarded - const filteredTermCount = [...searchTerms].filter( - (term) => term.length > 2 - ).length; - if ( - wordList.length !== searchTerms.size && - wordList.length !== filteredTermCount - ) - continue; - - // ensure that none of the excluded terms is in the search result - if ( - [...excludedTerms].some( - (term) => - terms[term] === file || - titleTerms[term] === file || - (terms[term] || []).includes(file) || - (titleTerms[term] || []).includes(file) - ) - ) - break; - - // select one (max) score for the file. - const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); - // add result to the result list - results.push([ - docNames[file], - titles[file], - "", - null, - score, - filenames[file], - ]); - } - return results; - }, - - /** - * helper function to return a node containing the - * search summary for a given text. keywords is a list - * of stemmed words. - */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); - if (text === "") return null; - - const textLower = text.toLowerCase(); - const actualStartPosition = [...keywords] - .map((k) => textLower.indexOf(k.toLowerCase())) - .filter((i) => i > -1) - .slice(-1)[0]; - const startWithContext = Math.max(actualStartPosition - 120, 0); - - const top = startWithContext === 0 ? "" : "..."; - const tail = startWithContext + 240 < text.length ? "..." : ""; - - let summary = document.createElement("p"); - summary.classList.add("context"); - summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; - - return summary; - }, -}; - -_ready(Search.init); diff --git a/doc/build/html/_static/sphinx_highlight.js b/doc/build/html/_static/sphinx_highlight.js deleted file mode 100644 index 8a96c69..0000000 --- a/doc/build/html/_static/sphinx_highlight.js +++ /dev/null @@ -1,154 +0,0 @@ -/* Highlighting utilities for Sphinx HTML documentation. */ -"use strict"; - -const SPHINX_HIGHLIGHT_ENABLED = true - -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - const rest = document.createTextNode(val.substr(pos + text.length)); - parent.insertBefore( - span, - parent.insertBefore( - rest, - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - /* There may be more occurrences of search term in this node. So call this - * function recursively on the remaining fragment. - */ - _highlight(rest, addItems, text, className); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - -/** - * Small JavaScript module for the documentation. - */ -const SphinxHighlight = { - - /** - * highlight the search words provided in localstorage in the text - */ - highlightSearchWords: () => { - if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight - - // get and clear terms from localstorage - const url = new URL(window.location); - const highlight = - localStorage.getItem("sphinx_highlight_terms") - || url.searchParams.get("highlight") - || ""; - localStorage.removeItem("sphinx_highlight_terms") - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - - // get individual terms from highlight string - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '" - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - localStorage.removeItem("sphinx_highlight_terms") - }, - - initEscapeListener: () => { - // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; - if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { - SphinxHighlight.hideSearchWords(); - event.preventDefault(); - } - }); - }, -}; - -_ready(() => { - /* Do not call highlightSearchWords() when we are on the search page. - * It will highlight words from the *previous* search query. - */ - if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); - SphinxHighlight.initEscapeListener(); -}); diff --git a/doc/build/html/commentary/gm.html b/doc/build/html/commentary/gm.html deleted file mode 100644 index 46d5dad..0000000 --- a/doc/build/html/commentary/gm.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - The G-Machine — rl' documentation - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

The G-Machine

-
-

Motivation

-

Our initial model, the Template Instantiator (TI) was a very -straightforward solution to compilation, but its core design has a major -Achilles’ heel, being that Compilation is interleaved with evaluation – The -heap nodes for supercombinators hold uninstantiated expressions, i.e. raw ASTs -straight from the parser. When a supercombinator is found on the stack during -evaluation, the template expression is instantiated (compiled) on the spot.

-
-

\transrule
-{ a_0 : a_1 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_0 : \mathtt{NSupercomb} \; [x_1,\ldots,x_n] \; e
-\end{bmatrix}
-& g
-}
-{ a_n : s
-& d
-& h'
-& g
-\\
-& \SetCell[c=3]{c}
-\text{where } h' = \mathtt{instantiateU} \; e \; a_n \; h \; g
-}

-

The process of instantiating a supercombinator goes something like this

-
    -
  1. Augment the environment with bindings to the arguments.

  2. -
  3. Using the local augmented environment, instantiate the supercombinator body -on the heap.

  4. -
  5. Remove the nodes applying the supercombinator to its arguments from the -stack.

  6. -
  7. Push the address to the newly instantiated body onto the stack.

  8. -
-
-
src/TI.hs
-
scStep :: Name -> [Name] -> Expr -> TiState -> TiState
-scStep n as e (TiState s d h g sts) =
-    TiState s' d h' g sts
-    where
-        s' = rootAddr : drop (length as + 1) s  -- 3., 4.
-        h' = instantiateU e rootAddr h env      -- 2.
-        rootAddr = s !! length as
-
-        env = argBinds ++ g                     -- 1.
-        argBinds = as `zip` argAddrs
-        argAddrs = getArgs h s
-
-
-
-

Instantiating the supercombinator’s body in this way is the root of our -Achilles’ heel. Traversing a tree structure is a very non-linear task unfit for -an assembly target. The goal of our new G-Machine is to compile a linear -sequence of instructions which instantiate the expression at execution.

-
-
-

Trees and Vines, in Theory

-

WIP.

-
-
-

Evaluation: Slurping Vines

-

WIP.

-
-

Laziness

-

WIP.

-
    -
  • Instead of Slide (n+1); Unwind, do Update n; Pop n; Unwind

  • -
-
-
-
-

Compilation: Squashing Trees

-

WIP.

-

Notice that we do not keep a (local) environment at run-time. The environment -only exists at compile-time to map local names to stack indices. When compiling -a supercombinator, the arguments are enumerated from zero (the top of the -stack), and passed to compileR as an environment.

-
-
src/GM.hs
-
-- type CompiledSC = (Name, Int, Code)
-
-compileSc :: ScDef -> CompiledSC
-compileSc (ScDef n as b) = (n, d, compileR env b)
-    where
-        env = as `zip` [0..]
-        d = length as
-
-
-
-

Of course, variables being indexed relative to the top of the stack means that -they will become inaccurate the moment we push or pop the stack a single time. -The way around this is quite simple: simply offset the stack when w

-
-
src/GM.hs
-
compileC g (App f x) = compileC g x
-                    <> compileC (argOffset 1 g) f
-                    <> [MkAp]
-
-
-
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/commentary/layout-lexing.html b/doc/build/html/commentary/layout-lexing.html deleted file mode 100644 index 72bf9ed..0000000 --- a/doc/build/html/commentary/layout-lexing.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - - Lexing, Parsing, and Layouts — rl' documentation - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Lexing, Parsing, and Layouts

-

The C-style languages of my previous experiences have all had quite trivial -lexical analysis stages, peaking in complexity when I streamed tokens lazily in -C. The task of tokenising a C-style language is very simple in description: you -ignore all whitespace and point out what you recognise. If you don’t recognise -something, check if it’s a literal or an identifier. Should it be neither, -return an error.

-

On paper, both lexing and parsing a Haskell-like language seem to pose a few -greater challenges. Listed by ascending intimidation factor, some of the -potential roadblocks on my mind before making an attempt were:

-
    -
  • Operators; Haskell has not only user-defined infix operators, but user-defined -precedence levels and associativities. I recall using an algorithm that looked -up infix, prefix, postfix, and even mixfix operators up in a global table to -call their appropriate parser (if their precedence was appropriate, also -stored in the table). I never modified the table at runtime, however this -could be a very nice solution for Haskell.

  • -
  • Context-sensitive keywords; Haskell allows for some words to be used as identifiers in -appropriate contexts, such as family, role, as. -Reading a note found in GHC’s lexer, -it appears that keywords are only considered in bodies for which their use is -relevant, e.g. family and role in type declarations, -as after case; if, then, and else in -expressions, etc.

  • -
  • Whitespace sensitivity; While I was comfortable with the idea of a system -similar to Python’s INDENT/DEDENT tokens, Haskell seemed to use whitespace to -section code in a way that felt different.

  • -
-

After a bit of thought and research, whitespace sensitivity in the form of -layouts as Haskell and I will refer to them as, are easily the scariest thing -on this list – however they are achievable!

-
-

A Lexical Primer: Python

-

We will compare and contrast with Python’s lexical analysis. Much to my dismay, -Python uses newlines and indentation to separate statements and resolve scope -instead of the traditional semicolons and braces found in C-style languages (we -may generally refer to these C-style languages as explicitly-sectioned). -Internally during tokenisation, when the Python lexer begins a new line, they -compare the indentation of the new line with that of the previous and apply the -following rules:

-
    -
  1. If the new line has greater indentation than the previous, insert an INDENT -token and push the new line’s indentation level onto the indentation stack -(the stack is initialised with an indentation level of zero).

  2. -
  3. If the new line has lesser indentation than the previous, pop the stack until -the top of the stack is greater than the new line’s indentation level. A -DEDENT token is inserted for each level popped.

  4. -
  5. If the indentation is equal, insert a NEWLINE token to terminate the previous -line, and leave it at that!

  6. -
-

Parsing Python with the INDENT, DEDENT, and NEWLINE tokens is identical to -parsing a language with braces and semicolons. This is a solution pretty in line -with Python’s philosophy of the “one correct answer” (TODO: this needs a -source). In developing our layout rules, we will follow in the pattern of -translating the whitespace-sensitive source language to an explicitly sectioned -language.

-
-
-

But What About Haskell?

-

We saw that Python, the most notable example of an implicitly sectioned -language, is pretty simple to lex. Why then am I so afraid of Haskell’s layouts? -To be frank, I’m far less scared after asking myself this – however there are -certainly some new complexities that Python needn’t concern. Haskell has -implicit line continuation: forms written over multiple lines; indentation -styles often seen in Haskell are somewhat esoteric compared to Python’s -“s/[{};]//”.

-
-- line continuation
-something = this is a
-    single expression
-
--- an extremely common style found in haskell
-data Python = Users
-    { are        :: Crying
-    , right      :: About
-    , now        :: Sorry
-    }
-
--- another formatting oddity
--- note that this is not a single
--- continued line! `look at`,
--- `this`, and `alignment` are all
--- separate expressions!
-anotherThing = do look at
-                  this
-                  alignment
-
-
-

But enough fear, lets actually think about implementation. Firstly, some -formality: what do we mean when we say layout? We will define layout as the -rules we apply to an implicitly-sectioned language in order to yield one that is -explicitly-sectioned. We will also define indentation of a lexeme as the column -number of its first character.

-

Thankfully for us, our entry point is quite clear; layouts only appear after a -select few keywords, (with a minor exception; TODO: elaborate) being let -(followed by supercombinators), where (followed by supercombinators), -do (followed by expressions), and of (followed by alternatives) -(TODO: all of these terms need linked glossary entries). In order to manage the -cascade of layout contexts, our lexer will record a stack for which each element -is either \varnothing, denoting an explicit layout written with braces -and semicolons, or a \langle n \rangle, denoting an implicitly laid-out -layout where the start of each item belonging to the layout is indented -n columns.

-
-- layout stack: []
-module M where -- layout stack: [∅]
-
-f x = let -- layout keyword; remember indentation of next token
-          y = w * w -- layout stack: [∅, <10>]
-          w = x + x
-          -- layout ends here
-      in do -- layout keyword; next token is a brace!
-          { -- layout stack: [∅]
-              print y;
-              print x;
-          }
-
-
-

Finally, we also need the concept of “virtual” brace tokens, which as far as -we’re concerned at this moment are exactly like normal brace tokens, except -implicitly inserted by the compiler. With the presented ideas in mind, we may -begin to introduce a small set of informal rules describing the lexer’s handling -of layouts, the first being:

-
    -
  1. If a layout keyword is followed by the token ‘{’, push \varnothing -onto the layout context stack. Otherwise, push \langle n \rangle onto -the layout context stack where n is the indentation of the token -following the layout keyword. Additionally, the lexer is to insert a virtual -opening brace after the token representing the layout keyword.

  2. -
-

Consider the following observations from that previous code sample:

-
    -
  • Function definitions should belong to a layout, each of which may start at -column 1.

  • -
  • A layout can enclose multiple bodies, as seen in the let-bindings and -the do-expression.

  • -
  • Semicolons should terminate items, rather than separate them.

  • -
-

Our current focus is the semicolons. In an implicit layout, items are on -separate lines each aligned with the previous. A naïve implementation would be -to insert the semicolon token when the EOL is reached, but this proves unideal -when you consider the alignment requirement. In our implementation, our lexer -will wait until the first token on a new line is reached, then compare -indentation and insert a semicolon if appropriate. This comparison – the -nondescript measurement of “more, less, or equal indentation” rather than a -numeric value – is referred to as offside by myself internally and the -Haskell report describing layouts. We informally formalise this rule as follows:

-
    -
  1. When the first token on a line is preceeded only by whitespace, if the -token’s first grapheme resides on a column number m equal to the -indentation level of the enclosing context – i.e. the \langle n
-\rangle on top of the layout stack. Should no such context exist on the -stack, assume m > n.

  2. -
-

We have an idea of how to begin layouts, delimit the enclosed items, and last -we’ll need to end layouts. This is where the distinction between virtual and -non-virtual brace tokens comes into play. The lexer needs only partial concern -towards closing layouts; the complete responsibility is shared with the parser. -This will be elaborated on in the next section. For now, we will be content with -naïvely inserting a virtual closing brace when a token is indented right of the -layout.

-
    -
  1. Under the same conditions as rule 2., when m < n the lexer shall -insert a virtual closing brace and pop the layout stack.

  2. -
-

This rule covers some cases including the top-level, however, consider -tokenising the in in a let-expression. If our lexical analysis -framework only allows for lexing a single token at a time, we cannot return both -a virtual right-brace and a in. Under this model, the lexer may simply -pop the layout stack and return the in token. As we’ll see in the next -section, as long as the lexer keeps track of its own context (i.e. the stack), -the parser will cope just fine without the virtual end-brace.

-
-
-

Parsing Lonely Braces

-

When viewed in the abstract, parsing and tokenising are near-identical tasks yet -the two are very often decomposed into discrete systems with very different -implementations. Lexers operate on streams of text and tokens, while parsers -are typically far less linear, using a parse stack or recursing top-down. A -big reason for this separation is state management: the parser aims to be as -context-free as possible, while the lexer tends to burden the necessary -statefulness. Still, the nature of a stream-oriented lexer makes backtracking -difficult and quite inelegant.

-

However, simply declaring a parse error to be not an error at all -counterintuitively proves to be an elegant solution our layout problem which -minimises backtracking and state in both the lexer and the parser. Consider the -following definitions found in rlp’s BNF:

-
-VOpen  ::=  vopen
-VClose ::=  vclose | error
-
-

A parse error is recovered and treated as a closing brace. Another point of note -in the BNF is the difference between virtual and non-virtual braces (TODO: i -don’t like that the BNF is formatted without newlines :/):

-
-LetExpr ::=  let VOpen Bindings VClose in Expr | let `{` Bindings `}` in Expr
-
-

This ensures that non-virtual braces are closed explicitly.

-

This set of rules is adequete enough to satisfy our basic concerns about line -continations and layout lists. For a more pedantic description of the layout -system, see chapter 10 of the -2010 Haskell Report, which I heavily referenced here.

-
-

References

- -
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/commentary/stg.html b/doc/build/html/commentary/stg.html deleted file mode 100644 index e2d864d..0000000 --- a/doc/build/html/commentary/stg.html +++ /dev/null @@ -1,409 +0,0 @@ - - - - - - - - The Spineless Tagless G-Machine — rlp documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

The Spineless Tagless G-Machine

-

WIP. This will hopefully be expanded into a thorough walkthrough of the state -machine.

-

Evaluation is complete when a single NNum remains on the stack and the -dump is empty.

-
-

\transrule
-{ a : \nillist
-& \nillist
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& g
-}
-{ \mathtt{HALT}
-}

-

Dereference an indirection passed as an argument to a function.

-
-

\transrule
-     {a : s & d & h
-        \begin{bmatrix}
-            a : \mathtt{NAp} \; a_1 \; a_2 \\
-            a_2 : \mathtt{NInd} \; a_3
-        \end{bmatrix} & g}
-     {a : s & d & h[a : \mathtt{NAp} \; a_1 \; a_3] & g}

-

Dereference an indirection on top of the stack.

-
-

\transrule
-     {p : s & d & h
-         \begin{bmatrix}
-             p : \mathtt{NInd} \; a
-         \end{bmatrix} & g}
-     {a : s & d & h & g}

-

Perform a unary operation o(n) with internal Prim constructor -O on an argument in normal form.

-
-

\transrule
-     { f : a : s
-     & d
-     & h
-     \begin{bmatrix}
-         f : \mathtt{NPrim} \; \mathtt{O} \\
-         a : \mathtt{NAp} \; f \; x \\
-         x : \mathtt{NNum} \; n
-     \end{bmatrix}
-     & g
-     }
-     { a : s
-     & d
-     & h
-     \begin{bmatrix}
-         a : \mathtt{NNum} \; (o(n))
-     \end{bmatrix}
-     & g
-     }

-

Evaluate the argument of a unary operation with internal Prim -constructor O.

-
-

\transrule
-     { f : a : \nillist
-     & d
-     & h
-     \begin{bmatrix}
-         f : \mathtt{NPrim} \; \mathtt{O} \\
-         a : \mathtt{NAp} \; f \; x
-     \end{bmatrix}
-     & g
-     }
-     { x : \nillist
-     & (f : a : \nillist) : d
-     & h
-     & g
-     }

-

Restore the stack when a sub-computation has completed.

-
-

\transrule
-{ a : \nillist
-& s : d
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& g
-}
-{ s
-& d
-& h
-& g
-}

-

Reduce a supercombinator and update the root with the \beta-reduced form

-
-

\transrule
-{ a_0 : a_1 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_0 : \mathtt{NSupercomb} \; [x_1,\ldots,x_n] \; e
-\end{bmatrix}
-& g
-}
-{ a_n : s
-& d
-& h'
-& g
-\\
-& \SetCell[c=3]{c}
-\text{where } h' = \mathtt{instantiateU} \; e \; a_n \; h \; g
-}

-

Perform a binary operation o(x,y) associated with internal Prim -constructor O on two NNum s both in normal form.

-
-

\transrule
-{ f : a_1 : a_2 : s
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{O} \\
-     a_1 : \mathtt{NAp} \; f \; (\mathtt{NNum} \; x) \\
-     a_2 : \mathtt{NAp} \; a_1 \; (\mathtt{NNum} \; y)
-\end{bmatrix}
-& g
-}
-{ a_2 : s
-& d
-& h
-\begin{bmatrix}
-     a_2 : \mathtt{NNum} \; (o(x,y))
-\end{bmatrix}
-& g
-}

-

In a conditional primitive, perform the reduction if the condition has been -evaluated as True (NData 1 []).

-
-

\transrule
-{ f : a_1 : a_2 : a_3 : s
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{IfP} \\
-     c : \mathtt{NPrim} \; (\mathtt{NData} \; 1 \; \nillist) \\
-     a_1 : \mathtt{NAp} \; f \; c \\
-     a_2 : \mathtt{NAp} \; a_1 \; x \\
-     a_3 : \mathtt{NAp} \; a_2 \; y
-\end{bmatrix}
-& g
-}
-{ x : s
-& d
-& h
-& g
-}

-

In a conditional primitive, perform the reduction if the condition has been -evaluated as False (NData 0 []).

-
-

\transrule
-{ f : a_1 : a_2 : a_3 : s
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{IfP} \\
-     c : \mathtt{NPrim} \; (\mathtt{NData} \; 0 \; \nillist) \\
-     a_1 : \mathtt{NAp} \; f \; c \\
-     a_2 : \mathtt{NAp} \; a_1 \; x \\
-     a_3 : \mathtt{NAp} \; a_2 \; y
-\end{bmatrix}
-& g
-}
-{ y : s
-& d
-& h
-& g
-}

-

In a conditional primitive, evaluate the condition.

-
-

\transrule
-{ f : a_1 : \nillist
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{IfP} \\
-     a_1 : \mathtt{NAp} \; f \; x
-\end{bmatrix}
-& g
-}
-{ x : \nillist
-& (f : a_1 : \nillist) : d
-& h
-& g
-}

-

Construct NData out of a constructor and its arguments

-
-

\transrule
-{ c : a_1 : \ldots : a_n : \nillist
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; (\mathtt{ConP} \; t \; n) \\
-     a_1 : \mathtt{NAp} \; c \; x_1 \\
-     \vdots \\
-     a_n : \mathtt{NAp} \; a_{n-1} \; x_n
-\end{bmatrix}
-& g
-}
-{ a_n : \nillist
-& d
-& h
-\begin{bmatrix}
-     a_n : \mathtt{NData} \; t \; [x_1, \ldots, x_n]
-\end{bmatrix}
-& g
-}

-
-

Pairs

-

Evaluate the first argument if necessary

-
-

\transrule
-{ c : a_1 : a_2 : \nillist
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CasePairP} \\
-     p : \mathtt{NAp} \; \_ \: \_ \\
-     a_1 : \mathtt{NAp} \; c \; p \\
-     a_2 : \mathtt{NAp} \; a_2 \; f
-\end{bmatrix}
-& g
-}
-{ p : \nillist
-& (a_1 : a_2 : \nillist) : d
-& h
-& g
-}

-

Perform the reduction if the first argument is in normal form

-
-

\transrule
-{ c : a_1 : a_2 : s
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CasePairP} \\
-     p : \mathtt{NData} \; 0 \; [x,y] \\
-     a_1 : \mathtt{NAp} \; c \; p \\
-     a_2 : \mathtt{NAp} \; a_1 \; f
-\end{bmatrix}
-& g
-}
-{ a_1 : a_2 : s
-& d
-& h
-\begin{bmatrix}
-     a_1 : \mathtt{NAp} \; f \; x \\
-     a_2 : \mathtt{NAp} \; a_1 \; y
-\end{bmatrix}
-& g
-}

-
-
-

Lists

-

Evaluate the scrutinee

-
-

\transrule
-{ c : a_1 : a_2 : a_3 : \nillist
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CaseListP} \\
-     a_1 : \mathtt{NAp} \; c \; x
-\end{bmatrix}
-& g
-}
-{ x : \nillist
-& (a_1 : a_2 : a_3) : \nillist
-& h
-& g
-}

-

If the scrutinee is Nil, perform the appropriate reduction.

-
-

\transrule
-{ c : a_1 : a_2 : a_3 : s
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CaseListP} \\
-     p : \mathtt{NData} \; 1 \; \nillist \\
-     a_1 : \mathtt{NAp} \; c \; p \\
-     a_2 : \mathtt{NAp} \; p \; f_\text{nil} \\
-     a_3 : \mathtt{NAp} \; a_2 \; f_\text{cons}
-\end{bmatrix}
-& g
-}
-{ a_3 : s
-& d
-& h
-\begin{bmatrix}
-     a_3 : \mathtt{NAp} \; f_\text{nil}
-\end{bmatrix}
-& g
-}

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/commentary/ti.html b/doc/build/html/commentary/ti.html deleted file mode 100644 index 77f7bec..0000000 --- a/doc/build/html/commentary/ti.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - The Template Instantiator — rl' documentation - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

The Template Instantiator

-

WIP. This will hopefully be expanded into a thorough walkthrough of the state -machine.

-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/commentary/tim.html b/doc/build/html/commentary/tim.html deleted file mode 100644 index f291bdb..0000000 --- a/doc/build/html/commentary/tim.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - - - - The Template Instantiation Machine — rlp documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

The Template Instantiation Machine

-

WIP. This will hopefully be expanded into a thorough walkthrough of the state -machine.

-

Evaluation is complete when a single NNum remains on the stack and the -dump is empty.

-
-

\transrule
-{ a : \nillist
-& \nillist
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& g
-}
-{ \mathtt{HALT}
-}

-

Dereference an indirection passed as an argument to a function.

-
-

\transrule
-     {a : s & d & h
-        \begin{bmatrix}
-            a : \mathtt{NAp} \; a_1 \; a_2 \\
-            a_2 : \mathtt{NInd} \; a_3
-        \end{bmatrix} & g}
-     {a : s & d & h[a : \mathtt{NAp} \; a_1 \; a_3] & g}

-

Dereference an indirection on top of the stack.

-
-

\transrule
-     {p : s & d & h
-         \begin{bmatrix}
-             p : \mathtt{NInd} \; a
-         \end{bmatrix} & g}
-     {a : s & d & h & g}

-

Perform a unary operation o(n) with internal Prim constructor -O on an argument in normal form.

-
-

\transrule
-     { f : a : s
-     & d
-     & h
-     \begin{bmatrix}
-         f : \mathtt{NPrim} \; \mathtt{O} \\
-         a : \mathtt{NAp} \; f \; x \\
-         x : \mathtt{NNum} \; n
-     \end{bmatrix}
-     & g
-     }
-     { a : s
-     & d
-     & h
-     \begin{bmatrix}
-         a : \mathtt{NNum} \; (o(n))
-     \end{bmatrix}
-     & g
-     }

-

Evaluate the argument of a unary operation with internal Prim -constructor O.

-
-

\transrule
-     { f : a : \nillist
-     & d
-     & h
-     \begin{bmatrix}
-         f : \mathtt{NPrim} \; \mathtt{O} \\
-         a : \mathtt{NAp} \; f \; x
-     \end{bmatrix}
-     & g
-     }
-     { x : \nillist
-     & (f : a : \nillist) : d
-     & h
-     & g
-     }

-

Restore the stack when a sub-computation has completed.

-
-

\transrule
-{ a : \nillist
-& s : d
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& g
-}
-{ s
-& d
-& h
-& g
-}

-

Reduce a supercombinator and update the root with the \beta-reduced form

-
-

\transrule
-{ a_0 : a_1 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_0 : \mathtt{NSupercomb} \; [x_1,\ldots,x_n] \; e
-\end{bmatrix}
-& g
-}
-{ a_n : s
-& d
-& h'
-& g
-\\
-& \SetCell[c=3]{c}
-\text{where } h' = \mathtt{instantiateU} \; e \; a_n \; h \; g
-}

-

Perform a binary operation o(x,y) associated with internal Prim -constructor O on two NNum s both in normal form.

-
-

\transrule
-{ f : a_1 : a_2 : s
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{O} \\
-     a_1 : \mathtt{NAp} \; f \; (\mathtt{NNum} \; x) \\
-     a_2 : \mathtt{NAp} \; a_1 \; (\mathtt{NNum} \; y)
-\end{bmatrix}
-& g
-}
-{ a_2 : s
-& d
-& h
-\begin{bmatrix}
-     a_2 : \mathtt{NNum} \; (o(x,y))
-\end{bmatrix}
-& g
-}

-

In a conditional primitive, perform the reduction if the condition has been -evaluated as True (NData 1 []).

-
-

\transrule
-{ f : a_1 : a_2 : a_3 : s
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{IfP} \\
-     c : \mathtt{NPrim} \; (\mathtt{NData} \; 1 \; \nillist) \\
-     a_1 : \mathtt{NAp} \; f \; c \\
-     a_2 : \mathtt{NAp} \; a_1 \; x \\
-     a_3 : \mathtt{NAp} \; a_2 \; y
-\end{bmatrix}
-& g
-}
-{ x : s
-& d
-& h
-& g
-}

-

In a conditional primitive, perform the reduction if the condition has been -evaluated as False (NData 0 []).

-
-

\transrule
-{ f : a_1 : a_2 : a_3 : s
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{IfP} \\
-     c : \mathtt{NPrim} \; (\mathtt{NData} \; 0 \; \nillist) \\
-     a_1 : \mathtt{NAp} \; f \; c \\
-     a_2 : \mathtt{NAp} \; a_1 \; x \\
-     a_3 : \mathtt{NAp} \; a_2 \; y
-\end{bmatrix}
-& g
-}
-{ y : s
-& d
-& h
-& g
-}

-

In a conditional primitive, evaluate the condition.

-
-

\transrule
-{ f : a_1 : \nillist
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{IfP} \\
-     a_1 : \mathtt{NAp} \; f \; x
-\end{bmatrix}
-& g
-}
-{ x : \nillist
-& (f : a_1 : \nillist) : d
-& h
-& g
-}

-

Construct NData out of a constructor and its arguments

-
-

\transrule
-{ c : a_1 : \ldots : a_n : \nillist
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; (\mathtt{ConP} \; t \; n) \\
-     a_1 : \mathtt{NAp} \; c \; x_1 \\
-     \vdots \\
-     a_n : \mathtt{NAp} \; a_{n-1} \; x_n
-\end{bmatrix}
-& g
-}
-{ a_n : \nillist
-& d
-& h
-\begin{bmatrix}
-     a_n : \mathtt{NData} \; t \; [x_1, \ldots, x_n]
-\end{bmatrix}
-& g
-}

-
-

Pairs

-

Evaluate the first argument if necessary

-
-

\transrule
-{ c : a_1 : a_2 : \nillist
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CasePairP} \\
-     p : \mathtt{NAp} \; \_ \: \_ \\
-     a_1 : \mathtt{NAp} \; c \; p \\
-     a_2 : \mathtt{NAp} \; a_2 \; f
-\end{bmatrix}
-& g
-}
-{ p : \nillist
-& (a_1 : a_2 : \nillist) : d
-& h
-& g
-}

-

Perform the reduction if the first argument is in normal form

-
-

\transrule
-{ c : a_1 : a_2 : s
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CasePairP} \\
-     p : \mathtt{NData} \; 0 \; [x,y] \\
-     a_1 : \mathtt{NAp} \; c \; p \\
-     a_2 : \mathtt{NAp} \; a_1 \; f
-\end{bmatrix}
-& g
-}
-{ a_1 : a_2 : s
-& d
-& h
-\begin{bmatrix}
-     a_1 : \mathtt{NAp} \; f \; x \\
-     a_2 : \mathtt{NAp} \; a_1 \; y
-\end{bmatrix}
-& g
-}

-
-
-

Lists

-

Evaluate the scrutinee

-
-

\transrule
-{ c : a_1 : a_2 : a_3 : \nillist
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CaseListP} \\
-     a_1 : \mathtt{NAp} \; c \; x
-\end{bmatrix}
-& g
-}
-{ x
-& (a_1 : a_2 : a_3) : \nillist
-& h
-& g
-}

-

If the scrutinee is Nil, perform the appropriate reduction.

-
-

\transrule
-{ c : a_1 : a_2 : a_3 : s
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CaseListP} \\
-     p : \mathtt{NData} \; 1 \; \nillist \\
-     a_1 : \mathtt{NAp} \; c \; p \\
-     a_2 : \mathtt{NAp} \; p \; f_\text{nil} \\
-     a_3 : \mathtt{NAp} \; a_2 \; f_\text{cons}
-\end{bmatrix}
-& g
-}
-{ a_3 : s
-& d
-& h
-\begin{bmatrix}
-     a_3 : \mathtt{NAp} \; f_\text{nil}
-\end{bmatrix}
-& g
-}

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/genindex.html b/doc/build/html/genindex.html deleted file mode 100644 index 87a4b02..0000000 --- a/doc/build/html/genindex.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - Index — rl' documentation - - - - - - - - - - - - - - - - -
-
-
- - -
- - -

Index

- -
- C - | L - | S - -
-

C

- - -
- -

L

- - -
- -

S

- - -
- - - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/glossary.html b/doc/build/html/glossary.html deleted file mode 100644 index 798382c..0000000 --- a/doc/build/html/glossary.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - Glossary — rl' documentation - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Glossary

-

Haskell and Haskell culture is infamous for using scary mathematical terms for -simple ideas. Please excuse us, it’s really fun :3.

-
-
supercombinator

An expression with no free variables. For most purposes, just think of a -top-level definition.

-
-
case alternative

An possible match in a case expression (TODO: example)

-
-
layout

The syntax used in rlp and Haskell that allows for implicitly sectioned -code using alignment and newlines.

-
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/index.html b/doc/build/html/index.html deleted file mode 100644 index ac6b1ed..0000000 --- a/doc/build/html/index.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - Welcome to rlp’s documentation! — rl' documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Welcome to rlp’s documentation!

-
-

Contents

-
-

Index

- -
- - -
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/objects.inv b/doc/build/html/objects.inv deleted file mode 100644 index 3f7a6b8..0000000 Binary files a/doc/build/html/objects.inv and /dev/null differ diff --git a/doc/build/html/references/gm-state-transition-rules.html b/doc/build/html/references/gm-state-transition-rules.html deleted file mode 100644 index 468841c..0000000 --- a/doc/build/html/references/gm-state-transition-rules.html +++ /dev/null @@ -1,459 +0,0 @@ - - - - - - - - G-Machine State Transition Rules — rl' documentation - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

G-Machine State Transition Rules

-
-

Core Transition Rules

-
    -
  1. Lookup a global by name and push its value onto the stack

  2. -
-
-

\gmrule
-{ \mathtt{PushGlobal} \; f : i
-& s
-& d
-& h
-& m
-\begin{bmatrix}
-     f : a
-\end{bmatrix}
-}
-{ i
-& a : s
-& d
-& h
-& m
-}

-
    -
  1. Allocate an int node on the heap, and push the address of the newly created -node onto the stack

  2. -
-
-

\gmrule
-{ \mathtt{PushInt} \; n : i
-& s
-& d
-& h
-& m
-}
-{ i
-& a : s
-& d
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& m
-}

-
    -
  1. Allocate an application node on the heap, applying the top of the stack to -the address directly below it. The address of the application node is pushed -onto the stack.

  2. -
-
-

\gmrule
-{ \mathtt{MkAp} : i
-& f : x : s
-& d
-& h
-& m
-}
-{ i
-& a : s
-& d
-& h
-\begin{bmatrix}
-     a : \mathtt{NAp} \; f \; x
-\end{bmatrix}
-& m
-}

-
    -
  1. Push a function’s argument onto the stack

  2. -
-
-

\gmrule
-{ \mathtt{Push} \; n : i
-& a_0 : \ldots : a_n : s
-& d
-& h
-& m
-}
-{ i
-& a_n : a_0 : \ldots : a_n : s
-& d
-& h
-& m
-}

-
    -
  1. Tidy up the stack after instantiating a supercombinator

  2. -
-
-

\gmrule
-{ \mathtt{Slide} \; n : i
-& a_0 : \ldots : a_n : s
-& d
-& h
-& m
-}
-{ i
-& a_0 : s
-& d
-& h
-& m
-}

-
    -
  1. If a number is on top of the stack, Unwind leaves the machine in a -halt state

  2. -
-
-

\gmrule
-{ \mathtt{Unwind} : \nillist
-& a : s
-& d
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& m
-}
-{ \nillist
-& a : s
-& d
-& h
-& m
-}

-
    -
  1. If an application is on top of the stack, Unwind continues unwinding

  2. -
-
-

\gmrule
-{ \mathtt{Unwind} : \nillist
-& a : s
-& d
-& h
-\begin{bmatrix}
-     a : \mathtt{NAp} \; f \; x
-\end{bmatrix}
-& m
-}
-{ \mathtt{Unwind} : \nillist
-& f : a : s
-& d
-& h
-& m
-}

-
    -
  1. When a supercombinator is on top of the stack (and the correct number of -arguments have been provided), Unwind sets up the stack and jumps to -the supercombinator’s code (\beta-reduction)

  2. -
-
-

\gmrule
-{ \mathtt{Unwind} : \nillist
-& a_0 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_0 : \mathtt{NGlobal} \; n \; c \\
-     a_1 : \mathtt{NAp} \; a_0 \; e_1 \\
-     \vdots \\
-     a_n : \mathtt{NAp} \; a_{n-1} \; e_n \\
-\end{bmatrix}
-& m
-}
-{ c
-& e_1 : \ldots : e_n : a_n : s
-& d
-& h
-& m
-}

-
    -
  1. Pop the stack, and update the nth node to point to the popped address

  2. -
-
-

\gmrule
-{ \mathtt{Update} \; n : i
-& e : f : a_1 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_1 : \mathtt{NAp} \; f \; e \\
-     \vdots \\
-     a_n : \mathtt{NAp} \; a_{n-1} \; e_n
-\end{bmatrix}
-& m
-}
-{ i
-& f : a_1 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_n : \mathtt{NInd} \; e
-\end{bmatrix}
-& m
-}

-
    -
  1. Pop the stack.

  2. -
-
-

\gmrule
-{ \mathtt{Pop} \; n : i
-& a_1 : \ldots : a_n : s
-& d
-& h
-& m
-}
-{ i
-& s
-& d
-& h
-& m
-}

-
    -
  1. Follow indirections while unwinding

  2. -
-
-

\gmrule
-{ \mathtt{Unwind} : \nillist
-& a : s
-& d
-& h
-\begin{bmatrix}
-     a : \mathtt{NInd} \; a'
-\end{bmatrix}
-& m
-}
-{ \mathtt{Unwind} : \nillist
-& a' : s
-& d
-& h
-& m
-}

-
    -
  1. Allocate uninitialised heap space

  2. -
-
-

\gmrule
-{ \mathtt{Alloc} \; n : i
-& s
-& d
-& h
-& m
-}
-{ i
-& a_1 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_1 : \mathtt{NUninitialised} \\
-     \vdots \\
-     a_n : \mathtt{NUninitialised} \\
-\end{bmatrix}
-& m
-}

-
    -
  1. When unwinding, if the top of the stack is in WHNF, pop the dump

  2. -
-
-

\gmrule
-{ \mathtt{Unwind} : \nillist
-& a : s
-& \langle i', s' \rangle : d
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& m
-}
-{ i'
-& a : s'
-& d
-& h
-& m
-}

-
    -
  1. Evaluate the top of the stack to WHNF

  2. -
-
-

\gmrule
-{ \mathtt{Eval} : i
-& a : s
-& d
-& h
-& m
-}
-{ i'
-& a : \nillist
-& \langle i, s \rangle
-& h
-& m
-}

-
-
-

Extension Rules

-
    -
  1. A sneaky trick to enable sharing of NNum nodes. We note that the -global environment is a mapping of Name objects (i.e. identifiers) to -heap addresses. Strings of digits are not considered valid identifiers! We -abuse this by modifying Core Rule 2 to update the global environment with the -new node’s address. Consider how this rule might impact garbage collection -(remember that the environment is intended for globals).

  2. -
-
-

\gmrule
-{ \mathtt{PushInt} \; n : i
-& s
-& h
-& m
-}
-{ i
-& a : s
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& m
-\begin{bmatrix}
-     n' : a
-\end{bmatrix}
-\\
-\SetCell[c=5]{c}
-\text{where $n'$ is the base-10 string rep. of $n$}
-}

-
    -
  1. In order for Extension Rule 1. to be effective, we are also required to take -action when a number already exists in the environment:

  2. -
-
-

\transrule
-{ \mathtt{PushInt} \; n : i
-& s
-& h
-& m
-\begin{bmatrix}
-     n' : a
-\end{bmatrix}
-}
-{ i
-& a : s
-& h
-& m
-\\
-\SetCell[c=5]{c}
-\text{where $n'$ is the base-10 string rep. of $n$}
-}

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/references/gm-state-transitions.html b/doc/build/html/references/gm-state-transitions.html deleted file mode 100644 index 46a23e3..0000000 --- a/doc/build/html/references/gm-state-transitions.html +++ /dev/null @@ -1,559 +0,0 @@ - - - - - - - - G-Machine State Transition Rules — rl' documentation - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

G-Machine State Transition Rules

-
-

Core Transition Rules

-
    -
  1. Lookup a global by name and push its value onto the stack

    -
    -

    \gmrule
-{ \mathtt{PushGlobal} \; f : i
-& s
-& d
-& h
-& m
-\begin{bmatrix}
-     f : a
-\end{bmatrix}
-}
-{ i
-& a : s
-& d
-& h
-& m
-}

    -
  2. -
  3. Allocate an int node on the heap, and push the address of the newly created -node onto the stack

    -
    -

    \gmrule
-{ \mathtt{PushInt} \; n : i
-& s
-& d
-& h
-& m
-}
-{ i
-& a : s
-& d
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& m
-}

    -
  4. -
  5. Allocate an application node on the heap, applying the top of the stack to -the address directly below it. The address of the application node is pushed -onto the stack.

    -
    -

    \gmrule
-{ \mathtt{MkAp} : i
-& f : x : s
-& d
-& h
-& m
-}
-{ i
-& a : s
-& d
-& h
-\begin{bmatrix}
-     a : \mathtt{NAp} \; f \; x
-\end{bmatrix}
-& m
-}

    -
  6. -
  7. Push a function’s argument onto the stack

    -
    -

    \gmrule
-{ \mathtt{Push} \; n : i
-& a_0 : \ldots : a_n : s
-& d
-& h
-& m
-}
-{ i
-& a_n : a_0 : \ldots : a_n : s
-& d
-& h
-& m
-}

    -
  8. -
  9. Tidy up the stack after instantiating a supercombinator

    -
    -

    \gmrule
-{ \mathtt{Slide} \; n : i
-& a_0 : \ldots : a_n : s
-& d
-& h
-& m
-}
-{ i
-& a_0 : s
-& d
-& h
-& m
-}

    -
  10. -
  11. If the top of the stack is in WHNF (currently this just means a number) is on -top of the stack, Unwind considers evaluation complete. In the case -where the dump is not empty, the instruction queue and stack is restored -from the top.

    -
    -

    \gmrule
-{ \mathtt{Unwind} : \nillist
-& a : s
-& \langle i', s' \rangle : d
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& m
-}
-{ i'
-& a : s'
-& d
-& h
-& m
-}

    -
  12. -
  13. Bulding on the previous rule, in the case where the dump is empty, leave -the machine in a halt state (i.e. with an empty instruction queue).

    -
    -

    \gmrule
-{ \mathtt{Unwind} : \nillist
-& a : s
-& \nillist
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& m
-}
-{ \nillist
-& a : s
-& \nillist
-& h
-& m
-}

    -
  14. -
  15. Again, building on the previous rules, this rule makes the machine consider -unapplied supercombinators to be in WHNF

    -
    -

    \gmrule
-{ \mathtt{Unwind} : \nillist
-& a_0 : \ldots : a_n : \nillist
-& \langle i, s \rangle : d
-& h
-\begin{bmatrix}
-      a_0 : \mathtt{NGlobal} \; k \; c
-\end{bmatrix}
-& m
-}
-{ i
-& a_n : s
-& d
-& h
-& m \\
-\SetCell[c=2]{c}
-\text{when $n < k$}
-}

    -
  16. -
  17. If an application is on top of the stack, Unwind continues unwinding

    -
    -

    \gmrule
-{ \mathtt{Unwind} : \nillist
-& a : s
-& d
-& h
-\begin{bmatrix}
-     a : \mathtt{NAp} \; f \; x
-\end{bmatrix}
-& m
-}
-{ \mathtt{Unwind} : \nillist
-& f : a : s
-& d
-& h
-& m
-}

    -
  18. -
  19. When a supercombinator is on top of the stack (and the correct number of -arguments have been provided), Unwind sets up the stack and jumps to -the supercombinator’s code (\beta-reduction)

    -
    -

    \gmrule
-{ \mathtt{Unwind} : \nillist
-& a_0 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_0 : \mathtt{NGlobal} \; n \; c \\
-     a_1 : \mathtt{NAp} \; a_0 \; e_1 \\
-     \vdots \\
-     a_n : \mathtt{NAp} \; a_{n-1} \; e_n \\
-\end{bmatrix}
-& m
-}
-{ c
-& e_1 : \ldots : e_n : a_n : s
-& d
-& h
-& m
-}

    -
  20. -
  21. Pop the stack, and update the nth node to point to the popped address

    -
    -

    \gmrule
-{ \mathtt{Update} \; n : i
-& e : f : a_1 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_1 : \mathtt{NAp} \; f \; e \\
-     \vdots \\
-     a_n : \mathtt{NAp} \; a_{n-1} \; e_n
-\end{bmatrix}
-& m
-}
-{ i
-& f : a_1 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_n : \mathtt{NInd} \; e
-\end{bmatrix}
-& m
-}

    -
  22. -
  23. Pop the stack.

    -
    -

    \gmrule
-{ \mathtt{Pop} \; n : i
-& a_1 : \ldots : a_n : s
-& d
-& h
-& m
-}
-{ i
-& s
-& d
-& h
-& m
-}

    -
  24. -
  25. Follow indirections while unwinding

    -
    -

    \gmrule
-{ \mathtt{Unwind} : \nillist
-& a : s
-& d
-& h
-\begin{bmatrix}
-     a : \mathtt{NInd} \; a'
-\end{bmatrix}
-& m
-}
-{ \mathtt{Unwind} : \nillist
-& a' : s
-& d
-& h
-& m
-}

    -
  26. -
  27. Allocate uninitialised heap space

    -
    -

    \gmrule
-{ \mathtt{Alloc} \; n : i
-& s
-& d
-& h
-& m
-}
-{ i
-& a_1 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_1 : \mathtt{NUninitialised} \\
-     \vdots \\
-     a_n : \mathtt{NUninitialised} \\
-\end{bmatrix}
-& m
-}

    -
  28. -
  29. Evaluate the top of the stack to WHNF

    -
    -

    \gmrule
-{ \mathtt{Eval} : i
-& a : s
-& d
-& h
-& m
-}
-{ \mathtt{Unwind} : \nillist
-& a : \nillist
-& \langle i, s \rangle : d
-& h
-& m
-}

    -
  30. -
  31. Reduce a primitive binary operator *.

    -
    -

    \gmrule
-{ * : i
-& a_1 : a_2 : s
-& d
-& h
-\begin{bmatrix}
-      a_1 : x \\
-      a_2 : y
-\end{bmatrix}
-& m
-}
-{ i
-& a' : s
-& d
-& h
-\begin{bmatrix}
-     a' : (x * y)
-\end{bmatrix}
-& m
-}

    -
  32. -
  33. Reduce a primitive unary operator \neg.

    -
    -

    \gmrule
-{ \neg : i
-& a : s
-& d
-& h
-\begin{bmatrix}
-      a : x
-\end{bmatrix}
-& m
-}
-{ i
-& a' : s
-& d
-& h
-\begin{bmatrix}
-     a' : (\neg x)
-\end{bmatrix}
-& m
-}

    -
  34. -
  35. Pack a constructor if there are sufficient arguments

    -
    -

    \gmrule
-{ \mathtt{Pack} \; t \; n : i
-& a_1 : \ldots : a_n : s
-& d
-& h
-& m
-}
-{ i
-& a : s
-& d
-& h
-\begin{bmatrix}
-      a : \mathtt{NConstr} \; t \; [a_1,\ldots,a_n]
-\end{bmatrix}
- & m
-}

    -
  36. -
  37. Evaluate a case

    -
    -

    \gmrule
-{ \mathtt{CaseJump} \begin{bmatrix} t \to c \end{bmatrix} : i
-& a : s
-& d
-& h
-\begin{bmatrix}
-      a : \mathtt{NConstr} \; t \; v
-\end{bmatrix}
-& m
-}
-{ c \concat i
-& d
-& h
-& m
-}

    -
  38. -
-
-
-

Extension Rules

-
    -
  1. A sneaky trick to enable sharing of NNum nodes. We note that the -global environment is a mapping of plain old strings to heap addresses. -Strings of digits are not considered valid identifiers, so putting them on -the global environment will never conflict with a supercombinator! We abuse -this by modifying Core Rule 2 to update the global environment with the new -node’s address. Consider how this rule might impact garbage collection -(remember that the environment is intended for globals).

    -
    -

    \gmrule
-{ \mathtt{PushInt} \; n : i
-& s
-& d
-& h
-& m
-}
-{ i
-& a : s
-& d
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& m
-\begin{bmatrix}
-     n' : a
-\end{bmatrix}
-\\
-\SetCell[c=5]{c}
-\text{where $n'$ is the base-10 string rep. of $n$}
-}

    -
  2. -
  3. In order for the previous rule to be effective, we are also required to take -action when a number already exists in the environment:

    -
    -

    \gmrule
-{ \mathtt{PushInt} \; n : i
-& s
-& d
-& h
-& m
-\begin{bmatrix}
-     n' : a
-\end{bmatrix}
-}
-{ i
-& a : s
-& d
-& h
-& m
-\\
-\SetCell[c=5]{c}
-\text{where $n'$ is the base-10 string rep. of $n$}
-}

    -
  4. -
-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/references/ti-state-transitions.html b/doc/build/html/references/ti-state-transitions.html deleted file mode 100644 index 588bcba..0000000 --- a/doc/build/html/references/ti-state-transitions.html +++ /dev/null @@ -1,413 +0,0 @@ - - - - - - - - Template Instantiator State Transition Rules — rl' documentation - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Template Instantiator State Transition Rules

-

Evaluation is complete when a single NNum remains on the stack and the -dump is empty.

-
-

\transrule
-{ a : \nillist
-& \nillist
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& g
-}
-{ \mathtt{HALT}
-}

-

Dereference an indirection passed as an argument to a function.

-
-

\transrule
-     {a : s & d & h
-        \begin{bmatrix}
-            a : \mathtt{NAp} \; a_1 \; a_2 \\
-            a_2 : \mathtt{NInd} \; a_3
-        \end{bmatrix} & g}
-     {a : s & d & h[a : \mathtt{NAp} \; a_1 \; a_3] & g}

-

Dereference an indirection on top of the stack.

-
-

\transrule
-     {p : s & d & h
-         \begin{bmatrix}
-             p : \mathtt{NInd} \; a
-         \end{bmatrix} & g}
-     {a : s & d & h & g}

-

Perform a unary operation o(n) with internal Prim constructor -O on an argument in normal form.

-
-

\transrule
-     { f : a : s
-     & d
-     & h
-     \begin{bmatrix}
-         f : \mathtt{NPrim} \; \mathtt{O} \\
-         a : \mathtt{NAp} \; f \; x \\
-         x : \mathtt{NNum} \; n
-     \end{bmatrix}
-     & g
-     }
-     { a : s
-     & d
-     & h
-     \begin{bmatrix}
-         a : \mathtt{NNum} \; (o(n))
-     \end{bmatrix}
-     & g
-     }

-

Evaluate the argument of a unary operation with internal Prim -constructor O.

-
-

\transrule
-     { f : a : \nillist
-     & d
-     & h
-     \begin{bmatrix}
-         f : \mathtt{NPrim} \; \mathtt{O} \\
-         a : \mathtt{NAp} \; f \; x
-     \end{bmatrix}
-     & g
-     }
-     { x : \nillist
-     & (f : a : \nillist) : d
-     & h
-     & g
-     }

-

Restore the stack when a sub-computation has completed.

-
-

\transrule
-{ a : \nillist
-& s : d
-& h
-\begin{bmatrix}
-     a : \mathtt{NNum} \; n
-\end{bmatrix}
-& g
-}
-{ s
-& d
-& h
-& g
-}

-

Reduce a supercombinator and update the root with the \beta-reduced form

-
-

\transrule
-{ a_0 : a_1 : \ldots : a_n : s
-& d
-& h
-\begin{bmatrix}
-     a_0 : \mathtt{NSupercomb} \; [x_1,\ldots,x_n] \; e
-\end{bmatrix}
-& g
-}
-{ a_n : s
-& d
-& h'
-& g
-\\
-& \SetCell[c=3]{c}
-\text{where } h' = \mathtt{instantiateU} \; e \; a_n \; h \; g
-}

-

Perform a binary operation o(x,y) associated with internal Prim -constructor O on two NNum s both in normal form.

-
-

\transrule
-{ f : a_1 : a_2 : s
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{O} \\
-     a_1 : \mathtt{NAp} \; f \; (\mathtt{NNum} \; x) \\
-     a_2 : \mathtt{NAp} \; a_1 \; (\mathtt{NNum} \; y)
-\end{bmatrix}
-& g
-}
-{ a_2 : s
-& d
-& h
-\begin{bmatrix}
-     a_2 : \mathtt{NNum} \; (o(x,y))
-\end{bmatrix}
-& g
-}

-

In a conditional primitive, perform the reduction if the condition has been -evaluated as True (NData 1 []).

-
-

\transrule
-{ f : a_1 : a_2 : a_3 : s
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{IfP} \\
-     c : \mathtt{NPrim} \; (\mathtt{NData} \; 1 \; \nillist) \\
-     a_1 : \mathtt{NAp} \; f \; c \\
-     a_2 : \mathtt{NAp} \; a_1 \; x \\
-     a_3 : \mathtt{NAp} \; a_2 \; y
-\end{bmatrix}
-& g
-}
-{ x : s
-& d
-& h
-& g
-}

-

In a conditional primitive, perform the reduction if the condition has been -evaluated as False (NData 0 []).

-
-

\transrule
-{ f : a_1 : a_2 : a_3 : s
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{IfP} \\
-     c : \mathtt{NPrim} \; (\mathtt{NData} \; 0 \; \nillist) \\
-     a_1 : \mathtt{NAp} \; f \; c \\
-     a_2 : \mathtt{NAp} \; a_1 \; x \\
-     a_3 : \mathtt{NAp} \; a_2 \; y
-\end{bmatrix}
-& g
-}
-{ y : s
-& d
-& h
-& g
-}

-

In a conditional primitive, evaluate the condition.

-
-

\transrule
-{ f : a_1 : \nillist
-& d
-& h
-\begin{bmatrix}
-     f : \mathtt{NPrim} \; \mathtt{IfP} \\
-     a_1 : \mathtt{NAp} \; f \; x
-\end{bmatrix}
-& g
-}
-{ x : \nillist
-& (f : a_1 : \nillist) : d
-& h
-& g
-}

-

Construct NData out of a constructor and its arguments

-
-

\transrule
-{ c : a_1 : \ldots : a_n : \nillist
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; (\mathtt{ConP} \; t \; n) \\
-     a_1 : \mathtt{NAp} \; c \; x_1 \\
-     \vdots \\
-     a_n : \mathtt{NAp} \; a_{n-1} \; x_n
-\end{bmatrix}
-& g
-}
-{ a_n : \nillist
-& d
-& h
-\begin{bmatrix}
-     a_n : \mathtt{NData} \; t \; [x_1, \ldots, x_n]
-\end{bmatrix}
-& g
-}

-
-

Pairs

-

Evaluate the first argument if necessary

-
-

\transrule
-{ c : a_1 : a_2 : \nillist
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CasePairP} \\
-     p : \mathtt{NAp} \; \_ \: \_ \\
-     a_1 : \mathtt{NAp} \; c \; p \\
-     a_2 : \mathtt{NAp} \; a_2 \; f
-\end{bmatrix}
-& g
-}
-{ p : \nillist
-& (a_1 : a_2 : \nillist) : d
-& h
-& g
-}

-

Perform the reduction if the first argument is in normal form

-
-

\transrule
-{ c : a_1 : a_2 : s
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CasePairP} \\
-     p : \mathtt{NData} \; 0 \; [x,y] \\
-     a_1 : \mathtt{NAp} \; c \; p \\
-     a_2 : \mathtt{NAp} \; a_1 \; f
-\end{bmatrix}
-& g
-}
-{ a_1 : a_2 : s
-& d
-& h
-\begin{bmatrix}
-     a_1 : \mathtt{NAp} \; f \; x \\
-     a_2 : \mathtt{NAp} \; a_1 \; y
-\end{bmatrix}
-& g
-}

-
-
-

Lists

-

Evaluate the scrutinee

-
-

\transrule
-{ c : a_1 : a_2 : a_3 : \nillist
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CaseListP} \\
-     a_1 : \mathtt{NAp} \; c \; x
-\end{bmatrix}
-& g
-}
-{ x
-& (a_1 : a_2 : a_3) : \nillist
-& h
-& g
-}

-

If the scrutinee is Nil, perform the appropriate reduction.

-
-

\transrule
-{ c : a_1 : a_2 : a_3 : s
-& d
-& h
-\begin{bmatrix}
-     c : \mathtt{NPrim} \; \mathtt{CaseListP} \\
-     p : \mathtt{NData} \; 1 \; \nillist \\
-     a_1 : \mathtt{NAp} \; c \; p \\
-     a_2 : \mathtt{NAp} \; p \; f_\text{nil} \\
-     a_3 : \mathtt{NAp} \; a_2 \; f_\text{cons}
-\end{bmatrix}
-& g
-}
-{ a_3 : s
-& d
-& h
-\begin{bmatrix}
-     a_3 : \mathtt{NAp} \; f_\text{nil}
-\end{bmatrix}
-& g
-}

-
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/search.html b/doc/build/html/search.html deleted file mode 100644 index ea7e1fc..0000000 --- a/doc/build/html/search.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - Search — rl' documentation - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -

Search

- - - - -

- Searching for multiple words only shows matches that contain - all words. -

- - -
- - - -
- - - -
- -
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/doc/build/html/searchindex.js b/doc/build/html/searchindex.js deleted file mode 100644 index 86bd861..0000000 --- a/doc/build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({"docnames": ["commentary/gm", "commentary/layout-lexing", "commentary/ti", "glossary", "index", "references/gm-state-transitions", "references/ti-state-transitions"], "filenames": ["commentary/gm.rst", "commentary/layout-lexing.rst", "commentary/ti.rst", "glossary.rst", "index.rst", "references/gm-state-transitions.rst", "references/ti-state-transitions.rst"], "titles": ["The G-Machine", "Lexing, Parsing, and Layouts", "The Template Instantiator", "Glossary", "Welcome to rlp\u2019s documentation!", "G-Machine State Transition Rules", "Template Instantiator State Transition Rules"], "terms": {"index": 0, "modul": 1, "search": [], "page": [], "begin": [0, 1, 5, 6], "tblr": [], "ccclc": [], "hline": [], "": [0, 1, 3, 5, 6], "d": [0, 5, 6], "h": [0, 5, 6], "bmatrix": [0, 5, 6], "mathtt": [0, 5, 6], "nap": [5, 6], "a_1": [0, 5, 6], "a_2": [5, 6], "nind": [5, 6], "a_3": 6, "end": [0, 1, 5, 6], "f": [0, 1, 5, 6], "impli": [], "thi": [0, 1, 2, 5], "i": [0, 1, 3, 5, 6], "normal": [1, 6], "paragraph": [], "what": [], "follow": [1, 5], "precompil": [], "latex": [], "equat": [], "math": [], "transrul": [0, 6], "test": [], "The": [1, 3, 4, 5], "spineless": [], "tagless": [], "g": [1, 4, 6], "machin": [2, 4], "wip": [0, 2], "here": 1, "typeset": [], "state": [1, 2, 4], "transit": 4, "rule": [1, 4], "describ": 1, "action": 5, "dereferenc": [], "indirect": [5, 6], "when": [0, 1, 5, 6], "pass": [0, 6], "function": [1, 5, 6], "argument": [0, 5, 6], "derefer": 6, "an": [0, 1, 3, 5, 6], "top": [0, 1, 3, 5, 6], "stack": [0, 1, 5, 6], "p": 6, "negat": [], "form": [1, 6], "nprim": 6, "neg": 5, "x": [0, 1, 5, 6], "nnum": [5, 6], "n": [0, 1, 5, 6], "perform": 6, "unari": [5, 6], "oper": [1, 5, 6], "o": 6, "e": [0, 1, 5, 6], "intern": [1, 6], "prim": 6, "constructor": [5, 6], "unevalu": [], "b": 0, "nillist": [5, 6], "hopefulli": 2, "expand": 2, "thorough": 2, "explan": [], "evalu": [5, 6], "complet": [1, 5, 6], "singl": [0, 1, 6], "texttt": [], "remain": 6, "dump": [5, 6], "empti": [5, 6], "halt": [5, 6], "restor": [5, 6], "sub": 6, "comput": 6, "ha": [0, 1, 6], "reduc": [5, 6], "supercombin": [0, 1, 3, 5, 6], "updat": [0, 5, 6], "root": [0, 6], "beta": [5, 6], "a_0": [0, 5, 6], "ldot": [0, 5, 6], "a_n": [0, 5, 6], "nsupercomb": [0, 6], "x_1": [0, 6], "x_n": [0, 6], "text": [0, 1, 5, 6], "where": [0, 1, 5, 6], "instantiateu": [0, 6], "setcel": [0, 5, 6], "r": [], "2": [0, 1, 5], "c": [0, 1, 5, 6], "3": [0, 3, 6], "\u03b2": [], "caption": [], "figur": [], "gather": [], "tag": [], "1": [0, 1, 5, 6], "binari": [5, 6], "y": [1, 5, 6], "associ": [1, 6], "two": [1, 6], "both": [1, 6], "In": [1, 5, 6], "condit": [1, 6], "primit": [5, 6], "placehold": [], "walkthrough": 2, "textt": [], "ifp": 6, "reduct": [5, 6], "been": [5, 6], "true": 6, "conp": 6, "0": [0, 6], "mathbb": [], "fals": 6, "construct": 6, "ndata": 6, "out": [1, 6], "its": [0, 1, 5, 6], "t": [1, 5, 6], "vdot": [5, 6], "a_": [5, 6], "style": 1, "languag": 1, "my": 1, "previou": [1, 5], "experi": 1, "have": [1, 5], "all": 1, "had": 1, "quit": [0, 1], "trivial": 1, "lexic": [], "analysi": 1, "stage": 1, "peak": 1, "complex": 1, "stream": 1, "token": 1, "lazili": 1, "task": [0, 1], "tokenis": 1, "veri": [0, 1], "simpl": [0, 1, 3], "descript": 1, "you": 1, "ignor": 1, "whitespac": 1, "point": [1, 5], "recognis": 1, "If": [1, 5, 6], "don": 1, "someth": [0, 1], "check": 1, "liter": 1, "identifi": [1, 5], "should": 1, "neither": 1, "return": 1, "error": 1, "On": 1, "paper": 1, "haskel": 3, "like": [0, 1], "seem": 1, "pose": 1, "few": 1, "greater": 1, "challeng": 1, "some": 1, "potenti": 1, "roadblock": 1, "mind": 1, "befor": 1, "make": [1, 5], "attempt": 1, "were": 1, "sensit": 1, "while": [1, 5], "wa": [0, 1], "comfort": 1, "idea": [1, 3], "system": 1, "similar": 1, "python": [], "indent": 1, "dedent": 1, "us": [0, 1, 3], "section": [1, 3], "code": [0, 1, 3, 5], "wai": [0, 1], "felt": 1, "differ": 1, "onli": [0, 1], "user": 1, "defin": 1, "infix": 1, "preced": 1, "level": [1, 3], "recal": 1, "algorithm": 1, "look": 1, "up": [1, 5], "prefix": 1, "postfix": 1, "even": 1, "mixfix": 1, "global": [1, 5], "tabl": 1, "call": 1, "appropri": [1, 6], "parser": [0, 1], "also": [1, 5], "store": 1, "never": [1, 5], "modifi": [1, 5], "runtim": 1, "howev": 1, "could": 1, "nice": 1, "solut": [0, 1], "context": 1, "keyword": 1, "allow": [1, 3], "word": 1, "famili": 1, "role": 1, "from": [0, 1, 5], "_note": [], "found": [0, 1], "ghc": 1, "lexer": 1, "first": [1, 6], "ar": [0, 1, 5], "consid": [1, 5], "bodi": [0, 1], "relev": 1, "type": [0, 1], "declar": 1, "lex": 4, "pars": 4, "layout": [3, 4], "note": [1, 5], "list": 1, "ascend": 1, "intimid": 1, "factor": 1, "read": 1, "appear": 1, "which": [0, 1], "after": [1, 5], "case": [1, 3, 5], "els": 1, "express": [0, 1, 3], "etc": 1, "bit": 1, "thought": 1, "research": 1, "refer": [], "them": [1, 5], "easili": 1, "scariest": 1, "thing": 1, "thei": [0, 1], "achiev": 1, "we": [0, 1, 5], "compar": 1, "contrast": 1, "much": 1, "dismai": 1, "newlin": [1, 3], "separ": 1, "statement": 1, "resolv": 1, "scope": 1, "instead": [0, 1], "tradit": 1, "semicolon": 1, "brace": [], "see": 1, "bcpl": [], "http": [], "doc": [], "org": [], "lexical_analysi": [], "html": [], "dure": [0, 1], "new": [0, 1, 5], "line": 1, "appli": [0, 1, 5], "than": 1, "insert": 1, "push": [0, 1, 5], "onto": [0, 1, 5], "initialis": 1, "zero": [0, 1], "lesser": 1, "pop": [0, 1, 5], "until": 1, "each": 1, "equal": 1, "termin": 1, "leav": [1, 5], "ident": 1, "pretti": 1, "philosophi": 1, "one": 1, "correct": [1, 5], "answer": 1, "todo": [1, 3], "need": 1, "sourc": 1, "develop": 1, "our": [0, 1], "pattern": 1, "translat": 1, "explicitli": 1, "saw": 1, "most": [1, 3], "notabl": 1, "exampl": [1, 3], "implicitli": [1, 3], "why": 1, "am": 1, "so": [1, 5], "afraid": 1, "syntax": [1, 3], "A": 5, "primer": [], "But": [], "about": [], "mai": 1, "gener": 1, "To": 1, "frank": 1, "m": [1, 5], "far": 1, "less": 1, "scare": 1, "ask": 1, "myself": 1, "certainli": 1, "needn": 1, "concern": 1, "implicit": 1, "continu": [1, 5], "written": 1, "over": 1, "multipl": 1, "often": 1, "seen": 1, "somewhat": 1, "esoter": 1, "extrem": 1, "common": 1, "data": 1, "cry": 1, "right": 1, "now": 1, "sorri": 1, "anoth": 1, "format": 1, "odditi": 1, "anotherth": 1, "do": [0, 1], "align": [1, 3], "contiat": [], "enough": 1, "fear": 1, "let": 1, "actual": 1, "think": [1, 3], "implement": 1, "firstli": 1, "formal": 1, "mean": [0, 1, 5], "sai": 1, "order": [1, 5], "yield": 1, "thankfulli": 1, "u": [1, 3], "entri": 1, "clear": 1, "select": 1, "minor": 1, "except": 1, "elabor": 1, "being": [0, 1], "altern": [1, 3], "term": [1, 3], "link": 1, "glosarri": [], "cultur": 3, "infam": 3, "scari": 3, "mathemat": 3, "pleas": 3, "excus": 3, "realli": 3, "fun": 3, "glossari": [1, 4], "free": [1, 3], "variabl": [0, 3], "For": [1, 3], "purpos": 3, "just": [1, 3, 5], "definit": [1, 3], "possibl": [1, 3], "match": 3, "under": 1, "assumpt": [], "give": [], "lexem": 1, "next": 1, "file": [], "reach": 1, "henceforth": [], "denot": 1, "repres": 1, "subsequ": [], "column": 1, "number": [1, 5], "charact": 1, "must": [], "introduc": 1, "addit": [], "input": [], "handl": 1, "obvious": [], "would": 1, "requir": [1, 5], "string": 5, "help": [], "book": [], "keep": [0, 1], "tool": [], "good": [], "current": [1, 5], "cascad": 1, "element": 1, "either": 1, "nolayout": [], "indic": 0, "explicit": 1, "programm": [], "herself": [], "non": [0, 1], "integ": [], "enclos": 1, "rememb": [1, 5], "w": [0, 1], "10": [1, 5], "pure": [], "abov": [], "notic": 0, "accom": [], "langl": [1, 5], "rangl": [1, 5], "lastli": [], "compliment": [], "how": [1, 5], "close": 1, "preceed": 1, "provid": 5, "consequ": [], "ll": 1, "more": 1, "pedant": 1, "chapter": 1, "2010": 1, "report": 1, "heavili": 1, "referenc": 1, "manag": 1, "record": 1, "laid": 1, "start": 1, "item": 1, "belong": 1, "With": 1, "plai": 1, "set": [1, 5], "inform": 1, "otherwis": 1, "adequet": 1, "satisfi": 1, "basic": 1, "contin": 1, "varnoth": 1, "final": 1, "concept": 1, "virtual": 1, "re": 1, "moment": [0, 1], "exactli": 1, "compil": 1, "present": 1, "small": 1, "addition": 1, "open": 1, "observ": 1, "sampl": 1, "can": 1, "bind": [0, 1], "rather": 1, "focu": 1, "na\u00efv": 1, "eol": 1, "prove": 1, "unid": 1, "wait": 1, "comparison": 1, "nondescript": 1, "measur": 1, "numer": 1, "valu": [1, 5], "offsid": 1, "formalis": 1, "graphem": 1, "resid": 1, "exist": [0, 1, 5], "assum": 1, "print": 1, "delimit": 1, "last": 1, "distinct": 1, "between": 1, "come": 1, "partial": 1, "toward": 1, "respons": 1, "share": [1, 5], "content": 1, "same": 1, "shall": 1, "cover": 1, "includ": 1, "framework": 1, "time": [0, 1], "cannot": 1, "model": [0, 1], "simpli": [0, 1], "As": 1, "long": 1, "track": 1, "own": 1, "cope": 1, "fine": 1, "without": 1, "view": 1, "abstract": 1, "yet": 1, "decompos": 1, "discret": 1, "typic": 1, "linear": [0, 1], "recurs": 1, "down": 1, "big": 1, "reason": 1, "aim": 1, "tend": 1, "burden": 1, "necessari": [1, 6], "still": 1, "natur": 1, "orient": 1, "backtrack": 1, "difficult": 1, "ineleg": 1, "counterintuit": 1, "eleg": 1, "problem": 1, "minimis": 1, "rlp": [1, 3], "bnf": 1, "setlength": [], "grammarparsep": [], "20pt": [], "plu": [], "1pt": [], "minu": [], "grammarind": [], "12em": [], "grammar": [], "expr": [0, 1], "alt": [], "stat": [], "vopen": 1, "vclose": 1, "recov": 1, "treat": 1, "ensur": 1, "casepairp": 6, "_": 6, "scrutine": 6, "caselistp": 6, "nil": 6, "f_": 6, "con": 6, "initi": 0, "templat": [0, 4], "instanti": [0, 4, 5], "tim": [], "straightforward": 0, "core": 0, "design": 0, "major": 0, "achil": 0, "heel": 0, "interleav": 0, "heap": [0, 5], "node": [0, 5], "hold": 0, "uninstanti": 0, "raw": 0, "ast": 0, "straight": 0, "spot": 0, "lead": [], "loss": [], "travers": 0, "tree": [], "difficulti": [], "lower": [], "investig": [], "scstep": 0, "name": [0, 5], "tistat": 0, "st": 0, "rootaddr": 0, "drop": 0, "length": 0, "env": 0, "argbind": 0, "zip": 0, "argaddr": 0, "getarg": 0, "src": 0, "hello": [], "world": [], "process": 0, "goe": 0, "augment": 0, "environ": [0, 5], "local": 0, "remov": 0, "address": [0, 5], "newli": [0, 5], "4": 0, "structur": 0, "unfit": 0, "assembli": 0, "target": 0, "goal": 0, "sequenc": 0, "instruct": [0, 5], "execut": 0, "lookup": 5, "gmrule": 5, "pushglob": 5, "alloc": 5, "int": [0, 5], "creat": 5, "pushint": 5, "applic": 5, "directli": 5, "below": 5, "mkap": [0, 5], "_n": [], "tidi": 5, "slide": [0, 5], "unwind": [0, 5], "jump": 5, "nglobal": 5, "compiledsc": 0, "compilesc": 0, "scdef": 0, "gm": 0, "run": 0, "map": [0, 5], "enumer": 0, "Of": 0, "cours": 0, "rel": 0, "becom": 0, "inaccur": 0, "around": 0, "offset": 0, "compilec": 0, "app": 0, "argoffset": 0, "sneaki": 5, "trick": 5, "enabl": 5, "object": [], "digit": 5, "valid": 5, "abus": 5, "ad": [], "base": 5, "rep": 5, "5": 5, "effect": 5, "take": 5, "alreadi": 5, "impact": 5, "garbag": 5, "collect": 5, "intend": 5, "might": 5, "e_n": 5, "nth": 5, "ti": 0, "e_1": 5, "uninitialis": 5, "space": 5, "nuninitialis": 5, "whnf": 5, "eval": 5, "z": [], "plain": 5, "old": 5, "put": 5, "conflict": 5, "discard": [], "queue": 5, "buld": 5, "k": 5, "unappli": 5, "again": 5, "build": 5, "pack": 5, "suffici": 5, "nconstr": 5, "casejump": 5, "v": 5, "concat": 5}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"welcom": 4, "rlp": 4, "": 4, "document": 4, "indic": [], "tabl": [], "test": [], "page": [], "commentari": 4, "content": 4, "The": [0, 2], "spineless": [], "tagless": [], "g": [0, 5], "machin": [0, 5], "lex": 1, "pars": 1, "layout": 1, "rule": [5, 6], "refer": [1, 4], "A": 1, "lexic": 1, "primer": 1, "python": 1, "But": 1, "what": 1, "about": 1, "haskel": 1, "glossari": 3, "index": 4, "lone": 1, "brace": 1, "pair": 6, "list": 6, "templat": [2, 6], "instanti": [2, 6], "motiv": 0, "implement": [], "compil": 0, "how": [], "squash": 0, "tree": 0, "vine": 0, "theori": 0, "core": 5, "transit": [5, 6], "evalu": 0, "slurp": 0, "extens": 5, "lazi": 0, "state": [5, 6], "ti": []}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"The G-Machine": [[0, "the-g-machine"]], "Motivation": [[0, "motivation"]], "Trees and Vines, in Theory": [[0, "trees-and-vines-in-theory"]], "Evaluation: Slurping Vines": [[0, "evaluation-slurping-vines"]], "Laziness": [[0, "laziness"]], "Compilation: Squashing Trees": [[0, "compilation-squashing-trees"]], "Lexing, Parsing, and Layouts": [[1, "lexing-parsing-and-layouts"]], "A Lexical Primer: Python": [[1, "a-lexical-primer-python"]], "But What About Haskell?": [[1, "but-what-about-haskell"]], "Parsing Lonely Braces": [[1, "parsing-lonely-braces"]], "References": [[1, "references"], [4, null]], "The Template Instantiator": [[2, "the-template-instantiator"]], "Glossary": [[3, "glossary"]], "Welcome to rlp\u2019s documentation!": [[4, "welcome-to-rlp-s-documentation"]], "Contents": [[4, "contents"]], "Index": [[4, null]], "Commentary": [[4, null]], "Template Instantiator State Transition Rules": [[6, "template-instantiator-state-transition-rules"]], "Pairs": [[6, "pairs"]], "Lists": [[6, "lists"]], "G-Machine State Transition Rules": [[5, "g-machine-state-transition-rules"]], "Core Transition Rules": [[5, "core-transition-rules"]], "Extension Rules": [[5, "extension-rules"]]}, "indexentries": {"case alternative": [[3, "term-case-alternative"]], "layout": [[3, "term-layout"]], "supercombinator": [[3, "term-supercombinator"]]}}) \ No newline at end of file diff --git a/doc/build/html/test.html b/doc/build/html/test.html deleted file mode 100644 index 1477654..0000000 --- a/doc/build/html/test.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - test page — rlp documentation - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

test page

-
-

this is a normal paragraph. what follows is a precompiled latex equation:

-
-
-

\transrule{a : s & d & h \begin{bmatrix} a : \mathtt{NAp} \; a_1 \; a_2 \\ a_2 : \mathtt{NInd} \; a_3 \end{bmatrix} & f}
-{a : s & d & h[a : \mathtt{NAp} \; a_1 \; a_3] & f}

-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file