From 3856cb691f4e2fc1470dbe087dc00f41367f59e0 Mon Sep 17 00:00:00 2001 From: turtlebasket Date: Thu, 1 Dec 2022 18:35:27 -0800 Subject: [PATCH] stufff --- .gitignore | 1 + CMakeLists.txt | 3 +- Pipfile | 13 + Pipfile.lock | 684 +++++++++++++++++++++++++++++++++++++++++++++++++ models-1.ipynb | 97 +++++++ pop-simple.hpp | 76 +++--- sim.i | 1 + 7 files changed, 831 insertions(+), 44 deletions(-) create mode 100644 Pipfile create mode 100644 Pipfile.lock create mode 100644 models-1.ipynb diff --git a/.gitignore b/.gitignore index 85569c8..eaef238 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ !scripts/ !.gitignore +!*.ipynb sim.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 39f5126..7ded449 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ -cmake_minimum_required(VERSION 3.25) +# cmake_minimum_required(VERSION 3.25) project(sim_econ_model) include_directories(include/) +set(CMAKE_CXX_COMPILER /usr/bin/g++) find_package(SWIG 4.0 REQUIRED COMPONENTS python) include(UseSWIG) diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..2e59399 --- /dev/null +++ b/Pipfile @@ -0,0 +1,13 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +matplotlib = "*" +ipykernel = "*" + +[dev-packages] + +[requires] +python_version = "3.10" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..fe23205 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,684 @@ +{ + "_meta": { + "hash": { + "sha256": "106a8841f752e3da86108a07bc1b1930456ee44453eda70b157aaece14a983c5" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.10" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "asttokens": { + "hashes": [ + "sha256:c56caef774a929923696f09ceea0eadcb95c94b30e8ee4f9fc4f5867096caaeb", + "sha256:e27b1f115daebfafd4d1826fc75f9a72f0b74bd3ae4ee4d9380406d74d35e52c" + ], + "version": "==2.2.0" + }, + "backcall": { + "hashes": [ + "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e", + "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255" + ], + "version": "==0.2.0" + }, + "contourpy": { + "hashes": [ + "sha256:0236875c5a0784215b49d00ebbe80c5b6b5d5244b3655a36dda88105334dea17", + "sha256:03d1b9c6b44a9e30d554654c72be89af94fab7510b4b9f62356c64c81cec8b7d", + "sha256:0537cc1195245bbe24f2913d1f9211b8f04eb203de9044630abd3664c6cc339c", + "sha256:06ca79e1efbbe2df795822df2fa173d1a2b38b6e0f047a0ec7903fbca1d1847e", + "sha256:08e8d09d96219ace6cb596506fb9b64ea5f270b2fb9121158b976d88871fcfd1", + "sha256:0b1e66346acfb17694d46175a0cea7d9036f12ed0c31dfe86f0f405eedde2bdd", + "sha256:0b97454ed5b1368b66ed414c754cba15b9750ce69938fc6153679787402e4cdf", + "sha256:0e4854cc02006ad6684ce092bdadab6f0912d131f91c2450ce6dbdea78ee3c0b", + "sha256:12a7dc8439544ed05c6553bf026d5e8fa7fad48d63958a95d61698df0e00092b", + "sha256:1b1ee48a130da4dd0eb8055bbab34abf3f6262957832fd575e0cab4979a15a41", + "sha256:1c0e1308307a75e07d1f1b5f0f56b5af84538a5e9027109a7bcf6cb47c434e72", + "sha256:1dedf4c64185a216c35eb488e6f433297c660321275734401760dafaeb0ad5c2", + "sha256:208bc904889c910d95aafcf7be9e677726df9ef71e216780170dbb7e37d118fa", + "sha256:211dfe2bd43bf5791d23afbe23a7952e8ac8b67591d24be3638cabb648b3a6eb", + "sha256:341330ed19074f956cb20877ad8d2ae50e458884bfa6a6df3ae28487cc76c768", + "sha256:344cb3badf6fc7316ad51835f56ac387bdf86c8e1b670904f18f437d70da4183", + "sha256:358f6364e4873f4d73360b35da30066f40387dd3c427a3e5432c6b28dd24a8fa", + "sha256:371f6570a81dfdddbb837ba432293a63b4babb942a9eb7aaa699997adfb53278", + "sha256:375d81366afd547b8558c4720337218345148bc2fcffa3a9870cab82b29667f2", + "sha256:3a1917d3941dd58732c449c810fa7ce46cc305ce9325a11261d740118b85e6f3", + "sha256:4081918147fc4c29fad328d5066cfc751da100a1098398742f9f364be63803fc", + "sha256:444fb776f58f4906d8d354eb6f6ce59d0a60f7b6a720da6c1ccb839db7c80eb9", + "sha256:46deb310a276cc5c1fd27958e358cce68b1e8a515fa5a574c670a504c3a3fe30", + "sha256:494efed2c761f0f37262815f9e3c4bb9917c5c69806abdee1d1cb6611a7174a0", + "sha256:50627bf76abb6ba291ad08db583161939c2c5fab38c38181b7833423ab9c7de3", + "sha256:5641927cc5ae66155d0c80195dc35726eae060e7defc18b7ab27600f39dd1fe7", + "sha256:5b117d29433fc8393b18a696d794961464e37afb34a6eeb8b2c37b5f4128a83e", + "sha256:613c665529899b5d9fade7e5d1760111a0b011231277a0d36c49f0d3d6914bd6", + "sha256:6e459ebb8bb5ee4c22c19cc000174f8059981971a33ce11e17dddf6aca97a142", + "sha256:6f56515e7c6fae4529b731f6c117752247bef9cdad2b12fc5ddf8ca6a50965a5", + "sha256:730c27978a0003b47b359935478b7d63fd8386dbb2dcd36c1e8de88cbfc1e9de", + "sha256:75a2e638042118118ab39d337da4c7908c1af74a8464cad59f19fbc5bbafec9b", + "sha256:78ced51807ccb2f45d4ea73aca339756d75d021069604c2fccd05390dc3c28eb", + "sha256:7ee394502026d68652c2824348a40bf50f31351a668977b51437131a90d777ea", + "sha256:8468b40528fa1e15181cccec4198623b55dcd58306f8815a793803f51f6c474a", + "sha256:84c593aeff7a0171f639da92cb86d24954bbb61f8a1b530f74eb750a14685832", + "sha256:913bac9d064cff033cf3719e855d4f1db9f1c179e0ecf3ba9fdef21c21c6a16a", + "sha256:9447c45df407d3ecb717d837af3b70cfef432138530712263730783b3d016512", + "sha256:9b0e7fe7f949fb719b206548e5cde2518ffb29936afa4303d8a1c4db43dcb675", + "sha256:9bc407a6af672da20da74823443707e38ece8b93a04009dca25856c2d9adadb1", + "sha256:9e8e686a6db92a46111a1ee0ee6f7fbfae4048f0019de207149f43ac1812cf95", + "sha256:9fc4e7973ed0e1fe689435842a6e6b330eb7ccc696080dda9a97b1a1b78e41db", + "sha256:a457ee72d9032e86730f62c5eeddf402e732fdf5ca8b13b41772aa8ae13a4563", + "sha256:a628bba09ba72e472bf7b31018b6281fd4cc903f0888049a3724afba13b6e0b8", + "sha256:a79d239fc22c3b8d9d3de492aa0c245533f4f4c7608e5749af866949c0f1b1b9", + "sha256:aa4674cf3fa2bd9c322982644967f01eed0c91bb890f624e0e0daf7a5c3383e9", + "sha256:acd2bd02f1a7adff3a1f33e431eb96ab6d7987b039d2946a9b39fe6fb16a1036", + "sha256:b3b1bd7577c530eaf9d2bc52d1a93fef50ac516a8b1062c3d1b9bcec9ebe329b", + "sha256:b48d94386f1994db7c70c76b5808c12e23ed7a4ee13693c2fc5ab109d60243c0", + "sha256:b64f747e92af7da3b85631a55d68c45a2d728b4036b03cdaba4bd94bcc85bd6f", + "sha256:b98c820608e2dca6442e786817f646d11057c09a23b68d2b3737e6dcb6e4a49b", + "sha256:c1baa49ab9fedbf19d40d93163b7d3e735d9cd8d5efe4cce9907902a6dad391f", + "sha256:c38c6536c2d71ca2f7e418acaf5bca30a3af7f2a2fa106083c7d738337848dbe", + "sha256:c78bfbc1a7bff053baf7e508449d2765964d67735c909b583204e3240a2aca45", + "sha256:cd2bc0c8f2e8de7dd89a7f1c10b8844e291bca17d359373203ef2e6100819edd", + "sha256:d2eff2af97ea0b61381828b1ad6cd249bbd41d280e53aea5cccd7b2b31b8225c", + "sha256:d8834c14b8c3dd849005e06703469db9bf96ba2d66a3f88ecc539c9a8982e0ee", + "sha256:d912f0154a20a80ea449daada904a7eb6941c83281a9fab95de50529bfc3a1da", + "sha256:da1ef35fd79be2926ba80fbb36327463e3656c02526e9b5b4c2b366588b74d9a", + "sha256:dbe6fe7a1166b1ddd7b6d887ea6fa8389d3f28b5ed3f73a8f40ece1fc5a3d340", + "sha256:dcd556c8fc37a342dd636d7eef150b1399f823a4462f8c968e11e1ebeabee769", + "sha256:e13b31d1b4b68db60b3b29f8e337908f328c7f05b9add4b1b5c74e0691180109", + "sha256:e1739496c2f0108013629aa095cc32a8c6363444361960c07493818d0dea2da4", + "sha256:e43255a83835a129ef98f75d13d643844d8c646b258bebd11e4a0975203e018f", + "sha256:e626cefff8491bce356221c22af5a3ea528b0b41fbabc719c00ae233819ea0bf", + "sha256:eadad75bf91897f922e0fb3dca1b322a58b1726a953f98c2e5f0606bd8408621", + "sha256:f33da6b5d19ad1bb5e7ad38bb8ba5c426d2178928bc2b2c44e8823ea0ecb6ff3", + "sha256:f4052a8a4926d4468416fc7d4b2a7b2a3e35f25b39f4061a7e2a3a2748c4fc48", + "sha256:f6ca38dd8d988eca8f07305125dec6f54ac1c518f1aaddcc14d08c01aebb6efc" + ], + "markers": "python_version >= '3.7'", + "version": "==1.0.6" + }, + "cycler": { + "hashes": [ + "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3", + "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f" + ], + "markers": "python_version >= '3.6'", + "version": "==0.11.0" + }, + "debugpy": { + "hashes": [ + "sha256:143f79d0798a9acea21cd1d111badb789f19d414aec95fa6389cfea9485ddfb1", + "sha256:1caee68f7e254267df908576c0d0938f8f88af16383f172cb9f0602e24c30c01", + "sha256:2a39e7da178e1f22f4bc04b57f085e785ed1bcf424aaf318835a1a7129eefe35", + "sha256:3d9c31baf64bf959a593996c108e911c5a9aa1693a296840e5469473f064bcec", + "sha256:40e2a83d31a16b83666f19fa06d97b2cc311af88e6266590579737949971a17e", + "sha256:4ab5e938925e5d973f567d6ef32751b17d10f3be3a8c4d73c52f53e727f69bf1", + "sha256:563f148f94434365ec0ce94739c749aabf60bf67339e68a9446499f3582d62f3", + "sha256:62ba4179b372a62abf9c89b56997d70a4100c6dea6c2a4e0e4be5f45920b3253", + "sha256:67edf033f9e512958f7b472975ff9d9b7ff64bf4440f6f6ae44afdc66b89e6b6", + "sha256:6ae238943482c78867ac707c09122688efb700372b617ffd364261e5e41f7a2f", + "sha256:82229790442856962aec4767b98ba2559fe0998f897e9f21fb10b4fd24b6c436", + "sha256:86bd25f38f8b6c5d430a5e2931eebbd5f580c640f4819fcd236d0498790c7204", + "sha256:d2968e589bda4e485a9c61f113754a28e48d88c5152ed8e0b2564a1fadbe50a5", + "sha256:d5ab9bd3f4e7faf3765fd52c7c43c074104ab1e109621dc73219099ed1a5399d", + "sha256:d8df268e9f72fc06efc2e75e8dc8e2b881d6a397356faec26efb2ee70b6863b7", + "sha256:e62b8034ede98932b92268669318848a0d42133d857087a3b9cec03bb844c615", + "sha256:e886a1296cd20a10172e94788009ce74b759e54229ebd64a43fa5c2b4e62cd76", + "sha256:ea4bf208054e6d41749f17612066da861dff10102729d32c85b47f155223cf2b" + ], + "markers": "python_version >= '3.7'", + "version": "==1.6.4" + }, + "decorator": { + "hashes": [ + "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", + "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" + ], + "markers": "python_version >= '3.5'", + "version": "==5.1.1" + }, + "entrypoints": { + "hashes": [ + "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4", + "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f" + ], + "markers": "python_version >= '3.6'", + "version": "==0.4" + }, + "executing": { + "hashes": [ + "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc", + "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107" + ], + "version": "==1.2.0" + }, + "fonttools": { + "hashes": [ + "sha256:2bb244009f9bf3fa100fc3ead6aeb99febe5985fa20afbfbaa2f8946c2fbdaf1", + "sha256:820466f43c8be8c3009aef8b87e785014133508f0de64ec469e4efb643ae54fb" + ], + "markers": "python_version >= '3.7'", + "version": "==4.38.0" + }, + "ipykernel": { + "hashes": [ + "sha256:3a9a1b2ad6dbbd5879855aabb4557f08e63fa2208bffed897f03070e2bb436f6", + "sha256:e178c1788399f93a459c241fe07c3b810771c607b1fb064a99d2c5d40c90c5d4" + ], + "index": "pypi", + "version": "==6.17.1" + }, + "ipython": { + "hashes": [ + "sha256:352042ddcb019f7c04e48171b4dd78e4c4bb67bf97030d170e154aac42b656d9", + "sha256:882899fe78d5417a0aa07f995db298fa28b58faeba2112d2e3a4c95fe14bb738" + ], + "markers": "python_version >= '3.8'", + "version": "==8.7.0" + }, + "jedi": { + "hashes": [ + "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e", + "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612" + ], + "markers": "python_version >= '3.6'", + "version": "==0.18.2" + }, + "jupyter-client": { + "hashes": [ + "sha256:330f6b627e0b4bf2f54a3a0dd9e4a22d2b649c8518168afedce2c96a1ceb2860", + "sha256:df56ae23b8e1da1b66f89dee1368e948b24a7f780fa822c5735187589fc4c157" + ], + "markers": "python_version >= '3.7'", + "version": "==7.4.7" + }, + "jupyter-core": { + "hashes": [ + "sha256:a5ae7c09c55c0b26f692ec69323ba2b62e8d7295354d20f6cd57b749de4a05bf", + "sha256:f5740d99606958544396914b08e67b668f45e7eff99ab47a7f4bcead419c02f4" + ], + "markers": "python_version >= '3.8'", + "version": "==5.1.0" + }, + "kiwisolver": { + "hashes": [ + "sha256:02f79693ec433cb4b5f51694e8477ae83b3205768a6fb48ffba60549080e295b", + "sha256:03baab2d6b4a54ddbb43bba1a3a2d1627e82d205c5cf8f4c924dc49284b87166", + "sha256:1041feb4cda8708ce73bb4dcb9ce1ccf49d553bf87c3954bdfa46f0c3f77252c", + "sha256:10ee06759482c78bdb864f4109886dff7b8a56529bc1609d4f1112b93fe6423c", + "sha256:1d1573129aa0fd901076e2bfb4275a35f5b7aa60fbfb984499d661ec950320b0", + "sha256:283dffbf061a4ec60391d51e6155e372a1f7a4f5b15d59c8505339454f8989e4", + "sha256:28bc5b299f48150b5f822ce68624e445040595a4ac3d59251703779836eceff9", + "sha256:2a66fdfb34e05b705620dd567f5a03f239a088d5a3f321e7b6ac3239d22aa286", + "sha256:2e307eb9bd99801f82789b44bb45e9f541961831c7311521b13a6c85afc09767", + "sha256:2e407cb4bd5a13984a6c2c0fe1845e4e41e96f183e5e5cd4d77a857d9693494c", + "sha256:2f5e60fabb7343a836360c4f0919b8cd0d6dbf08ad2ca6b9cf90bf0c76a3c4f6", + "sha256:36dafec3d6d6088d34e2de6b85f9d8e2324eb734162fba59d2ba9ed7a2043d5b", + "sha256:3fe20f63c9ecee44560d0e7f116b3a747a5d7203376abeea292ab3152334d004", + "sha256:41dae968a94b1ef1897cb322b39360a0812661dba7c682aa45098eb8e193dbdf", + "sha256:4bd472dbe5e136f96a4b18f295d159d7f26fd399136f5b17b08c4e5f498cd494", + "sha256:4ea39b0ccc4f5d803e3337dd46bcce60b702be4d86fd0b3d7531ef10fd99a1ac", + "sha256:5853eb494c71e267912275e5586fe281444eb5e722de4e131cddf9d442615626", + "sha256:5bce61af018b0cb2055e0e72e7d65290d822d3feee430b7b8203d8a855e78766", + "sha256:6295ecd49304dcf3bfbfa45d9a081c96509e95f4b9d0eb7ee4ec0530c4a96514", + "sha256:62ac9cc684da4cf1778d07a89bf5f81b35834cb96ca523d3a7fb32509380cbf6", + "sha256:70e7c2e7b750585569564e2e5ca9845acfaa5da56ac46df68414f29fea97be9f", + "sha256:7577c1987baa3adc4b3c62c33bd1118c3ef5c8ddef36f0f2c950ae0b199e100d", + "sha256:75facbe9606748f43428fc91a43edb46c7ff68889b91fa31f53b58894503a191", + "sha256:787518a6789009c159453da4d6b683f468ef7a65bbde796bcea803ccf191058d", + "sha256:78d6601aed50c74e0ef02f4204da1816147a6d3fbdc8b3872d263338a9052c51", + "sha256:7c43e1e1206cd421cd92e6b3280d4385d41d7166b3ed577ac20444b6995a445f", + "sha256:81e38381b782cc7e1e46c4e14cd997ee6040768101aefc8fa3c24a4cc58e98f8", + "sha256:841293b17ad704d70c578f1f0013c890e219952169ce8a24ebc063eecf775454", + "sha256:872b8ca05c40d309ed13eb2e582cab0c5a05e81e987ab9c521bf05ad1d5cf5cb", + "sha256:877272cf6b4b7e94c9614f9b10140e198d2186363728ed0f701c6eee1baec1da", + "sha256:8c808594c88a025d4e322d5bb549282c93c8e1ba71b790f539567932722d7bd8", + "sha256:8ed58b8acf29798b036d347791141767ccf65eee7f26bde03a71c944449e53de", + "sha256:91672bacaa030f92fc2f43b620d7b337fd9a5af28b0d6ed3f77afc43c4a64b5a", + "sha256:968f44fdbf6dd757d12920d63b566eeb4d5b395fd2d00d29d7ef00a00582aac9", + "sha256:9f85003f5dfa867e86d53fac6f7e6f30c045673fa27b603c397753bebadc3008", + "sha256:a553dadda40fef6bfa1456dc4be49b113aa92c2a9a9e8711e955618cd69622e3", + "sha256:a68b62a02953b9841730db7797422f983935aeefceb1679f0fc85cbfbd311c32", + "sha256:abbe9fa13da955feb8202e215c4018f4bb57469b1b78c7a4c5c7b93001699938", + "sha256:ad881edc7ccb9d65b0224f4e4d05a1e85cf62d73aab798943df6d48ab0cd79a1", + "sha256:b1792d939ec70abe76f5054d3f36ed5656021dcad1322d1cc996d4e54165cef9", + "sha256:b428ef021242344340460fa4c9185d0b1f66fbdbfecc6c63eff4b7c29fad429d", + "sha256:b533558eae785e33e8c148a8d9921692a9fe5aa516efbdff8606e7d87b9d5824", + "sha256:ba59c92039ec0a66103b1d5fe588fa546373587a7d68f5c96f743c3396afc04b", + "sha256:bc8d3bd6c72b2dd9decf16ce70e20abcb3274ba01b4e1c96031e0c4067d1e7cd", + "sha256:bc9db8a3efb3e403e4ecc6cd9489ea2bac94244f80c78e27c31dcc00d2790ac2", + "sha256:bf7d9fce9bcc4752ca4a1b80aabd38f6d19009ea5cbda0e0856983cf6d0023f5", + "sha256:c2dbb44c3f7e6c4d3487b31037b1bdbf424d97687c1747ce4ff2895795c9bf69", + "sha256:c79ebe8f3676a4c6630fd3f777f3cfecf9289666c84e775a67d1d358578dc2e3", + "sha256:c97528e64cb9ebeff9701e7938653a9951922f2a38bd847787d4a8e498cc83ae", + "sha256:d0611a0a2a518464c05ddd5a3a1a0e856ccc10e67079bb17f265ad19ab3c7597", + "sha256:d06adcfa62a4431d404c31216f0f8ac97397d799cd53800e9d3efc2fbb3cf14e", + "sha256:d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955", + "sha256:d5b61785a9ce44e5a4b880272baa7cf6c8f48a5180c3e81c59553ba0cb0821ca", + "sha256:da152d8cdcab0e56e4f45eb08b9aea6455845ec83172092f09b0e077ece2cf7a", + "sha256:da7e547706e69e45d95e116e6939488d62174e033b763ab1496b4c29b76fabea", + "sha256:db5283d90da4174865d520e7366801a93777201e91e79bacbac6e6927cbceede", + "sha256:db608a6757adabb32f1cfe6066e39b3706d8c3aa69bbc353a5b61edad36a5cb4", + "sha256:e0ea21f66820452a3f5d1655f8704a60d66ba1191359b96541eaf457710a5fc6", + "sha256:e7da3fec7408813a7cebc9e4ec55afed2d0fd65c4754bc376bf03498d4e92686", + "sha256:e92a513161077b53447160b9bd8f522edfbed4bd9759e4c18ab05d7ef7e49408", + "sha256:ecb1fa0db7bf4cff9dac752abb19505a233c7f16684c5826d1f11ebd9472b871", + "sha256:efda5fc8cc1c61e4f639b8067d118e742b812c930f708e6667a5ce0d13499e29", + "sha256:f0a1dbdb5ecbef0d34eb77e56fcb3e95bbd7e50835d9782a45df81cc46949750", + "sha256:f0a71d85ecdd570ded8ac3d1c0f480842f49a40beb423bb8014539a9f32a5897", + "sha256:f4f270de01dd3e129a72efad823da90cc4d6aafb64c410c9033aba70db9f1ff0", + "sha256:f6cb459eea32a4e2cf18ba5fcece2dbdf496384413bc1bae15583f19e567f3b2", + "sha256:f8ad8285b01b0d4695102546b342b493b3ccc6781fc28c8c6a1bb63e95d22f09", + "sha256:f9f39e2f049db33a908319cf46624a569b36983c7c78318e9726a4cb8923b26c" + ], + "markers": "python_version >= '3.7'", + "version": "==1.4.4" + }, + "matplotlib": { + "hashes": [ + "sha256:0844523dfaaff566e39dbfa74e6f6dc42e92f7a365ce80929c5030b84caa563a", + "sha256:0eda9d1b43f265da91fb9ae10d6922b5a986e2234470a524e6b18f14095b20d2", + "sha256:168093410b99f647ba61361b208f7b0d64dde1172b5b1796d765cd243cadb501", + "sha256:1836f366272b1557a613f8265db220eb8dd883202bbbabe01bad5a4eadfd0c95", + "sha256:19d61ee6414c44a04addbe33005ab1f87539d9f395e25afcbe9a3c50ce77c65c", + "sha256:252957e208c23db72ca9918cb33e160c7833faebf295aaedb43f5b083832a267", + "sha256:32d29c8c26362169c80c5718ce367e8c64f4dd068a424e7110df1dd2ed7bd428", + "sha256:380d48c15ec41102a2b70858ab1dedfa33eb77b2c0982cb65a200ae67a48e9cb", + "sha256:3964934731fd7a289a91d315919cf757f293969a4244941ab10513d2351b4e83", + "sha256:3cef89888a466228fc4e4b2954e740ce8e9afde7c4315fdd18caa1b8de58ca17", + "sha256:4426c74761790bff46e3d906c14c7aab727543293eed5a924300a952e1a3a3c1", + "sha256:5024b8ed83d7f8809982d095d8ab0b179bebc07616a9713f86d30cf4944acb73", + "sha256:52c2bdd7cd0bf9d5ccdf9c1816568fd4ccd51a4d82419cc5480f548981b47dd0", + "sha256:54fa9fe27f5466b86126ff38123261188bed568c1019e4716af01f97a12fe812", + "sha256:5ba73aa3aca35d2981e0b31230d58abb7b5d7ca104e543ae49709208d8ce706a", + "sha256:5e16dcaecffd55b955aa5e2b8a804379789c15987e8ebd2f32f01398a81e975b", + "sha256:5ecfc6559132116dedfc482d0ad9df8a89dc5909eebffd22f3deb684132d002f", + "sha256:74153008bd24366cf099d1f1e83808d179d618c4e32edb0d489d526523a94d9f", + "sha256:78ec3c3412cf277e6252764ee4acbdbec6920cc87ad65862272aaa0e24381eee", + "sha256:795ad83940732b45d39b82571f87af0081c120feff2b12e748d96bb191169e33", + "sha256:7f716b6af94dc1b6b97c46401774472f0867e44595990fe80a8ba390f7a0a028", + "sha256:83dc89c5fd728fdb03b76f122f43b4dcee8c61f1489e232d9ad0f58020523e1c", + "sha256:8a0ae37576ed444fe853709bdceb2be4c7df6f7acae17b8378765bd28e61b3ae", + "sha256:8a8dbe2cb7f33ff54b16bb5c500673502a35f18ac1ed48625e997d40c922f9cc", + "sha256:8a9d899953c722b9afd7e88dbefd8fb276c686c3116a43c577cfabf636180558", + "sha256:8d0068e40837c1d0df6e3abf1cdc9a34a6d2611d90e29610fa1d2455aeb4e2e5", + "sha256:9347cc6822f38db2b1d1ce992f375289670e595a2d1c15961aacbe0977407dfc", + "sha256:9f335e5625feb90e323d7e3868ec337f7b9ad88b5d633f876e3b778813021dab", + "sha256:b03fd10a1709d0101c054883b550f7c4c5e974f751e2680318759af005964990", + "sha256:b0ca2c60d3966dfd6608f5f8c49b8a0fcf76de6654f2eda55fc6ef038d5a6f27", + "sha256:b2604c6450f9dd2c42e223b1f5dca9643a23cfecc9fde4a94bb38e0d2693b136", + "sha256:ca0e7a658fbafcddcaefaa07ba8dae9384be2343468a8e011061791588d839fa", + "sha256:d0e9ac04065a814d4cf2c6791a2ad563f739ae3ae830d716d54245c2b96fead6", + "sha256:d50e8c1e571ee39b5dfbc295c11ad65988879f68009dd281a6e1edbc2ff6c18c", + "sha256:d840adcad7354be6f2ec28d0706528b0026e4c3934cc6566b84eac18633eab1b", + "sha256:e0bbee6c2a5bf2a0017a9b5e397babb88f230e6f07c3cdff4a4c4bc75ed7c617", + "sha256:e5afe0a7ea0e3a7a257907060bee6724a6002b7eec55d0db16fd32409795f3e1", + "sha256:e68be81cd8c22b029924b6d0ee814c337c0e706b8d88495a617319e5dd5441c3", + "sha256:ec9be0f4826cdb3a3a517509dcc5f87f370251b76362051ab59e42b6b765f8c4", + "sha256:f04f97797df35e442ed09f529ad1235d1f1c0f30878e2fe09a2676b71a8801e0", + "sha256:f41e57ad63d336fe50d3a67bb8eaa26c09f6dda6a59f76777a99b8ccd8e26aec" + ], + "index": "pypi", + "version": "==3.6.2" + }, + "matplotlib-inline": { + "hashes": [ + "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311", + "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304" + ], + "markers": "python_version >= '3.5'", + "version": "==0.1.6" + }, + "nest-asyncio": { + "hashes": [ + "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8", + "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290" + ], + "markers": "python_version >= '3.5'", + "version": "==1.5.6" + }, + "numpy": { + "hashes": [ + "sha256:01dd17cbb340bf0fc23981e52e1d18a9d4050792e8fb8363cecbf066a84b827d", + "sha256:06005a2ef6014e9956c09ba07654f9837d9e26696a0470e42beedadb78c11b07", + "sha256:09b7847f7e83ca37c6e627682f145856de331049013853f344f37b0c9690e3df", + "sha256:0aaee12d8883552fadfc41e96b4c82ee7d794949e2a7c3b3a7201e968c7ecab9", + "sha256:0cbe9848fad08baf71de1a39e12d1b6310f1d5b2d0ea4de051058e6e1076852d", + "sha256:1b1766d6f397c18153d40015ddfc79ddb715cabadc04d2d228d4e5a8bc4ded1a", + "sha256:33161613d2269025873025b33e879825ec7b1d831317e68f4f2f0f84ed14c719", + "sha256:5039f55555e1eab31124a5768898c9e22c25a65c1e0037f4d7c495a45778c9f2", + "sha256:522e26bbf6377e4d76403826ed689c295b0b238f46c28a7251ab94716da0b280", + "sha256:56e454c7833e94ec9769fa0f86e6ff8e42ee38ce0ce1fa4cbb747ea7e06d56aa", + "sha256:58f545efd1108e647604a1b5aa809591ccd2540f468a880bedb97247e72db387", + "sha256:5e05b1c973a9f858c74367553e236f287e749465f773328c8ef31abe18f691e1", + "sha256:7903ba8ab592b82014713c491f6c5d3a1cde5b4a3bf116404e08f5b52f6daf43", + "sha256:8969bfd28e85c81f3f94eb4a66bc2cf1dbdc5c18efc320af34bffc54d6b1e38f", + "sha256:92c8c1e89a1f5028a4c6d9e3ccbe311b6ba53694811269b992c0b224269e2398", + "sha256:9c88793f78fca17da0145455f0d7826bcb9f37da4764af27ac945488116efe63", + "sha256:a7ac231a08bb37f852849bbb387a20a57574a97cfc7b6cabb488a4fc8be176de", + "sha256:abdde9f795cf292fb9651ed48185503a2ff29be87770c3b8e2a14b0cd7aa16f8", + "sha256:af1da88f6bc3d2338ebbf0e22fe487821ea4d8e89053e25fa59d1d79786e7481", + "sha256:b2a9ab7c279c91974f756c84c365a669a887efa287365a8e2c418f8b3ba73fb0", + "sha256:bf837dc63ba5c06dc8797c398db1e223a466c7ece27a1f7b5232ba3466aafe3d", + "sha256:ca51fcfcc5f9354c45f400059e88bc09215fb71a48d3768fb80e357f3b457e1e", + "sha256:ce571367b6dfe60af04e04a1834ca2dc5f46004ac1cc756fb95319f64c095a96", + "sha256:d208a0f8729f3fb790ed18a003f3a57895b989b40ea4dce4717e9cf4af62c6bb", + "sha256:dbee87b469018961d1ad79b1a5d50c0ae850000b639bcb1b694e9981083243b6", + "sha256:e9f4c4e51567b616be64e05d517c79a8a22f3606499941d97bb76f2ca59f982d", + "sha256:f063b69b090c9d918f9df0a12116029e274daf0181df392839661c4c7ec9018a", + "sha256:f9a909a8bae284d46bbfdefbdd4a262ba19d3bc9921b1e76126b1d21c3c34135" + ], + "markers": "python_version >= '3.8'", + "version": "==1.23.5" + }, + "packaging": { + "hashes": [ + "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", + "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" + ], + "markers": "python_version >= '3.6'", + "version": "==21.3" + }, + "parso": { + "hashes": [ + "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0", + "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75" + ], + "markers": "python_version >= '3.6'", + "version": "==0.8.3" + }, + "pexpect": { + "hashes": [ + "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937", + "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c" + ], + "markers": "sys_platform != 'win32'", + "version": "==4.8.0" + }, + "pickleshare": { + "hashes": [ + "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", + "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56" + ], + "version": "==0.7.5" + }, + "pillow": { + "hashes": [ + "sha256:03150abd92771742d4a8cd6f2fa6246d847dcd2e332a18d0c15cc75bf6703040", + "sha256:073adb2ae23431d3b9bcbcff3fe698b62ed47211d0716b067385538a1b0f28b8", + "sha256:0b07fffc13f474264c336298d1b4ce01d9c5a011415b79d4ee5527bb69ae6f65", + "sha256:0b7257127d646ff8676ec8a15520013a698d1fdc48bc2a79ba4e53df792526f2", + "sha256:12ce4932caf2ddf3e41d17fc9c02d67126935a44b86df6a206cf0d7161548627", + "sha256:15c42fb9dea42465dfd902fb0ecf584b8848ceb28b41ee2b58f866411be33f07", + "sha256:18498994b29e1cf86d505edcb7edbe814d133d2232d256db8c7a8ceb34d18cef", + "sha256:1c7c8ae3864846fc95f4611c78129301e203aaa2af813b703c55d10cc1628535", + "sha256:22b012ea2d065fd163ca096f4e37e47cd8b59cf4b0fd47bfca6abb93df70b34c", + "sha256:276a5ca930c913f714e372b2591a22c4bd3b81a418c0f6635ba832daec1cbcfc", + "sha256:2e0918e03aa0c72ea56edbb00d4d664294815aa11291a11504a377ea018330d3", + "sha256:3033fbe1feb1b59394615a1cafaee85e49d01b51d54de0cbf6aa8e64182518a1", + "sha256:3168434d303babf495d4ba58fc22d6604f6e2afb97adc6a423e917dab828939c", + "sha256:32a44128c4bdca7f31de5be641187367fe2a450ad83b833ef78910397db491aa", + "sha256:3dd6caf940756101205dffc5367babf288a30043d35f80936f9bfb37f8355b32", + "sha256:40e1ce476a7804b0fb74bcfa80b0a2206ea6a882938eaba917f7a0f004b42502", + "sha256:41e0051336807468be450d52b8edd12ac60bebaa97fe10c8b660f116e50b30e4", + "sha256:4390e9ce199fc1951fcfa65795f239a8a4944117b5935a9317fb320e7767b40f", + "sha256:502526a2cbfa431d9fc2a079bdd9061a2397b842bb6bc4239bb176da00993812", + "sha256:51e0e543a33ed92db9f5ef69a0356e0b1a7a6b6a71b80df99f1d181ae5875636", + "sha256:57751894f6618fd4308ed8e0c36c333e2f5469744c34729a27532b3db106ee20", + "sha256:5d77adcd56a42d00cc1be30843d3426aa4e660cab4a61021dc84467123f7a00c", + "sha256:655a83b0058ba47c7c52e4e2df5ecf484c1b0b0349805896dd350cbc416bdd91", + "sha256:68943d632f1f9e3dce98908e873b3a090f6cba1cbb1b892a9e8d97c938871fbe", + "sha256:6c738585d7a9961d8c2821a1eb3dcb978d14e238be3d70f0a706f7fa9316946b", + "sha256:73bd195e43f3fadecfc50c682f5055ec32ee2c933243cafbfdec69ab1aa87cad", + "sha256:772a91fc0e03eaf922c63badeca75e91baa80fe2f5f87bdaed4280662aad25c9", + "sha256:77ec3e7be99629898c9a6d24a09de089fa5356ee408cdffffe62d67bb75fdd72", + "sha256:7db8b751ad307d7cf238f02101e8e36a128a6cb199326e867d1398067381bff4", + "sha256:801ec82e4188e935c7f5e22e006d01611d6b41661bba9fe45b60e7ac1a8f84de", + "sha256:82409ffe29d70fd733ff3c1025a602abb3e67405d41b9403b00b01debc4c9a29", + "sha256:828989c45c245518065a110434246c44a56a8b2b2f6347d1409c787e6e4651ee", + "sha256:829f97c8e258593b9daa80638aee3789b7df9da5cf1336035016d76f03b8860c", + "sha256:871b72c3643e516db4ecf20efe735deb27fe30ca17800e661d769faab45a18d7", + "sha256:89dca0ce00a2b49024df6325925555d406b14aa3efc2f752dbb5940c52c56b11", + "sha256:90fb88843d3902fe7c9586d439d1e8c05258f41da473952aa8b328d8b907498c", + "sha256:97aabc5c50312afa5e0a2b07c17d4ac5e865b250986f8afe2b02d772567a380c", + "sha256:9aaa107275d8527e9d6e7670b64aabaaa36e5b6bd71a1015ddd21da0d4e06448", + "sha256:9f47eabcd2ded7698106b05c2c338672d16a6f2a485e74481f524e2a23c2794b", + "sha256:a0a06a052c5f37b4ed81c613a455a81f9a3a69429b4fd7bb913c3fa98abefc20", + "sha256:ab388aaa3f6ce52ac1cb8e122c4bd46657c15905904b3120a6248b5b8b0bc228", + "sha256:ad58d27a5b0262c0c19b47d54c5802db9b34d38bbf886665b626aff83c74bacd", + "sha256:ae5331c23ce118c53b172fa64a4c037eb83c9165aba3a7ba9ddd3ec9fa64a699", + "sha256:af0372acb5d3598f36ec0914deed2a63f6bcdb7b606da04dc19a88d31bf0c05b", + "sha256:afa4107d1b306cdf8953edde0534562607fe8811b6c4d9a486298ad31de733b2", + "sha256:b03ae6f1a1878233ac620c98f3459f79fd77c7e3c2b20d460284e1fb370557d4", + "sha256:b0915e734b33a474d76c28e07292f196cdf2a590a0d25bcc06e64e545f2d146c", + "sha256:b4012d06c846dc2b80651b120e2cdd787b013deb39c09f407727ba90015c684f", + "sha256:b472b5ea442148d1c3e2209f20f1e0bb0eb556538690fa70b5e1f79fa0ba8dc2", + "sha256:b59430236b8e58840a0dfb4099a0e8717ffb779c952426a69ae435ca1f57210c", + "sha256:b90f7616ea170e92820775ed47e136208e04c967271c9ef615b6fbd08d9af0e3", + "sha256:b9a65733d103311331875c1dca05cb4606997fd33d6acfed695b1232ba1df193", + "sha256:bac18ab8d2d1e6b4ce25e3424f709aceef668347db8637c2296bcf41acb7cf48", + "sha256:bca31dd6014cb8b0b2db1e46081b0ca7d936f856da3b39744aef499db5d84d02", + "sha256:be55f8457cd1eac957af0c3f5ece7bc3f033f89b114ef30f710882717670b2a8", + "sha256:c7025dce65566eb6e89f56c9509d4f628fddcedb131d9465cacd3d8bac337e7e", + "sha256:c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f", + "sha256:dbb8e7f2abee51cef77673be97760abff1674ed32847ce04b4af90f610144c7b", + "sha256:e6ea6b856a74d560d9326c0f5895ef8050126acfdc7ca08ad703eb0081e82b74", + "sha256:ebf2029c1f464c59b8bdbe5143c79fa2045a581ac53679733d3a91d400ff9efb", + "sha256:f1ff2ee69f10f13a9596480335f406dd1f70c3650349e2be67ca3139280cade0" + ], + "markers": "python_version >= '3.7'", + "version": "==9.3.0" + }, + "platformdirs": { + "hashes": [ + "sha256:1006647646d80f16130f052404c6b901e80ee4ed6bef6792e1f238a8969106f7", + "sha256:af0276409f9a02373d540bf8480021a048711d572745aef4b7842dad245eba10" + ], + "markers": "python_version >= '3.7'", + "version": "==2.5.4" + }, + "prompt-toolkit": { + "hashes": [ + "sha256:535c29c31216c77302877d5120aef6c94ff573748a5b5ca5b1b1f76f5e700c73", + "sha256:ced598b222f6f4029c0800cefaa6a17373fb580cd093223003475ce32805c35b" + ], + "markers": "python_full_version >= '3.6.2'", + "version": "==3.0.33" + }, + "psutil": { + "hashes": [ + "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff", + "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1", + "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62", + "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549", + "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08", + "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7", + "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e", + "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe", + "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24", + "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad", + "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94", + "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8", + "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7", + "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==5.9.4" + }, + "ptyprocess": { + "hashes": [ + "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", + "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220" + ], + "markers": "os_name != 'nt'", + "version": "==0.7.0" + }, + "pure-eval": { + "hashes": [ + "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350", + "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3" + ], + "version": "==0.2.2" + }, + "pygments": { + "hashes": [ + "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1", + "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42" + ], + "markers": "python_version >= '3.6'", + "version": "==2.13.0" + }, + "pyparsing": { + "hashes": [ + "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb", + "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc" + ], + "markers": "python_full_version >= '3.6.8'", + "version": "==3.0.9" + }, + "python-dateutil": { + "hashes": [ + "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", + "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.8.2" + }, + "pyzmq": { + "hashes": [ + "sha256:0108358dab8c6b27ff6b985c2af4b12665c1bc659648284153ee501000f5c107", + "sha256:07bec1a1b22dacf718f2c0e71b49600bb6a31a88f06527dfd0b5aababe3fa3f7", + "sha256:0e8f482c44ccb5884bf3f638f29bea0f8dc68c97e38b2061769c4cb697f6140d", + "sha256:0ec91f1bad66f3ee8c6deb65fa1fe418e8ad803efedd69c35f3b5502f43bd1dc", + "sha256:0f14cffd32e9c4c73da66db97853a6aeceaac34acdc0fae9e5bbc9370281864c", + "sha256:15975747462ec49fdc863af906bab87c43b2491403ab37a6d88410635786b0f4", + "sha256:1724117bae69e091309ffb8255412c4651d3f6355560d9af312d547f6c5bc8b8", + "sha256:1a7c280185c4da99e0cc06c63bdf91f5b0b71deb70d8717f0ab870a43e376db8", + "sha256:1b7928bb7580736ffac5baf814097be342ba08d3cfdfb48e52773ec959572287", + "sha256:2032d9cb994ce3b4cba2b8dfae08c7e25bc14ba484c770d4d3be33c27de8c45b", + "sha256:20e7eeb1166087db636c06cae04a1ef59298627f56fb17da10528ab52a14c87f", + "sha256:216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77", + "sha256:28b119ba97129d3001673a697b7cce47fe6de1f7255d104c2f01108a5179a066", + "sha256:3104f4b084ad5d9c0cb87445cc8cfd96bba710bef4a66c2674910127044df209", + "sha256:3e6192dbcefaaa52ed81be88525a54a445f4b4fe2fffcae7fe40ebb58bd06bfd", + "sha256:42d4f97b9795a7aafa152a36fe2ad44549b83a743fd3e77011136def512e6c2a", + "sha256:44e706bac34e9f50779cb8c39f10b53a4d15aebb97235643d3112ac20bd577b4", + "sha256:47b11a729d61a47df56346283a4a800fa379ae6a85870d5a2e1e4956c828eedc", + "sha256:4854f9edc5208f63f0841c0c667260ae8d6846cfa233c479e29fdc85d42ebd58", + "sha256:48f721f070726cd2a6e44f3c33f8ee4b24188e4b816e6dd8ba542c8c3bb5b246", + "sha256:52afb0ac962963fff30cf1be775bc51ae083ef4c1e354266ab20e5382057dd62", + "sha256:54d8b9c5e288362ec8595c1d98666d36f2070fd0c2f76e2b3c60fbad9bd76227", + "sha256:5bd3d7dfd9cd058eb68d9a905dec854f86649f64d4ddf21f3ec289341386c44b", + "sha256:613010b5d17906c4367609e6f52e9a2595e35d5cc27d36ff3f1b6fa6e954d944", + "sha256:624321120f7e60336be8ec74a172ae7fba5c3ed5bf787cc85f7e9986c9e0ebc2", + "sha256:65c94410b5a8355cfcf12fd600a313efee46ce96a09e911ea92cf2acf6708804", + "sha256:6640f83df0ae4ae1104d4c62b77e9ef39be85ebe53f636388707d532bee2b7b8", + "sha256:687700f8371643916a1d2c61f3fdaa630407dd205c38afff936545d7b7466066", + "sha256:77c2713faf25a953c69cf0f723d1b7dd83827b0834e6c41e3fb3bbc6765914a1", + "sha256:78068e8678ca023594e4a0ab558905c1033b2d3e806a0ad9e3094e231e115a33", + "sha256:7a23ccc1083c260fa9685c93e3b170baba45aeed4b524deb3f426b0c40c11639", + "sha256:7abddb2bd5489d30ffeb4b93a428130886c171b4d355ccd226e83254fcb6b9ef", + "sha256:80093b595921eed1a2cead546a683b9e2ae7f4a4592bb2ab22f70d30174f003a", + "sha256:8242543c522d84d033fe79be04cb559b80d7eb98ad81b137ff7e0a9020f00ace", + "sha256:838812c65ed5f7c2bd11f7b098d2e5d01685a3f6d1f82849423b570bae698c00", + "sha256:83ea1a398f192957cb986d9206ce229efe0ee75e3c6635baff53ddf39bd718d5", + "sha256:8421aa8c9b45ea608c205db9e1c0c855c7e54d0e9c2c2f337ce024f6843cab3b", + "sha256:858375573c9225cc8e5b49bfac846a77b696b8d5e815711b8d4ba3141e6e8879", + "sha256:86de64468cad9c6d269f32a6390e210ca5ada568c7a55de8e681ca3b897bb340", + "sha256:87f7ac99b15270db8d53f28c3c7b968612993a90a5cf359da354efe96f5372b4", + "sha256:8bad8210ad4df68c44ff3685cca3cda448ee46e20d13edcff8909eba6ec01ca4", + "sha256:8bb4af15f305056e95ca1bd086239b9ebc6ad55e9f49076d27d80027f72752f6", + "sha256:8c78bfe20d4c890cb5580a3b9290f700c570e167d4cdcc55feec07030297a5e3", + "sha256:8f3f3154fde2b1ff3aa7b4f9326347ebc89c8ef425ca1db8f665175e6d3bd42f", + "sha256:94010bd61bc168c103a5b3b0f56ed3b616688192db7cd5b1d626e49f28ff51b3", + "sha256:941fab0073f0a54dc33d1a0460cb04e0d85893cb0c5e1476c785000f8b359409", + "sha256:9dca7c3956b03b7663fac4d150f5e6d4f6f38b2462c1e9afd83bcf7019f17913", + "sha256:a180dbd5ea5d47c2d3b716d5c19cc3fb162d1c8db93b21a1295d69585bfddac1", + "sha256:a2712aee7b3834ace51738c15d9ee152cc5a98dc7d57dd93300461b792ab7b43", + "sha256:a435ef8a3bd95c8a2d316d6e0ff70d0db524f6037411652803e118871d703333", + "sha256:abb756147314430bee5d10919b8493c0ccb109ddb7f5dfd2fcd7441266a25b75", + "sha256:abe6eb10122f0d746a0d510c2039ae8edb27bc9af29f6d1b05a66cc2401353ff", + "sha256:acbd0a6d61cc954b9f535daaa9ec26b0a60a0d4353c5f7c1438ebc88a359a47e", + "sha256:ae08ac90aa8fa14caafc7a6251bd218bf6dac518b7bff09caaa5e781119ba3f2", + "sha256:ae61446166983c663cee42c852ed63899e43e484abf080089f771df4b9d272ef", + "sha256:afe1f3bc486d0ce40abb0a0c9adb39aed3bbac36ebdc596487b0cceba55c21c1", + "sha256:b946da90dc2799bcafa682692c1d2139b2a96ec3c24fa9fc6f5b0da782675330", + "sha256:b947e264f0e77d30dcbccbb00f49f900b204b922eb0c3a9f0afd61aaa1cedc3d", + "sha256:bb5635c851eef3a7a54becde6da99485eecf7d068bd885ac8e6d173c4ecd68b0", + "sha256:bcbebd369493d68162cddb74a9c1fcebd139dfbb7ddb23d8f8e43e6c87bac3a6", + "sha256:c31805d2c8ade9b11feca4674eee2b9cce1fec3e8ddb7bbdd961a09dc76a80ea", + "sha256:c8840f064b1fb377cffd3efeaad2b190c14d4c8da02316dae07571252d20b31f", + "sha256:ccb94342d13e3bf3ffa6e62f95b5e3f0bc6bfa94558cb37f4b3d09d6feb536ff", + "sha256:d66689e840e75221b0b290b0befa86f059fb35e1ee6443bce51516d4d61b6b99", + "sha256:dabf1a05318d95b1537fd61d9330ef4313ea1216eea128a17615038859da3b3b", + "sha256:db03704b3506455d86ec72c3358a779e9b1d07b61220dfb43702b7b668edcd0d", + "sha256:de4217b9eb8b541cf2b7fde4401ce9d9a411cc0af85d410f9d6f4333f43640be", + "sha256:df0841f94928f8af9c7a1f0aaaffba1fb74607af023a152f59379c01c53aee58", + "sha256:dfb992dbcd88d8254471760879d48fb20836d91baa90f181c957122f9592b3dc", + "sha256:e7e66b4e403c2836ac74f26c4b65d8ac0ca1eef41dfcac2d013b7482befaad83", + "sha256:e8012bce6836d3f20a6c9599f81dfa945f433dab4dbd0c4917a6fb1f998ab33d", + "sha256:f01de4ec083daebf210531e2cca3bdb1608dbbbe00a9723e261d92087a1f6ebc", + "sha256:f0d945a85b70da97ae86113faf9f1b9294efe66bd4a5d6f82f2676d567338b66", + "sha256:fa0ae3275ef706c0309556061185dd0e4c4cd3b7d6f67ae617e4e677c7a41e2e" + ], + "markers": "python_version >= '3.6'", + "version": "==24.0.1" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.16.0" + }, + "stack-data": { + "hashes": [ + "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815", + "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8" + ], + "version": "==0.6.2" + }, + "tornado": { + "hashes": [ + "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca", + "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72", + "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23", + "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8", + "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b", + "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9", + "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13", + "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75", + "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac", + "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", + "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" + ], + "markers": "python_version >= '3.7'", + "version": "==6.2" + }, + "traitlets": { + "hashes": [ + "sha256:10b6ed1c9cedee83e795db70a8b9c2db157bb3778ec4587a349ecb7ef3b1033b", + "sha256:1410755385d778aed847d68deb99b3ba30fbbf489e17a1e8cbb753060d5cce73" + ], + "markers": "python_version >= '3.7'", + "version": "==5.6.0" + }, + "wcwidth": { + "hashes": [ + "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784", + "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" + ], + "version": "==0.2.5" + } + }, + "develop": {} +} diff --git a/models-1.ipynb b/models-1.ipynb new file mode 100644 index 0000000..50c2a79 --- /dev/null +++ b/models-1.ipynb @@ -0,0 +1,97 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f1dda57a", + "metadata": {}, + "source": [ + "# stuff.\n", + "economics!" + ] + }, + { + "cell_type": "markdown", + "id": "fdb15ca5", + "metadata": {}, + "source": [ + "### Population Growth + Basic Exchange\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "aacc2bc9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Finished with 5005 balances\n", + "Finished with 5005 balances\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import sim\n", + "import matplotlib.pyplot as plt\n", + "\n", + "TIME=1000\n", + "\n", + "# inheritance\n", + "res = sim.pop_simple(TIME, 81, 1000, 1000, 10, 10_000, 0.04, 1)\n", + "# even dist.\n", + "res2 = sim.pop_simple(TIME, 81, 1000, 1000, 10, 10_000, 0.04, 0)\n", + "\n", + "BINS=100\n", + "\n", + "fig, axs = plt.subplots(2, 1)\n", + "axs[0].hist(res.balances, bins=BINS)\n", + "axs[0].set_yscale('log')\n", + "# axs[0].title=\"Balances (inheritance)\"\n", + "\n", + "axs[1].hist(res2.balances, bins=BINS)\n", + "axs[1].set_yscale('log')\n", + "# axs[1].title=\"Balances (inheritance)\"\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.8 ('test-econ-model-hCG_3f02')", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.8" + }, + "vscode": { + "interpreter": { + "hash": "4b78f308fcd38df7196e2fb8c4e63326348fcf5e8b8f4528b19204cc8217ee27" + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/pop-simple.hpp b/pop-simple.hpp index 70b6b0b..e327524 100644 --- a/pop-simple.hpp +++ b/pop-simple.hpp @@ -3,18 +3,12 @@ #include #include #include +#include #include "util.hpp" #include "population.hpp" #include "econ.hpp" -#define arg(a) program[a] -#define iarg(a) std::stoi(program[a]) -#define farg(a) std::stof(program[a]) - -#define cset(k, v) config[k] = v -#define csetn(k, v) config[k] = std::to_string(v); - struct PopSimpleResult { std::vector ages; std::vector balances; @@ -26,18 +20,18 @@ enum EstateMode { }; PopSimpleResult pop_simple( - int duration = 1000, - int max_age = 81, - int init_balance_each = 5000, - int starting_balance_new = 1000, + int duration, + int max_age, + int init_balance_each, + int starting_balance_new, // logistic function params - int N_o = 10, - int N_f = 10000, - float k = 0.04, + int N_o, + int N_f, + float k, // estate mode - std::string estate_mode = "inheritance" + EstateMode estate_mode ) { std::vector ages; @@ -45,9 +39,6 @@ PopSimpleResult pop_simple( ages.assign(N_o, 1); balances.assign(N_o, init_balance_each); - // estate mode - EstateMode emode = INHERITANCE; - // Changed/used only if emode=redist int redist_total = 0; int redist_total_next = 0; @@ -59,19 +50,16 @@ PopSimpleResult pop_simple( for (int id = 0; id < ages.size(); id++) { ages.at(id) += 1; if (ages.at(id) > max_age) { - switch (emode) { + int bal = balances.at(id); + ages.erase(ages.begin()+id); + balances.erase(balances.begin()+id); + switch (estate_mode) { case INHERITANCE: { - int bal = balances.at(id); - ages.erase(ages.begin()+id); - balances.erase(balances.begin()+id); int recipient_id = random_item(balances, true); balances.at(recipient_id) += bal; break; } case EVEN_REDIST: { - int bal = balances.at(id); - ages.erase(ages.begin()+id); - balances.erase(balances.begin()+id); redist_total_next += bal; break; } @@ -90,31 +78,33 @@ PopSimpleResult pop_simple( } for (int j = 0; j < balances.size(); j++) { + // redistribute estates balances.at(j) += redist_total / balances.size(); + // make 3 arbitrary spending decisions -> 30% of savings for (int k = 0; k < 3; k++) { economic_decision_simple(balances, j, 0.1); } } - if (year % 100 == 0) { - int avg = 0; - int avg_age = 0; - for (int i = 0; i < balances.size(); i++) { - avg += balances[i]; - } - for (int i = 0; i < balances.size(); i++) { - avg_age += ages[i]; - } - avg /= balances.size(); - avg_age /= ages.size(); - std::cout << std::endl; - std::cout << "year: " << year << std::endl; - std::cout << "avg bal: " << avg << std::endl; - std::cout << "avg age: " << avg_age << std::endl; - std::cout << "players: " << balances.size() << std::endl; - } + // if (year % 100 == 0) { + // int avg = 0; + // int avg_age = 0; + // for (int i = 0; i < balances.size(); i++) { + // avg += balances[i]; + // } + // for (int i = 0; i < balances.size(); i++) { + // avg_age += ages[i]; + // } + // avg /= balances.size(); + // avg_age /= ages.size(); + // std::cout << std::endl; + // std::cout << "year: " << year << std::endl; + // std::cout << "avg bal: " << avg << std::endl; + // std::cout << "avg age: " << avg_age << std::endl; + // std::cout << "players: " << balances.size() << std::endl; + // } // reset redist tally redist_total = redist_total_next; @@ -123,7 +113,7 @@ PopSimpleResult pop_simple( // std::sort(balances.begin(), balances.end(), std::greater()); std::string ext; - switch (emode) { + switch (estate_mode) { case EVEN_REDIST: ext = "even"; break; diff --git a/sim.i b/sim.i index ea58379..9d6a26f 100644 --- a/sim.i +++ b/sim.i @@ -4,4 +4,5 @@ %} %include "pop-simple.hpp" %include +%include %template(IntVector) std::vector;