From 23f9f726fa48af3bda63dcee476388a80cad4803 Mon Sep 17 00:00:00 2001 From: crumbtoo Date: Mon, 4 Dec 2023 19:53:40 -0700 Subject: [PATCH] w --- doc/build/.DS_Store | Bin 6148 -> 0 bytes doc/build/doctrees/commentary/gm.doctree | Bin 13821 -> 0 bytes .../doctrees/commentary/layout-lexing.doctree | Bin 42870 -> 0 bytes doc/build/doctrees/commentary/stg.doctree | Bin 20256 -> 0 bytes doc/build/doctrees/commentary/ti.doctree | Bin 2900 -> 0 bytes doc/build/doctrees/commentary/tim.doctree | Bin 20249 -> 0 bytes doc/build/doctrees/environment.pickle | Bin 155471 -> 0 bytes doc/build/doctrees/glossary.doctree | Bin 4859 -> 0 bytes doc/build/doctrees/index.doctree | Bin 3602 -> 0 bytes .../gm-state-transition-rules.doctree | Bin 25195 -> 0 bytes .../references/gm-state-transitions.doctree | Bin 30140 -> 0 bytes .../references/ti-state-transitions.doctree | Bin 19923 -> 0 bytes doc/build/html/.buildinfo | 4 - ...420770ada7197f2dc04dc2cb7be7957619046e.svg | 162 --- ...1357ee48ac0e35395fa99353083fee184026dd.svg | 134 --- ...341a0151149b70730cfe4fb67c90c60c7b657e.svg | 85 -- ...7e533b299f8acf5a007a8951726e0fb03c8297.svg | 149 --- ...8dad807177c214a4019500e8cb3e87d1f16fd3.svg | 17 - ...c8c584f274e78c626596a6cdbb67086a30bf76.svg | 108 -- ...87f8d42f5944ee828b01d06440da9b5dbd2ab8.svg | 126 --- ...635090aa47407c859d644721c5384fbb715130.svg | 145 --- ...6ddb24a14399b5fff7b5f2f691468d437dae7d.svg | 61 -- ...f13f0deb087a0975f104db0a2fe82979aec7d5.svg | 15 - ...0458d62ece3f6e5019d53d0245ff5facdc5fdf.svg | 149 --- ...ad12d4109ecbf3e9de69670796aed4e39bad83.svg | 145 --- ...620d28afa4216e77023746bb49f10715fc8824.svg | 6 - ...c7c9df5cc4f923f6953e615c1f28a6531c0b68.svg | 138 --- ...e6bec91d32d8e61faf2f5843c718ef27148abd.svg | 147 --- ...649b728693b5cbf77eeb3b247c50f599f41294.svg | 97 -- ...81faecef1f280d02390f5e6e4dc19abe5f4eb1.svg | 63 -- ...cdffb9aaad97f1748e14369a93f303987914df.svg | 114 --- ...f8d008cc7c2fca0d206330cc817662df3b0c43.svg | 121 --- ...6119a4c2150b58b13370bfdfa9bb789571ef13.svg | 122 --- ...da9cdf17e4f8cf26f0caad8bda0e132f604db0.svg | 61 -- ...fdcdda44eede2cc7be00ace4f3d009e82ebf8d.svg | 15 - ...43958253280895e6abea369c0f9abf4898649c.svg | 149 --- ...d23b1b737948104e84da7d3e79c697816c10df.svg | 70 -- ...31c78842178c05d1a9c61aca6fbe3d74247ced.svg | 15 - ...9b0ba6ac3730b32a1d4054ae9a3ec0912ff9c0.svg | 78 -- ...6a0e2360b1e342041d8129c3a264321ae806ce.svg | 91 -- ...7ead99c2f67003ebe37c473bac713194eaa50e.svg | 145 --- ...d617a93c757f0b0e644d4000b9decf2c1730df.svg | 70 -- ...d81e1fc22e6feb876a993fe30fd9e8336f5bf6.svg | 77 -- ...94936ebb09fed720f969439d19593b228aec95.svg | 157 --- ...bf876b63a42c5c5fd537974667f28e4fdfe71f.svg | 15 - ...1d05c2792b02598e523fd646d6268749231320.svg | 97 -- ...b3a2eb7103da4d39315e15158991ac5eb31a8f.svg | 66 -- ...7e72c2a7ae8acbb9c293a2681b3cdf41e403b7.svg | 15 - ...c3c5f46f67104788324ef961a5eb2126495009.svg | 89 -- ...35e0be8716b58b223dddd9dc21d3cbf9b932c9.svg | 82 -- ...c5e2a4ce5b523a6e99c0937d45b0f285461097.svg | 137 --- ...219b0570be52c3f596972c4cd5461a162cccf9.svg | 145 --- ...bd53275636be43362c037f2ad50f5f63231e10.svg | 11 - ...17422cdf63ed202b16462208f8a62630f99679.svg | 97 -- ...642c97b2dc64d03a103607414f676b6e9daf5c.svg | 63 -- ...c437dab01cb429328b3fe9d20e8f5b64cefdc0.svg | 11 - ...2187dda48952ac064d34af5a8dc5ccc5df1126.svg | 109 --- ...f3be2a43bd1ac2dfa07345e26336292899f61f.svg | 75 -- ...6f330b47308dae1686a2c0030783ed20a8866d.svg | 160 --- ...8a79d24fb8713d66c77d17909485589a944e60.svg | 108 -- ...a11053c0f5950b2126ebf4829f569eeaa85ad6.svg | 133 --- ...63b1f89224cb96d4e2b5a0f9494eac68234a42.svg | 21 - ...4c25ea56a82ed5f9d8182f3c38c632ab47e8bd.svg | 90 -- ...fab760cd5a82cd980862645b628ea4c2a97f34.svg | 174 ---- ...c5e48f0f26f08073e6e1cdd70ff876c6ec2434.svg | 152 --- ...21d478eedaa358bccb9aa3c57a5b290e671863.svg | 89 -- ...7215ad8dc4415a832b9101c30f98ad94307f61.svg | 89 -- ...75f944e67c6a986438fad3c0d23ee7cc191a88.svg | 17 - ...ca5614d0c1f1e407a064238095024a155e2466.svg | 15 - ...4087b4a49447d217e1247a7a58aeb2ebf04f6b.svg | 102 -- ...843bfb29b74cf3428d62c0a0bb4a85018bf793.svg | 134 --- ...4a9ad9e9541a3f8be7530fed1ec7373510a227.svg | 70 -- ...b86e3c01637e2ffa96b8a23365bd27e98594fb.svg | 91 -- ...f37b6cae353c26c80f089c5b354e7575e7c201.svg | 108 -- ...36a201726f4f03e64783f41d44d9ae3edd5118.svg | 11 - ...e91bc0685dd54adb3e06c06e6fc0cc4d8ad419.svg | 145 --- ...4d9ac40cde930452a7f40dd91dc043c92aba12.svg | 114 --- ...c1815c2dba065ef8c2f84100676cf9d1b6511a.svg | 72 -- ...39cf0a8e341efac8ba1aeb5ae6271cd00c37c7.svg | 134 --- ...0879f2e436b8778f86d0b3315af89e4b23061e.svg | 63 -- ...5133875b5087d8f8b521a6b737f82d715cf7e7.svg | 133 --- ...df4d8583b839b15fed122e5293d261cc34639d.svg | 15 - ...b2a0684a9c3d7c7a02334d788b2bd85cc83b55.svg | 174 ---- ...0efc21d61f6d73d821b258392b7be1fc9036eb.svg | 160 --- ...a33eeafbc80a0bcf2766e8f56e9cb2b6148e79.svg | 15 - ...c332dc07916d83f75fcddf6da06a7734032ee9.svg | 122 --- ...fc6e15d2c381b0ab11691e13dba314d2c6541d.svg | 145 --- ...04b3a0b74a3d25993573e61733383293f43681.svg | 63 -- ...273dafbdeac1dd5bdf8568a1e9ab8625c0629d.svg | 162 --- ...2ce4de46a354723a0f5b33995d885c86bb0e70.svg | 11 - ...98057f95b17024436a0d57ca56eae8125e10ec.svg | 147 --- ...da9c8a8264ec5b3d99bd3549773d2113758a5f.svg | 150 --- ...434266ad5b9f36d523d70ff88db5c4e9366b03.svg | 11 - ...13e4c065d6aabec3acece28c5ecc882faa119a.svg | 11 - ...8aeca314882e29dc3a52d64624061fb36948f0.svg | 137 --- ...d3c54aba5df0dae426f9470d65778e8ccc24ab.svg | 107 -- ...66d2d6002bc14e00e77569c63b325e5b02f101.svg | 122 --- ...a5030ceb5f0c5f44d4581db994508f66b20dfa.svg | 145 --- ...427448f9b8b54db19e316c805033a7abfe11d2.svg | 63 -- ...588662930e30ecc01abfa745b194bfb5ffbb27.svg | 144 --- ...c55ad8626b971383946574d473861074202c72.svg | 11 - ...e73a2c1d1501096302e1e173eaf947ceb9c7d4.svg | 174 ---- ...85c9abccccc8bc1f4b830fa22701457c595b96.png | Bin 1478 -> 0 bytes ...85c9abccccc8bc1f4b830fa22701457c595b96.svg | 88 -- ...b8ee3def56618c3d5c55841743d53ffbedbcfb.svg | 64 -- ...bc533fab728efc3a24ef236fcb017ad2888830.svg | 124 --- ...7fa099ced1d1933aba81912860d6c60e6c6f75.svg | 89 -- ...80d8227d0a06608b108a26b4a618972b4b7e28.svg | 126 --- ...8b0fab8c90c1abe8c6abaa3c807886040452db.svg | 89 -- ...5b4d912dcfd08351ed35fd0deb3cadc0781241.svg | 139 --- ...b0d3fbe6f17a0e706fda6039130d8aaaf32903.svg | 146 --- ...00c38ab6f040dfa75be56918953af44dc11637.svg | 130 --- ...cebcc879cae1694dcc537b99796e0dc0e0ff05.svg | 149 --- ...d3cd582dce130ac602d5d805972076e5bc0f56.svg | 114 --- ...f94fab747054130daaf436fc83ab590969c35f.svg | 145 --- ...158f7fd5d27c3feef4c9b1500d451656fe2aa9.svg | 88 -- ...6f5e2b2f037821ad3386d2355364f2667e3c34.svg | 126 --- ...4a42b94739b04fa9559a97c3703816bf57aa5c.svg | 11 - ...7985174357bbbea2e2b47ab0694b2d21a71b35.svg | 75 -- ...f4e38bb9ff4a7bcb201e82cb956a3ccf064632.svg | 81 -- ...0e45afe56ccc0dae7d9566d244b13bb6cb0631.svg | 90 -- ...5a1ccce064b171eb9d5ec015e07d234ef26c74.svg | 97 -- ...3dd082a2b49d9ebdb87533aac62fdd342f4fd5.svg | 83 -- ...728a32abbc0b68b58acd0467082b83653421df.svg | 73 -- ...eb37710389b629d7ffa626fb55276426bef938.svg | 11 - ...99995af47f16f85dab4ffa3208177455960e73.svg | 89 -- ...b003bcdf823b102e5c80f3ca1cd4208c7493fc.svg | 15 - ...db1b0b4006f5b62d10449cd280f311f4cf12f8.svg | 17 - ...62b0ff237d0ef459470304b79de4219c771037.svg | 11 - ...7f995d88e257359a4ce4f854c967791c1ec71d.svg | 149 --- ...95eec30809d2f72c4d645e69ee6ba5fd3f0767.svg | 149 --- ...e99ea1d6d13dbeedcdfcf7e3807cdd4f2e8594.svg | 76 -- ...064e1b27f430eda7087e304da72f29d1f0b102.svg | 73 -- ...fb62efa4d897975a5924d6f8ef3b7466fc7b4a.svg | 64 -- ...23f2ac78d6d7452697a0a4d711c406a7e04b6b.svg | 89 -- ...d2125a6059ef9b07f4cbe32c2f5b35ee13ff49.svg | 90 -- ...dc8bbb8b19c7ad0794ceefd47b82c0111b21f8.svg | 127 --- ...2f28367db2bbf757f819d55f238962369384ad.svg | 126 --- ...a114da143774e891c3cb6c37c39d8bc98c0386.svg | 15 - ...6912d7454caf98daf2e20797372b64bb3b728e.svg | 11 - ...427250d809caece36cbdd61547f4f5e714757e.svg | 61 -- ...8e69f9e44c00c28db11caa744ce8468e26062d.svg | 108 -- ...48bfc0796ff33966fbc002c446b2242d296fd9.svg | 89 -- ...8668a1db4f505075a95e7966ad942d5fb6fd83.svg | 145 --- ...b4cd411d70f6fc673e2311a6a786f54b72bf67.svg | 69 -- ...965124ba0a627060835202535c7861f9b8c69b.svg | 145 --- ...765386818a281cce0f753107ac50656c0cc8fa.svg | 101 -- ...274836cebcd29820798059050d713d9c2fc3f9.svg | 108 -- ...5577f4835bea58fb5e61feccfb2cac76ad365a.svg | 61 -- ...af1912f6d672948be49227545febbb868e4887.svg | 122 --- ...6ca1926b0911a8c3523f091346cf45a7877c61.svg | 137 --- ...ec4ba909b65b3426b4a35a78d3bb691135632f.svg | 149 --- ...31cda93cce15a6bef0ecb07b4221f15d15cc9f.svg | 134 --- ...f716294edee0018b3f078e794ae5d964c4e7e5.svg | 138 --- ...73c74dddb2e10b652efe45aa14cbb6023c92aa.svg | 15 - ...5a11ada9963c3e3b8ab06f0764c4a39027b903.svg | 147 --- ...419b70ee4382ef98b643337d72fb4f360c54dc.svg | 15 - ...5f35a00bb05b6028399a1a574a9c9eceaae3dc.svg | 64 -- ...82bc1515ee7f12235b6cf5ec58b653adacf9ab.svg | 90 -- ...e53e21f5584af23d7fbd41bdc8b4eb06e150d9.svg | 146 --- ...5e1f51c7b1adf37c30a54e0205dd325c0fbd83.svg | 11 - ...771851f25b7b1500b570c182c104346f4caf10.svg | 11 - ...d8da75ac6612b08aa1c953fe79f69d9614a370.svg | 63 -- ...592e982322fa08f1b8ae0e6bcdaca11fc8de59.svg | 11 - ...74d5122d0889ba7171982a92c523d35a2c447b.svg | 17 - ...d7e53e2606d1ffdcc0d85fcc0be2db9b919797.svg | 64 -- ...6611b9f35e3a8af01f51234df415eb9adbfe61.svg | 146 --- ...64520765ac3abdf00f5cff93232ef8f436c08c.svg | 90 -- ...dcd8e1232a9b79d01e09ea8c1be65747300380.svg | 89 -- ...f01e99347ef7cc15166f53ec582de9b502f58b.svg | 89 -- ...b775e1d32106f30d74a6fc743db615ea6e51ea.svg | 149 --- ...6b14e88c00afb0c157a014c7b04c192a6667d8.svg | 17 - ...55feec1c2be23566d6cb240ecccdb2cb43ffba.svg | 108 -- ...5c92329653dc668aca7375b3b801213e300119.svg | 21 - ...e353f5c7ea494aa1bb607f0b42adc51955a770.svg | 114 --- ...2aa4d374eadac24cdfa581a79bc6a768ce1b1d.svg | 145 --- ...40630fbb5173bbf2de2d38326e10e6977b2c18.svg | 162 --- ...4b8ca02be0eeffa5e995f1fe689a97f456c00b.svg | 15 - ...502e03af9f1e3d8a7dce9053c7125364a0cae5.svg | 174 ---- ...b3075593c703668bf03f396fce6a5fe573717f.svg | 174 ---- ...e563f9e2af17336ffd26eba981364f3f1d2168.svg | 21 - ...0027a70b057da00d97dd31650e183080cb43b5.svg | 15 - ...6f901ae855d64263ac2ab365517c5a7e5ccd14.svg | 21 - ...3c0b8b1360d0ec2ee767ec404fb6345ab0577c.svg | 15 - ...4d342ea354a4cdc3d38f7892d58fae9545a926.svg | 11 - ...edef6fb240c138d22677e925b4b653bf9f990e.svg | 63 -- ...67f9acd3737b5efcdc6cb35f39df773ebad7fe.svg | 64 -- ...19952585566a69fb8233562ce15d85100265b5.svg | 97 -- ...2a60679e9e7a3465fbf469680cf03f3821da24.svg | 11 - ...3f2f323917c4c577d00563525d086013713d90.svg | 149 --- ...53d53d52e506becc6c9eba1bbee8d52a0c0096.svg | 89 -- ...912ca6357b80cd4ac0e500254988780137d73d.svg | 11 - ...c9099fc8c459eb433947bd6c9cc0f96fe38f98.svg | 68 -- ...d7514f494125ad1ed346ea20de2b74b04c6b71.svg | 105 -- ...10802103c6f085b1f155800dc07fed61660394.svg | 146 --- ...285722e6eed4a0fa69945efe4dfe0fbe124582.svg | 162 --- ...4167eaade600ab592e2a4441ffc27f5268cccf.svg | 90 -- ...dfd7e61552070e476dde55e5f97dc21189d8bd.svg | 17 - ...c0a4ea1f5e913e84a4419ab76546940b976999.svg | 91 -- ...eae68ed847d26cca7f5a8121d080f07d02bf94.svg | 162 --- ...6a1741e36673576f163fbc74134ff742b364d8.svg | 70 -- ...7021e35d6fc44fe3d205ce7c892946b63c7507.svg | 61 -- ...438562da17dd63bb4fb24226789a7afac1650f.svg | 127 --- ...67c4215cbfc6897d6e5eaf14ded0dc221b972c.svg | 15 - ...1a34fefbc9f3c9204a0f4dae73804946be6692.svg | 111 --- ...4e418c03a66965d1ff43d7a166d4bc403fb59c.svg | 89 -- ...ed36f728a405f51900a56136f234fd1c84253e.svg | 137 --- ...a1a49f30e99ec10fb5965633edca518a10441b.svg | 73 -- ...937687478d980ab66b85de909dcb73d4bc9b13.svg | 160 --- ...3271fd2e7964699e51df9fee16b043e40449fd.svg | 11 - ...ac657e040edf18bbbf248d15d73ab640a93f2d.svg | 21 - ...49d1fafb6a28c6c042491d610586fbcb48c0b5.svg | 82 -- ...9ad1bf37cbb0cbc3156f31e10ce7d8148d5e06.svg | 11 - ...dff17c817c1acda8498e28276cbace394ea817.svg | 64 -- ...745b5797483cfcb6ff4816364d91d3d5b6e6c4.svg | 84 -- ...4fe0dc2dd02e9d27dfd46e93827894feb96d1f.svg | 15 - ...3a272a60d62c8a6b0ae4f178970b34b3cbc34b.svg | 61 -- ...3e748def2419af7ed6d97286f8f8ba95d695ab.svg | 160 --- ...67fe313a3b9c3638dde67e05f045efc2ddfe06.svg | 149 --- ...0cef88d057bcc5920fca7d63d0682f802d9006.svg | 61 -- ...cef9805eafbbcd57b5fefe36bab8b23012c7d1.svg | 145 --- ...0602aa4f63b11b8a8c07c95722fee7ea97b348.svg | 84 -- ...6941a661a880391bd898f16e5dcf9c0b8a7e59.svg | 127 --- ...96439e8724d5b54e9b4b344b9c99d0facc8b7c.svg | 15 - ...99367c490fcb15b82b8c5ee3fa5c9cbcc68dd8.svg | 63 -- ...e20146d5eb77607e0a55541f4efb1a4b8c4b8c.svg | 120 --- ...d4d6d37345b9aafba642fa7cfba7494ff14f70.svg | 89 -- ...156186842b31629791a1077f601176a7365f82.svg | 15 - ...5ab32e61ffbf9ec981451984dd7a6e61675385.svg | 89 -- ...99a147e6e958303111e813e82a3507ded25437.svg | 142 --- ...4c3c7dbb292f28e888bfb49920d7c293055d2b.svg | 108 -- ...dc66520823a07e0df31b43dda92f9b2ea9e792.svg | 108 -- ...68b3a2690eb8037909cae4b88b8ab16459605e.svg | 122 --- ...6dfd5625638bc4ad9867951a7818cf20c88a2f.svg | 74 -- ...3c9268a37c748c7cd0f640a1f28bd878bb1749.svg | 11 - ...a47d0c4e105b420931ccbeb7571abc3dd7f73d.svg | 79 -- ...b568237d1744ae5272cadf1bdd39eaed69c1f6.svg | 19 - ...e5c388fc50fed467da5027dde63736ec11b971.svg | 11 - ...1c8c9e0530c873480544a154b5156c1a3bc5cf.svg | 89 -- ...96fb3afc754d2d914e95c7197dd020ee4d8eeb.svg | 17 - ...7dc8445c84c126f6834aa63965b5866af4862f.svg | 137 --- ...d2e5584b404461c1046b8bf084d34487e21129.svg | 108 -- ...f8d8521b87e224ab55f1fb9b3b29c0d61c22d8.svg | 107 -- ...6af2733291dcf5001173a8dbaf8f59c817212a.svg | 78 -- ...28854f696e20d8f3e7fc8807f20c444cf43eaa.svg | 50 - ...2d55fb6c249a7da5a9df6b7e5c96ab6be7672b.svg | 75 -- ...910149fc44dd7dabe235ebff17a2060ae8714e.svg | 89 -- ...7c96b90fd292ae6974ada44ee78617139e5141.svg | 15 - ...9df02362bdcb3832d9a6e1e22c7d9a8374e613.svg | 134 --- ...284172ff91453e703a9b5979f8386f44f9948c.svg | 15 - ...9c3dd83ce20802dd9b32036339dbb3b354bd2d.svg | 91 -- ...70f05da2f796ded634f483374c8523a2ed0ac4.svg | 117 --- ...fd6928c1aaf2be4844f5d4e293a09bc610f44f.svg | 73 -- ...679edba251c469017904363c4f2ee6919879f3.svg | 11 - ...a521977b1461b53094f1bae24aa6d1bb757b07.svg | 80 -- ...4ddd4f20941bccbdf1c7cee61f00284285e536.svg | 11 - ...a71c9f02d3639232648b940b80e5b9c1a03db3.svg | 97 -- doc/build/html/_sources/commentary/gm.rst.txt | 104 -- .../_sources/commentary/layout-lexing.rst.txt | 235 ----- .../html/_sources/commentary/stg.rst.txt | 336 ------- doc/build/html/_sources/commentary/ti.rst.txt | 6 - .../html/_sources/commentary/tim.rst.txt | 336 ------- doc/build/html/_sources/glossary.rst.txt | 19 - doc/build/html/_sources/index.rst.txt | 26 - .../gm-state-transition-rules.rst.txt | 347 ------- .../references/gm-state-transitions.rst.txt | 466 --------- .../references/ti-state-transitions.rst.txt | 334 ------- doc/build/html/_sources/test.rst.txt | 9 - doc/build/html/_static/alabaster.css | 703 ------------- doc/build/html/_static/basic.css | 925 ------------------ doc/build/html/_static/custom.css | 1 - doc/build/html/_static/doctools.js | 156 --- .../html/_static/documentation_options.js | 13 - doc/build/html/_static/file.png | Bin 286 -> 0 bytes doc/build/html/_static/language_data.js | 199 ---- doc/build/html/_static/minus.png | Bin 90 -> 0 bytes doc/build/html/_static/plus.png | Bin 90 -> 0 bytes doc/build/html/_static/pygments.css | 84 -- doc/build/html/_static/searchtools.js | 574 ----------- doc/build/html/_static/sphinx_highlight.js | 154 --- doc/build/html/commentary/gm.html | 220 ----- doc/build/html/commentary/layout-lexing.html | 325 ------ doc/build/html/commentary/stg.html | 409 -------- doc/build/html/commentary/ti.html | 120 --- doc/build/html/commentary/tim.html | 410 -------- doc/build/html/genindex.html | 140 --- doc/build/html/glossary.html | 130 --- doc/build/html/index.html | 140 --- doc/build/html/objects.inv | Bin 499 -> 0 bytes .../references/gm-state-transition-rules.html | 459 --------- .../html/references/gm-state-transitions.html | 559 ----------- .../html/references/ti-state-transitions.html | 413 -------- doc/build/html/search.html | 132 --- doc/build/html/searchindex.js | 1 - doc/build/html/test.html | 105 -- 295 files changed, 29690 deletions(-) delete mode 100644 doc/build/.DS_Store delete mode 100644 doc/build/doctrees/commentary/gm.doctree delete mode 100644 doc/build/doctrees/commentary/layout-lexing.doctree delete mode 100644 doc/build/doctrees/commentary/stg.doctree delete mode 100644 doc/build/doctrees/commentary/ti.doctree delete mode 100644 doc/build/doctrees/commentary/tim.doctree delete mode 100644 doc/build/doctrees/environment.pickle delete mode 100644 doc/build/doctrees/glossary.doctree delete mode 100644 doc/build/doctrees/index.doctree delete mode 100644 doc/build/doctrees/references/gm-state-transition-rules.doctree delete mode 100644 doc/build/doctrees/references/gm-state-transitions.doctree delete mode 100644 doc/build/doctrees/references/ti-state-transitions.doctree delete mode 100644 doc/build/html/.buildinfo delete mode 100644 doc/build/html/_images/math/00420770ada7197f2dc04dc2cb7be7957619046e.svg delete mode 100644 doc/build/html/_images/math/021357ee48ac0e35395fa99353083fee184026dd.svg delete mode 100644 doc/build/html/_images/math/02341a0151149b70730cfe4fb67c90c60c7b657e.svg delete mode 100644 doc/build/html/_images/math/037e533b299f8acf5a007a8951726e0fb03c8297.svg delete mode 100644 doc/build/html/_images/math/068dad807177c214a4019500e8cb3e87d1f16fd3.svg delete mode 100644 doc/build/html/_images/math/06c8c584f274e78c626596a6cdbb67086a30bf76.svg delete mode 100644 doc/build/html/_images/math/0787f8d42f5944ee828b01d06440da9b5dbd2ab8.svg delete mode 100644 doc/build/html/_images/math/09635090aa47407c859d644721c5384fbb715130.svg delete mode 100644 doc/build/html/_images/math/096ddb24a14399b5fff7b5f2f691468d437dae7d.svg delete mode 100644 doc/build/html/_images/math/09f13f0deb087a0975f104db0a2fe82979aec7d5.svg delete mode 100644 doc/build/html/_images/math/0a0458d62ece3f6e5019d53d0245ff5facdc5fdf.svg delete mode 100644 doc/build/html/_images/math/0dad12d4109ecbf3e9de69670796aed4e39bad83.svg delete mode 100644 doc/build/html/_images/math/0f620d28afa4216e77023746bb49f10715fc8824.svg delete mode 100644 doc/build/html/_images/math/0fc7c9df5cc4f923f6953e615c1f28a6531c0b68.svg delete mode 100644 doc/build/html/_images/math/10e6bec91d32d8e61faf2f5843c718ef27148abd.svg delete mode 100644 doc/build/html/_images/math/11649b728693b5cbf77eeb3b247c50f599f41294.svg delete mode 100644 doc/build/html/_images/math/1181faecef1f280d02390f5e6e4dc19abe5f4eb1.svg delete mode 100644 doc/build/html/_images/math/11cdffb9aaad97f1748e14369a93f303987914df.svg delete mode 100644 doc/build/html/_images/math/11f8d008cc7c2fca0d206330cc817662df3b0c43.svg delete mode 100644 doc/build/html/_images/math/126119a4c2150b58b13370bfdfa9bb789571ef13.svg delete mode 100644 doc/build/html/_images/math/13da9cdf17e4f8cf26f0caad8bda0e132f604db0.svg delete mode 100644 doc/build/html/_images/math/13fdcdda44eede2cc7be00ace4f3d009e82ebf8d.svg delete mode 100644 doc/build/html/_images/math/1543958253280895e6abea369c0f9abf4898649c.svg delete mode 100644 doc/build/html/_images/math/15d23b1b737948104e84da7d3e79c697816c10df.svg delete mode 100644 doc/build/html/_images/math/1631c78842178c05d1a9c61aca6fbe3d74247ced.svg delete mode 100644 doc/build/html/_images/math/169b0ba6ac3730b32a1d4054ae9a3ec0912ff9c0.svg delete mode 100644 doc/build/html/_images/math/176a0e2360b1e342041d8129c3a264321ae806ce.svg delete mode 100644 doc/build/html/_images/math/187ead99c2f67003ebe37c473bac713194eaa50e.svg delete mode 100644 doc/build/html/_images/math/18d617a93c757f0b0e644d4000b9decf2c1730df.svg delete mode 100644 doc/build/html/_images/math/18d81e1fc22e6feb876a993fe30fd9e8336f5bf6.svg delete mode 100644 doc/build/html/_images/math/1994936ebb09fed720f969439d19593b228aec95.svg delete mode 100644 doc/build/html/_images/math/1bbf876b63a42c5c5fd537974667f28e4fdfe71f.svg delete mode 100644 doc/build/html/_images/math/1d1d05c2792b02598e523fd646d6268749231320.svg delete mode 100644 doc/build/html/_images/math/1db3a2eb7103da4d39315e15158991ac5eb31a8f.svg delete mode 100644 doc/build/html/_images/math/1e7e72c2a7ae8acbb9c293a2681b3cdf41e403b7.svg delete mode 100644 doc/build/html/_images/math/1ec3c5f46f67104788324ef961a5eb2126495009.svg delete mode 100644 doc/build/html/_images/math/1f35e0be8716b58b223dddd9dc21d3cbf9b932c9.svg delete mode 100644 doc/build/html/_images/math/1fc5e2a4ce5b523a6e99c0937d45b0f285461097.svg delete mode 100644 doc/build/html/_images/math/20219b0570be52c3f596972c4cd5461a162cccf9.svg delete mode 100644 doc/build/html/_images/math/22bd53275636be43362c037f2ad50f5f63231e10.svg delete mode 100644 doc/build/html/_images/math/2417422cdf63ed202b16462208f8a62630f99679.svg delete mode 100644 doc/build/html/_images/math/24642c97b2dc64d03a103607414f676b6e9daf5c.svg delete mode 100644 doc/build/html/_images/math/24c437dab01cb429328b3fe9d20e8f5b64cefdc0.svg delete mode 100644 doc/build/html/_images/math/262187dda48952ac064d34af5a8dc5ccc5df1126.svg delete mode 100644 doc/build/html/_images/math/26f3be2a43bd1ac2dfa07345e26336292899f61f.svg delete mode 100644 doc/build/html/_images/math/276f330b47308dae1686a2c0030783ed20a8866d.svg delete mode 100644 doc/build/html/_images/math/278a79d24fb8713d66c77d17909485589a944e60.svg delete mode 100644 doc/build/html/_images/math/29a11053c0f5950b2126ebf4829f569eeaa85ad6.svg delete mode 100644 doc/build/html/_images/math/2a63b1f89224cb96d4e2b5a0f9494eac68234a42.svg delete mode 100644 doc/build/html/_images/math/2b4c25ea56a82ed5f9d8182f3c38c632ab47e8bd.svg delete mode 100644 doc/build/html/_images/math/2bfab760cd5a82cd980862645b628ea4c2a97f34.svg delete mode 100644 doc/build/html/_images/math/2dc5e48f0f26f08073e6e1cdd70ff876c6ec2434.svg delete mode 100644 doc/build/html/_images/math/2e21d478eedaa358bccb9aa3c57a5b290e671863.svg delete mode 100644 doc/build/html/_images/math/2f7215ad8dc4415a832b9101c30f98ad94307f61.svg delete mode 100644 doc/build/html/_images/math/3075f944e67c6a986438fad3c0d23ee7cc191a88.svg delete mode 100644 doc/build/html/_images/math/30ca5614d0c1f1e407a064238095024a155e2466.svg delete mode 100644 doc/build/html/_images/math/314087b4a49447d217e1247a7a58aeb2ebf04f6b.svg delete mode 100644 doc/build/html/_images/math/32843bfb29b74cf3428d62c0a0bb4a85018bf793.svg delete mode 100644 doc/build/html/_images/math/334a9ad9e9541a3f8be7530fed1ec7373510a227.svg delete mode 100644 doc/build/html/_images/math/33b86e3c01637e2ffa96b8a23365bd27e98594fb.svg delete mode 100644 doc/build/html/_images/math/33f37b6cae353c26c80f089c5b354e7575e7c201.svg delete mode 100644 doc/build/html/_images/math/3436a201726f4f03e64783f41d44d9ae3edd5118.svg delete mode 100644 doc/build/html/_images/math/34e91bc0685dd54adb3e06c06e6fc0cc4d8ad419.svg delete mode 100644 doc/build/html/_images/math/354d9ac40cde930452a7f40dd91dc043c92aba12.svg delete mode 100644 doc/build/html/_images/math/37c1815c2dba065ef8c2f84100676cf9d1b6511a.svg delete mode 100644 doc/build/html/_images/math/3939cf0a8e341efac8ba1aeb5ae6271cd00c37c7.svg delete mode 100644 doc/build/html/_images/math/3a0879f2e436b8778f86d0b3315af89e4b23061e.svg delete mode 100644 doc/build/html/_images/math/3c5133875b5087d8f8b521a6b737f82d715cf7e7.svg delete mode 100644 doc/build/html/_images/math/3cdf4d8583b839b15fed122e5293d261cc34639d.svg delete mode 100644 doc/build/html/_images/math/3eb2a0684a9c3d7c7a02334d788b2bd85cc83b55.svg delete mode 100644 doc/build/html/_images/math/3f0efc21d61f6d73d821b258392b7be1fc9036eb.svg delete mode 100644 doc/build/html/_images/math/3fa33eeafbc80a0bcf2766e8f56e9cb2b6148e79.svg delete mode 100644 doc/build/html/_images/math/3fc332dc07916d83f75fcddf6da06a7734032ee9.svg delete mode 100644 doc/build/html/_images/math/3ffc6e15d2c381b0ab11691e13dba314d2c6541d.svg delete mode 100644 doc/build/html/_images/math/4004b3a0b74a3d25993573e61733383293f43681.svg delete mode 100644 doc/build/html/_images/math/42273dafbdeac1dd5bdf8568a1e9ab8625c0629d.svg delete mode 100644 doc/build/html/_images/math/422ce4de46a354723a0f5b33995d885c86bb0e70.svg delete mode 100644 doc/build/html/_images/math/4298057f95b17024436a0d57ca56eae8125e10ec.svg delete mode 100644 doc/build/html/_images/math/42da9c8a8264ec5b3d99bd3549773d2113758a5f.svg delete mode 100644 doc/build/html/_images/math/43434266ad5b9f36d523d70ff88db5c4e9366b03.svg delete mode 100644 doc/build/html/_images/math/4713e4c065d6aabec3acece28c5ecc882faa119a.svg delete mode 100644 doc/build/html/_images/math/478aeca314882e29dc3a52d64624061fb36948f0.svg delete mode 100644 doc/build/html/_images/math/48d3c54aba5df0dae426f9470d65778e8ccc24ab.svg delete mode 100644 doc/build/html/_images/math/4966d2d6002bc14e00e77569c63b325e5b02f101.svg delete mode 100644 doc/build/html/_images/math/49a5030ceb5f0c5f44d4581db994508f66b20dfa.svg delete mode 100644 doc/build/html/_images/math/4d427448f9b8b54db19e316c805033a7abfe11d2.svg delete mode 100644 doc/build/html/_images/math/4d588662930e30ecc01abfa745b194bfb5ffbb27.svg delete mode 100644 doc/build/html/_images/math/4dc55ad8626b971383946574d473861074202c72.svg delete mode 100644 doc/build/html/_images/math/4de73a2c1d1501096302e1e173eaf947ceb9c7d4.svg delete mode 100644 doc/build/html/_images/math/4f85c9abccccc8bc1f4b830fa22701457c595b96.png delete mode 100644 doc/build/html/_images/math/4f85c9abccccc8bc1f4b830fa22701457c595b96.svg delete mode 100644 doc/build/html/_images/math/51b8ee3def56618c3d5c55841743d53ffbedbcfb.svg delete mode 100644 doc/build/html/_images/math/52bc533fab728efc3a24ef236fcb017ad2888830.svg delete mode 100644 doc/build/html/_images/math/537fa099ced1d1933aba81912860d6c60e6c6f75.svg delete mode 100644 doc/build/html/_images/math/5380d8227d0a06608b108a26b4a618972b4b7e28.svg delete mode 100644 doc/build/html/_images/math/538b0fab8c90c1abe8c6abaa3c807886040452db.svg delete mode 100644 doc/build/html/_images/math/565b4d912dcfd08351ed35fd0deb3cadc0781241.svg delete mode 100644 doc/build/html/_images/math/57b0d3fbe6f17a0e706fda6039130d8aaaf32903.svg delete mode 100644 doc/build/html/_images/math/5a00c38ab6f040dfa75be56918953af44dc11637.svg delete mode 100644 doc/build/html/_images/math/5acebcc879cae1694dcc537b99796e0dc0e0ff05.svg delete mode 100644 doc/build/html/_images/math/5bd3cd582dce130ac602d5d805972076e5bc0f56.svg delete mode 100644 doc/build/html/_images/math/5cf94fab747054130daaf436fc83ab590969c35f.svg delete mode 100644 doc/build/html/_images/math/5e158f7fd5d27c3feef4c9b1500d451656fe2aa9.svg delete mode 100644 doc/build/html/_images/math/5f6f5e2b2f037821ad3386d2355364f2667e3c34.svg delete mode 100644 doc/build/html/_images/math/604a42b94739b04fa9559a97c3703816bf57aa5c.svg delete mode 100644 doc/build/html/_images/math/607985174357bbbea2e2b47ab0694b2d21a71b35.svg delete mode 100644 doc/build/html/_images/math/60f4e38bb9ff4a7bcb201e82cb956a3ccf064632.svg delete mode 100644 doc/build/html/_images/math/620e45afe56ccc0dae7d9566d244b13bb6cb0631.svg delete mode 100644 doc/build/html/_images/math/625a1ccce064b171eb9d5ec015e07d234ef26c74.svg delete mode 100644 doc/build/html/_images/math/643dd082a2b49d9ebdb87533aac62fdd342f4fd5.svg delete mode 100644 doc/build/html/_images/math/64728a32abbc0b68b58acd0467082b83653421df.svg delete mode 100644 doc/build/html/_images/math/66eb37710389b629d7ffa626fb55276426bef938.svg delete mode 100644 doc/build/html/_images/math/6a99995af47f16f85dab4ffa3208177455960e73.svg delete mode 100644 doc/build/html/_images/math/6bb003bcdf823b102e5c80f3ca1cd4208c7493fc.svg delete mode 100644 doc/build/html/_images/math/6bdb1b0b4006f5b62d10449cd280f311f4cf12f8.svg delete mode 100644 doc/build/html/_images/math/6c62b0ff237d0ef459470304b79de4219c771037.svg delete mode 100644 doc/build/html/_images/math/6d7f995d88e257359a4ce4f854c967791c1ec71d.svg delete mode 100644 doc/build/html/_images/math/6d95eec30809d2f72c4d645e69ee6ba5fd3f0767.svg delete mode 100644 doc/build/html/_images/math/6de99ea1d6d13dbeedcdfcf7e3807cdd4f2e8594.svg delete mode 100644 doc/build/html/_images/math/6e064e1b27f430eda7087e304da72f29d1f0b102.svg delete mode 100644 doc/build/html/_images/math/6efb62efa4d897975a5924d6f8ef3b7466fc7b4a.svg delete mode 100644 doc/build/html/_images/math/6f23f2ac78d6d7452697a0a4d711c406a7e04b6b.svg delete mode 100644 doc/build/html/_images/math/6fd2125a6059ef9b07f4cbe32c2f5b35ee13ff49.svg delete mode 100644 doc/build/html/_images/math/6fdc8bbb8b19c7ad0794ceefd47b82c0111b21f8.svg delete mode 100644 doc/build/html/_images/math/702f28367db2bbf757f819d55f238962369384ad.svg delete mode 100644 doc/build/html/_images/math/71a114da143774e891c3cb6c37c39d8bc98c0386.svg delete mode 100644 doc/build/html/_images/math/746912d7454caf98daf2e20797372b64bb3b728e.svg delete mode 100644 doc/build/html/_images/math/75427250d809caece36cbdd61547f4f5e714757e.svg delete mode 100644 doc/build/html/_images/math/758e69f9e44c00c28db11caa744ce8468e26062d.svg delete mode 100644 doc/build/html/_images/math/7648bfc0796ff33966fbc002c446b2242d296fd9.svg delete mode 100644 doc/build/html/_images/math/768668a1db4f505075a95e7966ad942d5fb6fd83.svg delete mode 100644 doc/build/html/_images/math/76b4cd411d70f6fc673e2311a6a786f54b72bf67.svg delete mode 100644 doc/build/html/_images/math/78965124ba0a627060835202535c7861f9b8c69b.svg delete mode 100644 doc/build/html/_images/math/79765386818a281cce0f753107ac50656c0cc8fa.svg delete mode 100644 doc/build/html/_images/math/7a274836cebcd29820798059050d713d9c2fc3f9.svg delete mode 100644 doc/build/html/_images/math/7a5577f4835bea58fb5e61feccfb2cac76ad365a.svg delete mode 100644 doc/build/html/_images/math/7aaf1912f6d672948be49227545febbb868e4887.svg delete mode 100644 doc/build/html/_images/math/7b6ca1926b0911a8c3523f091346cf45a7877c61.svg delete mode 100644 doc/build/html/_images/math/7bec4ba909b65b3426b4a35a78d3bb691135632f.svg delete mode 100644 doc/build/html/_images/math/7c31cda93cce15a6bef0ecb07b4221f15d15cc9f.svg delete mode 100644 doc/build/html/_images/math/7df716294edee0018b3f078e794ae5d964c4e7e5.svg delete mode 100644 doc/build/html/_images/math/7e73c74dddb2e10b652efe45aa14cbb6023c92aa.svg delete mode 100644 doc/build/html/_images/math/815a11ada9963c3e3b8ab06f0764c4a39027b903.svg delete mode 100644 doc/build/html/_images/math/82419b70ee4382ef98b643337d72fb4f360c54dc.svg delete mode 100644 doc/build/html/_images/math/825f35a00bb05b6028399a1a574a9c9eceaae3dc.svg delete mode 100644 doc/build/html/_images/math/8282bc1515ee7f12235b6cf5ec58b653adacf9ab.svg delete mode 100644 doc/build/html/_images/math/83e53e21f5584af23d7fbd41bdc8b4eb06e150d9.svg delete mode 100644 doc/build/html/_images/math/845e1f51c7b1adf37c30a54e0205dd325c0fbd83.svg delete mode 100644 doc/build/html/_images/math/89771851f25b7b1500b570c182c104346f4caf10.svg delete mode 100644 doc/build/html/_images/math/8dd8da75ac6612b08aa1c953fe79f69d9614a370.svg delete mode 100644 doc/build/html/_images/math/90592e982322fa08f1b8ae0e6bcdaca11fc8de59.svg delete mode 100644 doc/build/html/_images/math/9074d5122d0889ba7171982a92c523d35a2c447b.svg delete mode 100644 doc/build/html/_images/math/90d7e53e2606d1ffdcc0d85fcc0be2db9b919797.svg delete mode 100644 doc/build/html/_images/math/916611b9f35e3a8af01f51234df415eb9adbfe61.svg delete mode 100644 doc/build/html/_images/math/9264520765ac3abdf00f5cff93232ef8f436c08c.svg delete mode 100644 doc/build/html/_images/math/93dcd8e1232a9b79d01e09ea8c1be65747300380.svg delete mode 100644 doc/build/html/_images/math/95f01e99347ef7cc15166f53ec582de9b502f58b.svg delete mode 100644 doc/build/html/_images/math/96b775e1d32106f30d74a6fc743db615ea6e51ea.svg delete mode 100644 doc/build/html/_images/math/996b14e88c00afb0c157a014c7b04c192a6667d8.svg delete mode 100644 doc/build/html/_images/math/9a55feec1c2be23566d6cb240ecccdb2cb43ffba.svg delete mode 100644 doc/build/html/_images/math/9d5c92329653dc668aca7375b3b801213e300119.svg delete mode 100644 doc/build/html/_images/math/9ee353f5c7ea494aa1bb607f0b42adc51955a770.svg delete mode 100644 doc/build/html/_images/math/9f2aa4d374eadac24cdfa581a79bc6a768ce1b1d.svg delete mode 100644 doc/build/html/_images/math/a540630fbb5173bbf2de2d38326e10e6977b2c18.svg delete mode 100644 doc/build/html/_images/math/a64b8ca02be0eeffa5e995f1fe689a97f456c00b.svg delete mode 100644 doc/build/html/_images/math/a6502e03af9f1e3d8a7dce9053c7125364a0cae5.svg delete mode 100644 doc/build/html/_images/math/a6b3075593c703668bf03f396fce6a5fe573717f.svg delete mode 100644 doc/build/html/_images/math/a7e563f9e2af17336ffd26eba981364f3f1d2168.svg delete mode 100644 doc/build/html/_images/math/a80027a70b057da00d97dd31650e183080cb43b5.svg delete mode 100644 doc/build/html/_images/math/a86f901ae855d64263ac2ab365517c5a7e5ccd14.svg delete mode 100644 doc/build/html/_images/math/a93c0b8b1360d0ec2ee767ec404fb6345ab0577c.svg delete mode 100644 doc/build/html/_images/math/a94d342ea354a4cdc3d38f7892d58fae9545a926.svg delete mode 100644 doc/build/html/_images/math/a9edef6fb240c138d22677e925b4b653bf9f990e.svg delete mode 100644 doc/build/html/_images/math/ac67f9acd3737b5efcdc6cb35f39df773ebad7fe.svg delete mode 100644 doc/build/html/_images/math/ad19952585566a69fb8233562ce15d85100265b5.svg delete mode 100644 doc/build/html/_images/math/ad2a60679e9e7a3465fbf469680cf03f3821da24.svg delete mode 100644 doc/build/html/_images/math/ad3f2f323917c4c577d00563525d086013713d90.svg delete mode 100644 doc/build/html/_images/math/ae53d53d52e506becc6c9eba1bbee8d52a0c0096.svg delete mode 100644 doc/build/html/_images/math/ae912ca6357b80cd4ac0e500254988780137d73d.svg delete mode 100644 doc/build/html/_images/math/aec9099fc8c459eb433947bd6c9cc0f96fe38f98.svg delete mode 100644 doc/build/html/_images/math/afd7514f494125ad1ed346ea20de2b74b04c6b71.svg delete mode 100644 doc/build/html/_images/math/b010802103c6f085b1f155800dc07fed61660394.svg delete mode 100644 doc/build/html/_images/math/b0285722e6eed4a0fa69945efe4dfe0fbe124582.svg delete mode 100644 doc/build/html/_images/math/b04167eaade600ab592e2a4441ffc27f5268cccf.svg delete mode 100644 doc/build/html/_images/math/b2dfd7e61552070e476dde55e5f97dc21189d8bd.svg delete mode 100644 doc/build/html/_images/math/b3c0a4ea1f5e913e84a4419ab76546940b976999.svg delete mode 100644 doc/build/html/_images/math/b6eae68ed847d26cca7f5a8121d080f07d02bf94.svg delete mode 100644 doc/build/html/_images/math/b86a1741e36673576f163fbc74134ff742b364d8.svg delete mode 100644 doc/build/html/_images/math/ba7021e35d6fc44fe3d205ce7c892946b63c7507.svg delete mode 100644 doc/build/html/_images/math/bc438562da17dd63bb4fb24226789a7afac1650f.svg delete mode 100644 doc/build/html/_images/math/c067c4215cbfc6897d6e5eaf14ded0dc221b972c.svg delete mode 100644 doc/build/html/_images/math/c11a34fefbc9f3c9204a0f4dae73804946be6692.svg delete mode 100644 doc/build/html/_images/math/c14e418c03a66965d1ff43d7a166d4bc403fb59c.svg delete mode 100644 doc/build/html/_images/math/c2ed36f728a405f51900a56136f234fd1c84253e.svg delete mode 100644 doc/build/html/_images/math/c3a1a49f30e99ec10fb5965633edca518a10441b.svg delete mode 100644 doc/build/html/_images/math/c5937687478d980ab66b85de909dcb73d4bc9b13.svg delete mode 100644 doc/build/html/_images/math/c63271fd2e7964699e51df9fee16b043e40449fd.svg delete mode 100644 doc/build/html/_images/math/c9ac657e040edf18bbbf248d15d73ab640a93f2d.svg delete mode 100644 doc/build/html/_images/math/cc49d1fafb6a28c6c042491d610586fbcb48c0b5.svg delete mode 100644 doc/build/html/_images/math/cc9ad1bf37cbb0cbc3156f31e10ce7d8148d5e06.svg delete mode 100644 doc/build/html/_images/math/cddff17c817c1acda8498e28276cbace394ea817.svg delete mode 100644 doc/build/html/_images/math/ce745b5797483cfcb6ff4816364d91d3d5b6e6c4.svg delete mode 100644 doc/build/html/_images/math/d04fe0dc2dd02e9d27dfd46e93827894feb96d1f.svg delete mode 100644 doc/build/html/_images/math/d13a272a60d62c8a6b0ae4f178970b34b3cbc34b.svg delete mode 100644 doc/build/html/_images/math/d13e748def2419af7ed6d97286f8f8ba95d695ab.svg delete mode 100644 doc/build/html/_images/math/d267fe313a3b9c3638dde67e05f045efc2ddfe06.svg delete mode 100644 doc/build/html/_images/math/d30cef88d057bcc5920fca7d63d0682f802d9006.svg delete mode 100644 doc/build/html/_images/math/d4cef9805eafbbcd57b5fefe36bab8b23012c7d1.svg delete mode 100644 doc/build/html/_images/math/d50602aa4f63b11b8a8c07c95722fee7ea97b348.svg delete mode 100644 doc/build/html/_images/math/d56941a661a880391bd898f16e5dcf9c0b8a7e59.svg delete mode 100644 doc/build/html/_images/math/d696439e8724d5b54e9b4b344b9c99d0facc8b7c.svg delete mode 100644 doc/build/html/_images/math/d799367c490fcb15b82b8c5ee3fa5c9cbcc68dd8.svg delete mode 100644 doc/build/html/_images/math/dce20146d5eb77607e0a55541f4efb1a4b8c4b8c.svg delete mode 100644 doc/build/html/_images/math/ded4d6d37345b9aafba642fa7cfba7494ff14f70.svg delete mode 100644 doc/build/html/_images/math/e0156186842b31629791a1077f601176a7365f82.svg delete mode 100644 doc/build/html/_images/math/e15ab32e61ffbf9ec981451984dd7a6e61675385.svg delete mode 100644 doc/build/html/_images/math/e299a147e6e958303111e813e82a3507ded25437.svg delete mode 100644 doc/build/html/_images/math/e34c3c7dbb292f28e888bfb49920d7c293055d2b.svg delete mode 100644 doc/build/html/_images/math/e4dc66520823a07e0df31b43dda92f9b2ea9e792.svg delete mode 100644 doc/build/html/_images/math/e568b3a2690eb8037909cae4b88b8ab16459605e.svg delete mode 100644 doc/build/html/_images/math/e56dfd5625638bc4ad9867951a7818cf20c88a2f.svg delete mode 100644 doc/build/html/_images/math/e83c9268a37c748c7cd0f640a1f28bd878bb1749.svg delete mode 100644 doc/build/html/_images/math/e8a47d0c4e105b420931ccbeb7571abc3dd7f73d.svg delete mode 100644 doc/build/html/_images/math/e8b568237d1744ae5272cadf1bdd39eaed69c1f6.svg delete mode 100644 doc/build/html/_images/math/e8e5c388fc50fed467da5027dde63736ec11b971.svg delete mode 100644 doc/build/html/_images/math/e91c8c9e0530c873480544a154b5156c1a3bc5cf.svg delete mode 100644 doc/build/html/_images/math/ea96fb3afc754d2d914e95c7197dd020ee4d8eeb.svg delete mode 100644 doc/build/html/_images/math/eb7dc8445c84c126f6834aa63965b5866af4862f.svg delete mode 100644 doc/build/html/_images/math/ebd2e5584b404461c1046b8bf084d34487e21129.svg delete mode 100644 doc/build/html/_images/math/ecf8d8521b87e224ab55f1fb9b3b29c0d61c22d8.svg delete mode 100644 doc/build/html/_images/math/ed6af2733291dcf5001173a8dbaf8f59c817212a.svg delete mode 100644 doc/build/html/_images/math/f028854f696e20d8f3e7fc8807f20c444cf43eaa.svg delete mode 100644 doc/build/html/_images/math/f02d55fb6c249a7da5a9df6b7e5c96ab6be7672b.svg delete mode 100644 doc/build/html/_images/math/f0910149fc44dd7dabe235ebff17a2060ae8714e.svg delete mode 100644 doc/build/html/_images/math/f17c96b90fd292ae6974ada44ee78617139e5141.svg delete mode 100644 doc/build/html/_images/math/f19df02362bdcb3832d9a6e1e22c7d9a8374e613.svg delete mode 100644 doc/build/html/_images/math/f3284172ff91453e703a9b5979f8386f44f9948c.svg delete mode 100644 doc/build/html/_images/math/f49c3dd83ce20802dd9b32036339dbb3b354bd2d.svg delete mode 100644 doc/build/html/_images/math/f670f05da2f796ded634f483374c8523a2ed0ac4.svg delete mode 100644 doc/build/html/_images/math/f6fd6928c1aaf2be4844f5d4e293a09bc610f44f.svg delete mode 100644 doc/build/html/_images/math/f7679edba251c469017904363c4f2ee6919879f3.svg delete mode 100644 doc/build/html/_images/math/f9a521977b1461b53094f1bae24aa6d1bb757b07.svg delete mode 100644 doc/build/html/_images/math/fb4ddd4f20941bccbdf1c7cee61f00284285e536.svg delete mode 100644 doc/build/html/_images/math/fea71c9f02d3639232648b940b80e5b9c1a03db3.svg delete mode 100644 doc/build/html/_sources/commentary/gm.rst.txt delete mode 100644 doc/build/html/_sources/commentary/layout-lexing.rst.txt delete mode 100644 doc/build/html/_sources/commentary/stg.rst.txt delete mode 100644 doc/build/html/_sources/commentary/ti.rst.txt delete mode 100644 doc/build/html/_sources/commentary/tim.rst.txt delete mode 100644 doc/build/html/_sources/glossary.rst.txt delete mode 100644 doc/build/html/_sources/index.rst.txt delete mode 100644 doc/build/html/_sources/references/gm-state-transition-rules.rst.txt delete mode 100644 doc/build/html/_sources/references/gm-state-transitions.rst.txt delete mode 100644 doc/build/html/_sources/references/ti-state-transitions.rst.txt delete mode 100644 doc/build/html/_sources/test.rst.txt delete mode 100644 doc/build/html/_static/alabaster.css delete mode 100644 doc/build/html/_static/basic.css delete mode 100644 doc/build/html/_static/custom.css delete mode 100644 doc/build/html/_static/doctools.js delete mode 100644 doc/build/html/_static/documentation_options.js delete mode 100644 doc/build/html/_static/file.png delete mode 100644 doc/build/html/_static/language_data.js delete mode 100644 doc/build/html/_static/minus.png delete mode 100644 doc/build/html/_static/plus.png delete mode 100644 doc/build/html/_static/pygments.css delete mode 100644 doc/build/html/_static/searchtools.js delete mode 100644 doc/build/html/_static/sphinx_highlight.js delete mode 100644 doc/build/html/commentary/gm.html delete mode 100644 doc/build/html/commentary/layout-lexing.html delete mode 100644 doc/build/html/commentary/stg.html delete mode 100644 doc/build/html/commentary/ti.html delete mode 100644 doc/build/html/commentary/tim.html delete mode 100644 doc/build/html/genindex.html delete mode 100644 doc/build/html/glossary.html delete mode 100644 doc/build/html/index.html delete mode 100644 doc/build/html/objects.inv delete mode 100644 doc/build/html/references/gm-state-transition-rules.html delete mode 100644 doc/build/html/references/gm-state-transitions.html delete mode 100644 doc/build/html/references/ti-state-transitions.html delete mode 100644 doc/build/html/search.html delete mode 100644 doc/build/html/searchindex.js delete mode 100644 doc/build/html/test.html diff --git a/doc/build/.DS_Store b/doc/build/.DS_Store deleted file mode 100644 index 94c7107150a65b7965881f719558b0051abbc156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8zj35RBCIAV8Fop~hR0Kpbg3L%NFD^*R$xmWnVAu|o z8|)Ow?JNu#3?&S?3^~Z|Pb$dCEG{uHxW>rD%)-jX&cV*X%@G@%kzXEMl2}q&?37p( z4dR95=jSBB*ojGDnW^RR0wT`&c_oRNd8tJpCBc~~sY!`NG2xkcDf#72`K5U&#bCWq z2@XyU&UgXw>S{9+V;u!Uqgow>YBM8K9R+h!quN?d4pC)&>!A4ToZP(pPDpq%GD2tu zUMLNtx)>N3;NB?)1ECdl9B}YSGGz3OO2r#m^1iLtaDoq^T1=Y2n`ZNJ5 w532nk)iJ1|Mr{NzK?W2hph`j2JxD8v23N(543L_9v>^Zsp;3A?1n3_E0Is7-E&u=k diff --git a/doc/build/doctrees/commentary/gm.doctree b/doc/build/doctrees/commentary/gm.doctree deleted file mode 100644 index 5bc5af5954aab842860ba3acc7b3b72bfb7fc992..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13821 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 diff --git a/doc/build/doctrees/commentary/layout-lexing.doctree b/doc/build/doctrees/commentary/layout-lexing.doctree deleted file mode 100644 index 8182c50b7f12bef99efeca9dbb38f12a04519a06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42870 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 OI3rK-12w`+lk@;}At@LD diff --git a/doc/build/doctrees/commentary/stg.doctree b/doc/build/doctrees/commentary/stg.doctree deleted file mode 100644 index df8d7e888823a63e04239e8c8c462d2302bfcf90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20256 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 h&YhW;oKuno}$?}rFM!&4`)$g zd2xPeQF7{(9)>AB9LX7(IVnY{c~fGi^zea{mt^J?>p}Ii7pEqdWaj6=wP&zquw}5v zPSMEV>|rg*EXhellIoET$w*bu3Q5f^$Vn_oRq)I!E=kNQ$xJNCFVdO<)5a2#S^;uT z4+}{3l-4N_cd->D7J(d^A=twi4{`_C*%{0|Y*5$w^|0h*=A};YD^1Ga?BPhwEyzeL z&MZc@UmTy^8Dc%6Se*uQLWXpPVunlxbB3&6hMZq%QeqERVo6C+W>RTMYB4zMm@`v~ zLE*%noRe5woC;>M<|XDrSR5&(1qe=3Vsds-Y8psQX%BlzVme4_N``!fbcSGQQfh`~ z?G%j+?bs<9y0KF-^kb)F7{*S?Fpiy4nqiv3pCO&W193`^qkd>{YEiL%a#3k+QckMA z3p7TH^^21;^7C`_or4|qi*gF|Q}UDbi;I%=lk;;yL6=xmsb7+*S5#awB}2}e2^?sg z1&Kw8=|zbJ8OWg)7Va6Krx22nS*%c=nUkZCkzbISR+^JjsgRVakXliYn3s~8qL7(a zlCO}cP?C{flwX>jp-`TflUkrRsqrJVUI9R>ngU zPKI=bJtU~0v4%HfZ8KyuY%=7$SzsZI92Gs1B^jx@CD7!nn~9WsrzFDS39Lu~rbq!z z5mF>_Wk_c*LtF;7lBqN)5vSYWsXW7`N2H`EF|Rl$5tQ-b3ySj7i&Bdr>5sJ}za%kd ziZ??K7felR$`o&gQc$8{?BPo;Edu4CczBNCfr&tJP7g}y%~FWK}AkpX>NQ)T7FUP6mP~JzT%Ri%z}7mx-OpL*CP!PNzF+GrS#(X^30Nq zcvznF>*0k+BLsMgQVa5nO5$@;%TjZucr*2IWhCanxvV{csTG+e@u1{eS`1Uf+QXWX znpB!T#jl62Jh3P*GcP^9xTGjGF&E_flA^@qRFJ2pboB6L<`tBd#HZ#Z=ci=mrBCVM zEGQ3s9$7RQ zG$S%sNwlbDxYnwXv%pPZkPI;Dpx zHE&9fa8YVF zKOP~}!<3marH41AG`Aogp8ouL_`m|0c_pbud5Jk71Np%s;FJxDdxTIyacXHwetbnP zC_M?JRutqHr^X}e1SgT?lK8UB;>?o#qA7ko{P8K7#feEdAdf&@$qvgG88$sU@hPdr zC7F5POa@A%@et3%r)B0qN^>y~D?T%?IJF3z5mWO(rlm~j=;1C(ERTnAy%~E1L76K) zCp9m0LZEV@xHJh(U1lyQ@#f?wLb4*L$&fvzM<6vfDK#a&xTG>CwKyX+wPZ?X zk7#mEeqwffYHng?PJCiY3aFG#EuPZRBM34%Ge0lBI5j5?Ql@qGFsJ5~ftnsY9FVdk z6_m&XGV@Y0i&B$I;!6^X(o;){L5%~!;?ktzlFX7)aI#4OH34d;^a!Ddg4zP0A{}H} z8l1xh%0ek%adwa(sI^f$B_k-qzqp4JBv4XW0B(t71a%f?XxC23@Xz2W?%_p_EU<3g zWi7Wz97dr(Mxw%RCIq>)gD-|iOL=l9m=0q`(6J{$|lMsse z#U+VFC7{Aw6x}SS3_}lBW=ec=ekrItn9{?YoS%~eX?qq=>0x((3Bp& zg2bZY)cD-g;^M?~NQM=H7aSr2 HP0|AZE$4d7 diff --git a/doc/build/doctrees/commentary/tim.doctree b/doc/build/doctrees/commentary/tim.doctree deleted file mode 100644 index a75f4997438707c402dfbe1a2bf8947c633f5c2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20249 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 diff --git a/doc/build/doctrees/index.doctree b/doc/build/doctrees/index.doctree deleted file mode 100644 index 3f9707dcd5a530c149b7ebd6f3ae707d95c8b69b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3602 zcmZo*oyyL~00uq$#RVCec@=tzDJgmRDXGO%dN@+@lS^|`^Gc>no}$?}rFM!&4`)$g zd2xPeQF7{(9)>AB9LX7(IVnY{c~fGi^zea{mt^J?>p}Ii7pEqdWaj6=wP&zquw}5v zPSMEV>|rg*EXhellIoEUPt8fr&rMY*$yX@KDNrv~02v6fKM`b#;uMh949*^wkkks0 zlX?_UH9TsViJ_%+3dG%P1&KuJb0I8_l+pqOCn+&GyC^jcq^7ioy(BRm zBsC?2KSMf$CqpKKIYYL`Qa`jfwWwG>xu`TZDJNCm1scr7`o+l^`T05e&cTlQML7lf zDf!9z#YM^bnRzLx6?#R*B~vowyqQXqGPohpfe23lm_QGQbADb)YFJ^0iYmG8AK{WGKf@$xw}*lA#_uB||fIN@<2R*x|Ym)}Yx$uBNWEUKK+HYKr#Co?ZOr!*xsEi(r!pAneY!;zah1* zru49Sf`V*H4@-JZe$tfA9=43kl$6xGDV;sMP($DX9C@X=NvTDtDO0=|dbq%;vN%64 zr*cYX4_8rQIl?($F3g6Ea8TelXUKvBg*`($!=W@O5hWyh_@UvTTV9k{P>@or zVr715iEd76MP^<)SQc4BN#>NcDXAI3u~RfMN;1kaDpE5-y%{sYdbph7rcTL-=*Wod z%!umDi1ud4i0RCTjh&JapHYn*CcGKa8R_U@l95cOFpw`wO-n6G%}Y)#)=$sXEiOqc zN!2YWO3W+H1f`H-u)mQNm1JU71PzG^8I$1Q5Ck_FS2#>X4hNA8>5OKw!XXu&oIv>v znyV9GnG{6~DZ_FhN*Zw5WGziXGDxl*QpoC-BH&2L0oxv5P?Voulv)faby-XDOA>P+xe^p{If*6U zOj-&GUB({1!FgaJkdnNIqd2vsBr`9)cuJ2T$d}-{DXj=xKBi3RVGB#l zDNQYgmtZ|?`K2WVr6p7RGWh*^IMY+}Qi~Ex@{6YU^>C&nmZTP!B<2=O@$2D+SQwv^ znU_7quZIiDEiKBK;@87llAjz8ssli>#Z!7%LFGr~lpdk9{QQ!<{E}28NpHp;UQiX8 zSDG7Nk(OVSJH?x^hp)J#D6=3QnqP~j`1MFbL{f87L7BQZzC5!eBOX>0`StKZq!9u< zMX3e(MJ4e$sb#4-pkk3LBQXcgW$h76t;j5i2jz&;VwfV<9@do9q|)>$em#8UiA8yt zdFk=RB}J);xgg({6eT97f;=^)qlYguub{LfJ~b~nKLu2N^l+Azr0H7d7H6hU>5)N| zj882p$}ft~NX$#gNiCYv!v=C{a>T_=?h!(ToR)AdFXo8K06^k_bw#*{MZ(nW-gd zU^_q!sf?1`9Q`RhoF$1#@#UE*pcVs1k8DX%W^Oz@Z^AtgUt9o6A)P$}#g%y_i52k~ znduohnduoNQ+il(^7GQC^zantCKi>%7nbIOnu#4f!eBmx8=sS(oCs;8^vEV>Bo-wm zm!uX!GFyCR9ykbd6N|D-3#N2}+s)u+2ec6A?BPwxPtMFs%ZCbhGxi99%8BCABs6uI zxuC?Glb;C5il8QJ_LLrh)ZC=hl=$M3%AC~VjMUVUDV;r{$vOFn+3~5liJ3X^i76?d zQZ}`CN=J_%$mGoYy!hhOoHR(8*4e|HnpXyD3ioh8%92!2At;cUmy%hOnp_fJl30|U zT2c&Z5(^fWCKZ=tmXv~%O$w;tTRWvk2t^ds0tOZ7Ak)&|95zrEN&$M;+KK-sH>@a5@Ji z7l;Tbhr-lB9E~gjQ5QP}6xF#&`8n{^09GneT!|tGSIvoHA}7pNuqGiC^NULoi%LL6 zyC}L@P#K0EuFRD9BX|rFKf|l%Od+dEMQNj}W{VK@sML3xgw&8`|`Z&&f{*#T{1)sH6i2))YTb-Cdfb2LNn5f(rlu 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 59662fa62d2b79cd73998ad0b5a15d34b2444d1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25195 zcmZo*otluu00uq$#RVCec@=tzDJgmRDXGO%dN@+@lS^|`^Gc>no}$?}rFM!&4`)$g zd2xPeQF7{(9)>AB9LX7(IVnY{c~fGi^zea{mt^J?>p}Ii7pEqdWaj6=wP&zquw}5v zPSMEV>|rg*EXhellIl@#*Y! zB_y>1Rta*vK5Ee&DX#s+hl$e}dl$r)oQ`*B`l9&#X znv%hvA)UdKA(O$JA=?wFA6lGRRIHy|RGOQVldA6m4d!C~;^d6{{2YDfU`PF;oC5un z{N!T&;-X~zqSUn1qSUnAzwR1BSSHEN``Xmlnm9_DH-aqQ!+GT zr<7)BgT1T^QJ$fbA?M9rnv}uW!=IX0nwwgbSdy9&pOaY(ibt5+Ac-S`vxgHT5uaI- znv0x1tbFqGvr7vU5*5;O@{_$2oCS$RiRnd&1sTW&Tas-s#9Xl+3QRx*tv4jBhzVNH3|VlHa%M

tQP{ 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 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 21d8d00e5b1e418f52d340f1611a220dd7ad7ba3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30140 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 DT!5;i 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 b3e13fff2ce75dbed33bb0a6e72ba584f9c6be50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19923 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ 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 2548abe9f4cb7a2950ece39ff7ca519b43a0a6d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1478 zcmeAS@N?(olHy`uVBq!ia0y~yV6c{hwcdT;bWu#=yY9S>O>_%)r2R1cVu|I^tE8AYe6O$wBjD-ycY`jIVb;i`s}%Eb)K zuTDsb#=3@IJj(tilw0es$Rm*(w=aCWf7?qm)^&OlpQLi5N!wTZ6YCcJPPiWEsN?YH z1TTa3E|-!HPVTb{A4i3h$S(}eaB*LdskMv4ibHVT$%Kn%UZ_Z4lw7k`cyZ6OLt7Y+ zv_3ibCixJ`rzB-7s;BIwLZPoniFztc2$aPf6P~-YxVuz1O`dh<03CJZ^*h={ExgN zf5Y$%uL^TX_tzhf%VgC8;}7|jPh`$64L!}+JCn1aYWt0smaE_EOcOItIrc<#_J;$% zzFOT~x}aI)Zu)i4iAJ^yCUYsS$=F`zH=+CBmRI{4+G&9y3Kk$nKd0LUz=smuH(2BTq+Sbt>2GV@6=Mmoa3dZ zQyELTXB@k2_j*P2QP=OTWg&A9bZ@TdUwv+B(N2!Lc|Av>d3G@iN`#jhd^nZY?Ds(E zMOpF^H|a(`mk;|^amVbAUhvw7b9#ln+ot`Gp9Kp(zj{&Z4)@$Esu$iK^U#&r^Nrs{ zZT-0{u@dc)Z1FFvn0I$f+%xmVe6_@;6W3N7&;4$n-{y1vu)o{4*kl~kQfTvJ|d z{XSWyHczc4k7s9-)TV#slJolW)=rO~*3Mg$tdKTu%BkE~3y9}yk z8yjYq=$UVGyv}QBw6&Mn`lskFy^ebleX~0i&CPZndABcOb>6QH|4D6zx;xYJ3cOfi8xOW|Kr~^bLHem z|AkA$OXHU>Jgxoj_^U5ZrfU96pMBK3B!2k?Ao?_g1@?ve|#z*yRdN23IZ4t;n?R)7$s`&r%U3a(tKic(Qa>tV2RX5M< z)HL^WnjZV7Ke{BP+Dr8R=BB&X_uWz9yj%IPe!=U1ZM)u`c&Zcr=X_ULy#G@*&lg7B z|39951k$f@tJZefY?Xzlb^h6Ze%&Sd-#B31?_1MnZ{X4XczT^zAnT5n9BJ;(lO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ 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 a858a410e4faa62ce324d814e4b816fff83a6fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7o_e}ChEy=Fo!lJ6#wgPI zU9-A1=eok}ZEQDX(r(*2tb58m$7=u1ea82H)jeO=^6%fjou57xMW{G_5a*B3{pP}1 zS6~0}?_b_epFayX9PiZV3J_7<*U-z(&Te62!(wS=#r62dj~f93Q(yV3O;UNueM4ey zPF+*P_cxDwe?L<@A-VUOYxn_?IFqgAjDfX>&K+iC+ZOj{hWM55XBY3QXXIt>UXl5V zY32J_2KpZQFCE-8U%FHkYESx{HDO9L>%8Dl(|ry6XI@BV%vz@ZVSj$)G){LlpS0qd r#>Mpuckiw~`|AFW`^Ks}LhH4IH@r-6bi2gBz`)??>gTe~DWM4fp;vuF 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 d96755fdaf8bb2214971e0db9c1fd3077d7c419d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0y~yVBiK}4h9AWhMwaZzZe)86g^!WLn;`PEt(m4((N1$ qT5J54Rote=BCz_OtVqKR4hDwUH)%$B(trFwnmk?oT-G@yGywom%@%0@ diff --git a/doc/build/html/_static/plus.png b/doc/build/html/_static/plus.png deleted file mode 100644 index 7107cec93a979b9a5f64843235a16651d563ce2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0y~yVBiK}4h9AWhMwaZzZe)86g^!WLn;`PEt(m4((N1$ pT5Cj47Kj#R>InVM$K{a2!oZ-bm^kJ02L~3ACQnyCmvv4FO#meY6wUwu 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 3f7a6b855e6d00cfa5892e7d81bc176fa66b13df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmY#Z2rkIT%&Sny%qvUHE6FdaR47X=D$dN$Q!wIERtPA{&q_@$u~I0?QRh-t2!lvj zDR3z(gk+>D6s6`SX6B`&7AfSXDU@Vn7AvG>=A``R=RD)z3QS zUJKRMS8Ifx(D%8ww4bT*V43J9)_CVQ&fd&rE!RwrsLHkIop*4XHE%oDbL(x4uMaVn z91L@O9%R#L>?3siSlNm!&X$~&vW;qtDLG+_#C9EUX7ISNnCIG&>vq*QWj7yOx8=$S zr)?eE-+1)wV)@p0$-JY7XY;0ifBzMp>7I4LkaKbVrh6SL1MmL2sS!LUV_)7+ffwHE zd@p+R-1k@{oH=`%*5czg#q2LEI(PBs!s7SJit60AI@gs?|5xcGr7OLyHP@Q)_FwKB ztJlA})TE-PSK%dP{_u*}99_NFKe=B147gn<^Gx{blUwJ!xV;*mI-av_;TMpbkndkN zr$W}yNa@4UZ&O}ZFdj5+Pxzd*NAhp<`}^Da^A{XBV`>@|pP^q;@Uf})FLU>-RptO} C59P@K 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