mapFolding 0.16.4__py3-none-any.whl → 0.17.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. easyRun/A000682.py +2 -2
  2. easyRun/NOTcountingFolds.py +16 -9
  3. easyRun/countFolds.py +10 -3
  4. easyRun/meanders.py +3 -3
  5. mapFolding/algorithms/A000136constraintPropagation.py +95 -0
  6. mapFolding/algorithms/A000136elimination.py +163 -0
  7. mapFolding/algorithms/A000136eliminationParallel.py +77 -0
  8. mapFolding/algorithms/matrixMeanders.py +59 -18
  9. mapFolding/algorithms/matrixMeandersNumPyndas.py +841 -0
  10. mapFolding/algorithms/symmetricFolds.py +24 -25
  11. mapFolding/basecamp.py +30 -14
  12. mapFolding/dataBaskets.py +30 -71
  13. mapFolding/reference/irvineJavaPort.py +3 -3
  14. mapFolding/reference/meandersDumpingGround/matrixMeandersNumPyV1finalForm.py +1 -1
  15. mapFolding/someAssemblyRequired/A007822/_asynchronousAnnex.py +1 -1
  16. mapFolding/someAssemblyRequired/A007822/makeA007822AsynchronousModules.py +5 -3
  17. mapFolding/someAssemblyRequired/A007822/makeA007822Modules.py +22 -6
  18. mapFolding/someAssemblyRequired/RecipeJob.py +14 -24
  19. mapFolding/someAssemblyRequired/__init__.py +1 -0
  20. mapFolding/someAssemblyRequired/_toolkitContainers.py +6 -4
  21. mapFolding/someAssemblyRequired/infoBooth.py +2 -1
  22. mapFolding/someAssemblyRequired/makeJobTheorem2Numba.py +75 -20
  23. mapFolding/someAssemblyRequired/makeJobTheorem2codon.py +9 -10
  24. mapFolding/someAssemblyRequired/makingModules_count.py +20 -22
  25. mapFolding/someAssemblyRequired/makingModules_doTheNeedful.py +9 -9
  26. mapFolding/someAssemblyRequired/mapFoldingModules/makeMapFoldingModules.py +6 -5
  27. mapFolding/someAssemblyRequired/meanders/makeMeandersModules.py +6 -6
  28. mapFolding/someAssemblyRequired/toolkitMakeModules.py +3 -29
  29. mapFolding/someAssemblyRequired/toolkitNumba.py +2 -1
  30. mapFolding/someAssemblyRequired/transformationTools.py +2 -3
  31. mapFolding/syntheticModules/A007822/algorithm.py +8 -8
  32. mapFolding/syntheticModules/A007822/asynchronous.py +12 -13
  33. mapFolding/syntheticModules/A007822/initializeState.py +10 -8
  34. mapFolding/syntheticModules/A007822/theorem2.py +10 -8
  35. mapFolding/syntheticModules/A007822/theorem2Numba.py +20 -16
  36. mapFolding/syntheticModules/A007822/theorem2Trimmed.py +10 -8
  37. mapFolding/syntheticModules/countParallelNumba.py +5 -2
  38. mapFolding/syntheticModules/daoOfMapFoldingNumba.py +4 -2
  39. mapFolding/syntheticModules/initializeState.py +1 -1
  40. mapFolding/syntheticModules/meanders/bigInt.py +52 -15
  41. mapFolding/syntheticModules/theorem2.py +1 -1
  42. mapFolding/syntheticModules/theorem2Numba.py +4 -2
  43. mapFolding/syntheticModules/theorem2Trimmed.py +1 -1
  44. mapFolding/tests/test_computations.py +28 -2
  45. {mapfolding-0.16.4.dist-info → mapfolding-0.17.0.dist-info}/METADATA +9 -9
  46. {mapfolding-0.16.4.dist-info → mapfolding-0.17.0.dist-info}/RECORD +50 -49
  47. mapFolding/algorithms/matrixMeandersBeDry.py +0 -182
  48. mapFolding/algorithms/matrixMeandersNumPy.py +0 -333
  49. mapFolding/algorithms/matrixMeandersPandas.py +0 -334
  50. {mapfolding-0.16.4.dist-info → mapfolding-0.17.0.dist-info}/WHEEL +0 -0
  51. {mapfolding-0.16.4.dist-info → mapfolding-0.17.0.dist-info}/entry_points.txt +0 -0
  52. {mapfolding-0.16.4.dist-info → mapfolding-0.17.0.dist-info}/licenses/LICENSE +0 -0
  53. {mapfolding-0.16.4.dist-info → mapfolding-0.17.0.dist-info}/top_level.txt +0 -0
@@ -1,28 +1,29 @@
1
- easyRun/A000682.py,sha256=nJJrmVycQUe1H7ms11QGz1ZyYUVdZsjEGtuJk97yxQ0,713
1
+ easyRun/A000682.py,sha256=VhzR_7ZqEkbDGug0AvW_TqS9W6a3t-ws572DqjZ_mqI,700
2
2
  easyRun/A005316.py,sha256=WCIqsNSevjgUSnTe24d6zWKLZnJSoy14piSt6G26WuE,434
3
- easyRun/NOTcountingFolds.py,sha256=3wlVLr_KVZwniu-F4KCsBUhsErpu9BZCBGuvlz6-668,807
3
+ easyRun/NOTcountingFolds.py,sha256=da9U8q_D_YL94mLhlVSBjdKyKABzbi9nOw-oTeKh9O8,1161
4
4
  easyRun/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- easyRun/countFolds.py,sha256=_7bdg31cN-Dtq4CATECRI1_dxhcrLwoTU9z8d9RWBjk,1181
5
+ easyRun/countFolds.py,sha256=LF36qsSMvc9RwzE969kQrGHctRf3mMuCxBkjy-sn-q4,1461
6
6
  easyRun/generateAllModules.py,sha256=xsXFs0BwQ_O5m5rqMjhgMOZ3lj9ssmc3Qdxazp7_uAI,622
7
- easyRun/meanders.py,sha256=PeilOcWDZwTH60NHgkkMGeqIIAAfRMgL4f7qrVUN4gs,1824
7
+ easyRun/meanders.py,sha256=Npcq5RL7WR6mFEZYlHLaUzedULbQxkGT8i7ydbH8DCA,1827
8
8
  mapFolding/__init__.py,sha256=ZVkNS11uN04EWDBazqkY4AeVZC9UOXV_W-1V9QZgnl0,1913
9
9
  mapFolding/_theSSOT.py,sha256=QuyDsMCbqv3Au4RUgdYPcyR89JrT9WkzcauzybpgKzU,5384
10
10
  mapFolding/_theTypes.py,sha256=0uf4x31ilFxIO6sbiSd39H5_7VWBKxColVmfy3oIafk,7376
11
- mapFolding/basecamp.py,sha256=WXrtT5SeYdHovlTdTjkMh6ua_EU7yApBcMyPVMJfpvs,15088
11
+ mapFolding/basecamp.py,sha256=cNZ104ZbVjV_tagjzn6DuobLyLJpJs418_ew64xYORw,15788
12
12
  mapFolding/beDRY.py,sha256=0vJwnsvz6_jR8gfuU38vW9KoMTnRqyaYaAwbJcKLhFI,12674
13
- mapFolding/dataBaskets.py,sha256=2_auINZy4O3FreQIAK3DX0QafWoPO-WGop8QWOzKxIg,29058
13
+ mapFolding/dataBaskets.py,sha256=K6M8NG8oqsTUpTR-S_VJFNeDfHV936q65PMtUMNVYrI,26484
14
14
  mapFolding/filesystemToolkit.py,sha256=ic69Y043xrdoFjKqiB0YJ6Zp8oosBWwdXi_hmg79PVs,10134
15
15
  mapFolding/oeis.py,sha256=2sqdFgYguB4sDpcYGYB_mJL57k9sHs7FUXF05pvIEak,17300
16
16
  mapFolding/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ mapFolding/algorithms/A000136constraintPropagation.py,sha256=LJky_I57WIEVXkD8MGiD7bglgy9OvkxWisYrmwSyVAI,5443
18
+ mapFolding/algorithms/A000136elimination.py,sha256=M-kEYknUSdvoXpXrver6tq48MReUhEo_amNoIDKJBM4,5869
19
+ mapFolding/algorithms/A000136eliminationParallel.py,sha256=X3L3hOaqsu7uT9pcyCmKPHElXhoLC-YRGZo2IfpyZtQ,3081
17
20
  mapFolding/algorithms/A086345.py,sha256=te3Zy76eJLE3dSFsK7hXTHJapewM1u43GBUV78fL2z8,2492
18
21
  mapFolding/algorithms/__init__.py,sha256=gARPqfySaeSWMfApQ5wSxzy7ZdgLdKYsLqsRSEYWwWI,28
19
22
  mapFolding/algorithms/daoOfMapFolding.py,sha256=ncTIiBfTsM8SNVx9qefZ0bBcBtviWLSk4iPv3Z9nGiE,5442
20
- mapFolding/algorithms/matrixMeanders.py,sha256=swU6xSo0QhhmA_FxmZhmqvGLJ0h_rS_75jO-SHETWLA,3489
21
- mapFolding/algorithms/matrixMeandersBeDry.py,sha256=92qk8dSXn2YxtUYhzSFpJpKDRUx6vbfMaRCbJt9baw0,7539
22
- mapFolding/algorithms/matrixMeandersNumPy.py,sha256=DsMUnB-tsttBm4ib385BaYS2Dnr-KCokKWfK7RjQ780,17147
23
- mapFolding/algorithms/matrixMeandersPandas.py,sha256=9Pm49HdK0g2MJ15CuZoXOFbdn8JcE0GHzz2p9NB3xvA,13167
23
+ mapFolding/algorithms/matrixMeanders.py,sha256=g8h9sF1emt5OQCXe3EVA_g0FdhvNu7Wo1FI4kMFsqZY,5167
24
+ mapFolding/algorithms/matrixMeandersNumPyndas.py,sha256=giCqLNnxu4RbGERtyAJb5mbvMd1ZbzLR_EoRiEjCXUY,39140
24
25
  mapFolding/algorithms/oeisIDbyFormula.py,sha256=jinaLXJb3annODlyidtNZkKIKUuFKp_yzjEZMHSMhQ0,11782
25
- mapFolding/algorithms/symmetricFolds.py,sha256=ji6GitOuVqd_g0X3_mcKuXB6RhjVS0EpOQanlAc5fPI,1457
26
+ mapFolding/algorithms/symmetricFolds.py,sha256=g_3Xm3UQ4KwduDdsQJPwQxrIXdBmBjei2_idsLgIIZQ,1200
26
27
  mapFolding/algorithms/zCuzDocStoopidoeisIDbyFormula.py,sha256=eGf_gvHUuHAPFFQZd3NIaozY2sQUGse_njtZ8_AyZ-U,2438
27
28
  mapFolding/reference/A000682facts.py,sha256=wRg5uy72M-o-cYEF3waCa7NjTUZ3XOoD9dmkTaUiH0o,23510
28
29
  mapFolding/reference/A005316facts.py,sha256=Cg2Pqtv3Dnk8IZOqer8Wu3Ie2uwJV_M0Kmr6_QXjKuQ,11768
@@ -30,7 +31,7 @@ mapFolding/reference/A086345Wu.py,sha256=3FJlvcVkrQL2hz4IN2NdzmdMW0weWfYh9l1pnXB
30
31
  mapFolding/reference/__init__.py,sha256=GKcSgYE49NcTISx-JZbELXyq-eRkMeTL5g4DXInWFw0,2206
31
32
  mapFolding/reference/flattened.py,sha256=0eHgLFIeIeVUsI5zF5oSy5iWYrjOMzxr7KjDxiTe01k,16078
32
33
  mapFolding/reference/hunterNumba.py,sha256=iLfyqwGdAh6c5GbapnKsWhAsNsR3O-fyGGHAdohluLw,7258
33
- mapFolding/reference/irvineJavaPort.py,sha256=XnsL4g33LRrYwAhcrAVt-ujsP6QD6fbyCsGYzcm9g_k,3724
34
+ mapFolding/reference/irvineJavaPort.py,sha256=GcnFazAClLsgh4JoO1n-iCtO5aSKJB0SMsKu3RCV--4,3721
34
35
  mapFolding/reference/jaxCount.py,sha256=t8ons45zyWNJQ-nmn1qbhNsTkTnRzf7ATauaYvIlkRI,14853
35
36
  mapFolding/reference/lunnonNumpy.py,sha256=mMgrgbrBpe4nmo72ThEI-MGH0OwEHmfMPczSXHp2qKo,4357
36
37
  mapFolding/reference/lunnonWhile.py,sha256=ZL8GAQtPs5nJZSgoDl5USrLSS_zs03y98y1Z9E4jOmQ,3799
@@ -49,58 +50,58 @@ mapFolding/reference/meandersDumpingGround/A005316redis.py,sha256=MPeiobrs3VsNZO
49
50
  mapFolding/reference/meandersDumpingGround/A005316write2disk.py,sha256=NMVrdhe5KhnXQfaQ5Xr7Pwl5oXYEOM1DrMISDDOCVVw,5633
50
51
  mapFolding/reference/meandersDumpingGround/matrixMeanders64retired.py,sha256=oRVgf6zkWRjk7dWR-Px41M_5spdvKy_Pich0qd7oxVA,9270
51
52
  mapFolding/reference/meandersDumpingGround/matrixMeandersBaselineV2.py,sha256=VpRiIGhnk-DbxwsHwCeCwXqcKLSNyHl-iRGLDH9ZGMY,7674
52
- mapFolding/reference/meandersDumpingGround/matrixMeandersNumPyV1finalForm.py,sha256=G4358jHFr7hdOa709c8nYdR3eMMZjUqcxbS-L2aAOqw,24428
53
+ mapFolding/reference/meandersDumpingGround/matrixMeandersNumPyV1finalForm.py,sha256=yMEF8GIz_1lMMkJiMk-5lek9TAAoqEzfkMbQP80dC_Y,24425
53
54
  mapFolding/reference/meandersDumpingGround/matrixMeandersSlicePop.py,sha256=XyiesSQAH1dRplYx_CdR1FzcXvgmmxzj27V4aIqPp7o,5353
54
- mapFolding/someAssemblyRequired/RecipeJob.py,sha256=Dpu33Wu6OziJ8Sqx6TCHA10TBmNQT8yiCl2FtaM3jl0,13723
55
- mapFolding/someAssemblyRequired/__init__.py,sha256=PIdLYHFSfYsQSP55PoQSusi1dsOGhiY986kgosGO3vI,5811
55
+ mapFolding/someAssemblyRequired/RecipeJob.py,sha256=8sIRcgP8yFeUplw4GgR5eN8CwVK1ELXPU2xaC2UCLvY,13102
56
+ mapFolding/someAssemblyRequired/__init__.py,sha256=tDDYGBKNhZgcVXZIW-HnUeyXAMdURTOKandc59dUZ7s,5835
56
57
  mapFolding/someAssemblyRequired/_toolIfThis.py,sha256=QC2cmCea18BZ_WpoWoErYCWhROvmd40_i_nBO7YFRaE,6378
57
- mapFolding/someAssemblyRequired/_toolkitContainers.py,sha256=rp1w-y5wXctcwSPkHG1JQSCY3ro5lc0AoAF_PkBJfQQ,14798
58
+ mapFolding/someAssemblyRequired/_toolkitContainers.py,sha256=r2Ll4ZW6dz_EDPW2IViYKggsNYbB5L0JfHLbcxXq7EI,14884
58
59
  mapFolding/someAssemblyRequired/getLLVMforNoReason.py,sha256=tY0-2K0BFkwLAAjSrFJLPoG8CevDHOFc3OH3TxXANzg,2806
59
- mapFolding/someAssemblyRequired/infoBooth.py,sha256=lwz8Zp8FRlTrBFqBHnch6JC_AukQ3o9O4lbBJ-wQVrY,2417
60
- mapFolding/someAssemblyRequired/makeJobTheorem2Numba.py,sha256=C29oQyDFE0St85opv37hqvIncpZ5IzCHavprex4HNIU,14221
61
- mapFolding/someAssemblyRequired/makeJobTheorem2codon.py,sha256=2wNA3iztFDN3jzxIneckgiR5UyRfApdjHbdXA4CRCWY,10118
62
- mapFolding/someAssemblyRequired/makingModules_count.py,sha256=E1WwaM_w1xiBusX7ah61e2AdMiWIBqNM5v0r5pjsd_k,15053
63
- mapFolding/someAssemblyRequired/makingModules_doTheNeedful.py,sha256=1lo_30R7__bkrOlA7t-iwb1vnw6kCN5eZbCsiZg29cw,3119
64
- mapFolding/someAssemblyRequired/toolkitMakeModules.py,sha256=wROp5yTJWts-_adcOwLKXr1e2P5vElKk4NCYkscXMZo,7915
65
- mapFolding/someAssemblyRequired/toolkitNumba.py,sha256=Zi3JeJDio177T4P3om5XK_2wZzplZvkNy4PzY0NFiyM,14914
66
- mapFolding/someAssemblyRequired/transformationTools.py,sha256=FzAraqdgxB7XOcxfKxeUI_zUNYiRKRn8eVAt6LcO4Ck,11553
60
+ mapFolding/someAssemblyRequired/infoBooth.py,sha256=nkuBBb_owBCQijqum98QzeKjoIsFrHB5-1pIWObcH0E,2446
61
+ mapFolding/someAssemblyRequired/makeJobTheorem2Numba.py,sha256=z_hXGdl6WbgTZXEKUWZ0FJ9yVfRxXhZyqzgbsLXD9Z4,18189
62
+ mapFolding/someAssemblyRequired/makeJobTheorem2codon.py,sha256=Y51NC5LkdieIjcCyVdeAaXrJzjYKfzNJlRZmlSSGDqk,10133
63
+ mapFolding/someAssemblyRequired/makingModules_count.py,sha256=qudUryuwExzD92_o14OaDg8_Gy3NaHDXLCGttG8hrNI,15068
64
+ mapFolding/someAssemblyRequired/makingModules_doTheNeedful.py,sha256=jp3OmAcTXifxL2XH3AfIMK30nE6Vg9kTCiSDLcUoSEI,3277
65
+ mapFolding/someAssemblyRequired/toolkitMakeModules.py,sha256=wdu-DBdevmoZKc8icl-lzDQ-q0-0iIbligwNYyMztcY,6854
66
+ mapFolding/someAssemblyRequired/toolkitNumba.py,sha256=ABmNjqMfDlUbHfo69eSoFzJRKPe3pkSrfd4YIeGFYdY,14947
67
+ mapFolding/someAssemblyRequired/transformationTools.py,sha256=UD0LIrJkEdvZMvJLbMWXfbXhVKG7oxsSPCmkfRrXXNA,11598
67
68
  mapFolding/someAssemblyRequired/A007822/A007822rawMaterials.py,sha256=HbnYk4th5p_jCJI-WzIED8a35JZSLVpecZyTaSIfKXM,1609
68
69
  mapFolding/someAssemblyRequired/A007822/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
- mapFolding/someAssemblyRequired/A007822/_asynchronousAnnex.py,sha256=mT4IEFTF2lVT8GeNJ2e18eWleBjwJGbOFZow0CjXx4Q,1726
70
- mapFolding/someAssemblyRequired/A007822/makeA007822AsynchronousModules.py,sha256=QMH0ihfkLHr_j3UY3-vTRU3_YbyowTV9c-rP-rr5Ml0,5528
71
- mapFolding/someAssemblyRequired/A007822/makeA007822Modules.py,sha256=o80ac_b8KjogJ0jw0lUl36Qlw0XSw1QLQfzEU8UtjDE,4157
70
+ mapFolding/someAssemblyRequired/A007822/_asynchronousAnnex.py,sha256=eGZrTkNWlMXgzMx86IQJk7-QH7UwYoBHXFfMZ_MYL6E,1727
71
+ mapFolding/someAssemblyRequired/A007822/makeA007822AsynchronousModules.py,sha256=qnLLG-uN6KMKxYCOrNsyDET6aYkT8HLXYuzYrK2vfTo,5621
72
+ mapFolding/someAssemblyRequired/A007822/makeA007822Modules.py,sha256=qDQDd_mT40Di56-Dg1iYoFiMXzbcupkF81T3CUAPboE,5193
72
73
  mapFolding/someAssemblyRequired/mapFoldingModules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
- mapFolding/someAssemblyRequired/mapFoldingModules/makeMapFoldingModules.py,sha256=mZS1OQ4ttnStKO0PZkb6dKjPU-DsbFUrrc2eG7Bw61I,16341
74
+ mapFolding/someAssemblyRequired/mapFoldingModules/makeMapFoldingModules.py,sha256=braLUATAOUlsJyaVBQnLCSGDYAbwfS7UOkLd4BFhxbM,16355
74
75
  mapFolding/someAssemblyRequired/meanders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- mapFolding/someAssemblyRequired/meanders/makeMeandersModules.py,sha256=fvuZhOzL4LcUrDQq5gFtGF2U7xwlosTlbs_mLkeSr9E,3305
76
+ mapFolding/someAssemblyRequired/meanders/makeMeandersModules.py,sha256=fvIXxxJ6DLfsxgcOMJsht8_JxdbAKfltgQgA3PsYeBM,3444
76
77
  mapFolding/syntheticModules/__init__.py,sha256=evVFqhCGa-WZKDiLcnQWjs-Bj34eRnfSLqz_d7dFYZY,83
77
- mapFolding/syntheticModules/countParallelNumba.py,sha256=IarQHgZmxCt3I1WkRHRrqPwpeBSNzcV6ZEX2X0HrC8c,7777
78
- mapFolding/syntheticModules/daoOfMapFoldingNumba.py,sha256=6V2DwXtmO6EeQXf6oxDp3myp-vbsVq6G0ZjnLRF9rCw,5940
79
- mapFolding/syntheticModules/initializeState.py,sha256=OTiVi1Ywnlwk8tbwSIFjPJa_yBCINoapaCzGXDAJq_k,3121
80
- mapFolding/syntheticModules/theorem2.py,sha256=sqo8AA7CqvejAEuNqo5KIx7shjCQsuh8l8ThJot5RPA,3262
81
- mapFolding/syntheticModules/theorem2Numba.py,sha256=h4ToUvB5Ubesi3mGVrIHErxfEnzeqlvSI7otnJLAo4o,5650
82
- mapFolding/syntheticModules/theorem2Trimmed.py,sha256=JjWz71sBHdlzw1bDhy0rtEVvf6RNR9LVYLUvCdPYJ3g,2930
78
+ mapFolding/syntheticModules/countParallelNumba.py,sha256=_-OoZ07-5oC3WeB603tXUGT9c9-kmsDVtcluMTM8y1U,7784
79
+ mapFolding/syntheticModules/daoOfMapFoldingNumba.py,sha256=OYaMwdyFzlll0OYlUwxQSvyLHgI4QzkDGkCPen1TFJ4,5946
80
+ mapFolding/syntheticModules/initializeState.py,sha256=54kXfjv6Fqv-yQij13736ixDcVzdMIakwlBqd_kN8mw,3122
81
+ mapFolding/syntheticModules/theorem2.py,sha256=QabuLPZ1q0_fK0lkNs1b2QqBbokUkUYGazoK-UF4ssM,3263
82
+ mapFolding/syntheticModules/theorem2Numba.py,sha256=WtEXVExU_ipBwSgztZCPjDayzmL4xd1AecIGenqX1o0,5656
83
+ mapFolding/syntheticModules/theorem2Trimmed.py,sha256=6vOlPYom9XsMyjyu8vIe9pvWbTlfpyow60x3iBvx8Ek,2931
83
84
  mapFolding/syntheticModules/A007822/__init__.py,sha256=evVFqhCGa-WZKDiLcnQWjs-Bj34eRnfSLqz_d7dFYZY,83
84
- mapFolding/syntheticModules/A007822/algorithm.py,sha256=K8H9cyJRhSeQ6ZPYK8ygH7luYh6Z0dpoav-hcWzb5C4,7041
85
- mapFolding/syntheticModules/A007822/asynchronous.py,sha256=mr4_Y6VT7AXrT1Yh6A5kn77c2N-mAjV1zh-8oRvOWd8,8653
86
- mapFolding/syntheticModules/A007822/initializeState.py,sha256=qDl156iCf9qmlHw6O9oJG_9f706dixp21qX7jFW2Qos,4040
87
- mapFolding/syntheticModules/A007822/theorem2.py,sha256=4N4AFuxpJdv9f-7RsH9-yEKYg_66nPbiTi6DFDBymSs,4197
88
- mapFolding/syntheticModules/A007822/theorem2Numba.py,sha256=z9hSU8tPoScQVklipmA1DjAKj5cJduwA5f_ZpNtew54,7138
89
- mapFolding/syntheticModules/A007822/theorem2Trimmed.py,sha256=8QU83qJO0Sxxh8xMOD2sdksOWdYR02qir_qpmzJKcMY,3865
85
+ mapFolding/syntheticModules/A007822/algorithm.py,sha256=rgdABvNKUVtHokn6IwDF_8-FdYsOUNka-rgK-v8PPXU,7020
86
+ mapFolding/syntheticModules/A007822/asynchronous.py,sha256=cHkhBTW4bjXbv1wGijZcjyps9KRNBHBgyq39-ZsvqrY,8523
87
+ mapFolding/syntheticModules/A007822/initializeState.py,sha256=is2AwFWZbTq1rHKRMSJN5pzAlMWu2dLgjw8o9nZwbvk,4059
88
+ mapFolding/syntheticModules/A007822/theorem2.py,sha256=hciTpia3zUZJfl0EqNvn7Sz3PGxPLNczST7fXWzz-JU,4216
89
+ mapFolding/syntheticModules/A007822/theorem2Numba.py,sha256=XyhYEVIl0Dyeu7sgtBDGMTOSZurQJyep1TlHYYdt3Hw,6932
90
+ mapFolding/syntheticModules/A007822/theorem2Trimmed.py,sha256=kZgAK2qka_xoC7H9UiLef0mrG31WRK4Hte2Nf4HiCuI,3884
90
91
  mapFolding/syntheticModules/meanders/__init__.py,sha256=evVFqhCGa-WZKDiLcnQWjs-Bj34eRnfSLqz_d7dFYZY,83
91
- mapFolding/syntheticModules/meanders/bigInt.py,sha256=G6iZbPaEz2gHInMAZ0ZBUgoPbSjS7YYI2QjsxWg-PQE,2962
92
+ mapFolding/syntheticModules/meanders/bigInt.py,sha256=He9Ty9XPQFyt33Ye-LQA2WbaQFRkGpG7SDL9m7IlTA0,4213
92
93
  mapFolding/tests/__init__.py,sha256=QVCHSMFVvTxV3mAyYOLkMFAFyBJ514zdoVnDmpBJnTo,1336
93
94
  mapFolding/tests/conftest.py,sha256=5vV_Vy5ZrV3uoP9bQ8B-Kqc0zMrL7KAhsPJwchMDb6w,15700
94
- mapFolding/tests/test_computations.py,sha256=72b_6rxaJsaIuTVwAF2qkc2rIFJE-bM3hHcFhT756MQ,8600
95
+ mapFolding/tests/test_computations.py,sha256=fnufZVKMXij4MMf_QdW1vkk1RVI-YYr0luRfIt5usMY,9419
95
96
  mapFolding/tests/test_filesystem.py,sha256=0rYQ62f4e3HOoymXrxDWbqNEBJQ7DGN8RUOMI84tE2Q,3892
96
97
  mapFolding/tests/test_oeis.py,sha256=M4Fb0e4_h9QTX9Oy6l5-M1UQfNqeonoGVOn0DJI9huE,4854
97
98
  mapFolding/tests/test_other.py,sha256=ScBiJ78LnyAaW-RhxcouX6Xw10wgpSdqfvT4LO3WjnQ,4766
98
99
  mapFolding/tests/test_tasks.py,sha256=_pr9JRWjjNKA7sww70XvkJJdGPruBVzubM63RmD_Du0,4013
99
100
  mapFolding/zCuzDocStoopid/__init__.py,sha256=uKcGXsaYKH9kQUGHjaY0EtWtU6qybb9Fs09ZYKEFMNs,236
100
101
  mapFolding/zCuzDocStoopid/makeDocstrings.py,sha256=cQl-B-RlAkFijATUTWfKCael46foH-ZsOp1EHoYxoGs,3212
101
- mapfolding-0.16.4.dist-info/licenses/LICENSE,sha256=NxH5Y8BdC-gNU-WSMwim3uMbID2iNDXJz7fHtuTdXhk,19346
102
- mapfolding-0.16.4.dist-info/METADATA,sha256=78ArH8-l_3SsbbH2A4IDuT6P9l7tetRaEvfjHVVO7m0,7690
103
- mapfolding-0.16.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
104
- mapfolding-0.16.4.dist-info/entry_points.txt,sha256=-mH9DjW9tDRMPaeoSWKKywG35cR28m12H_jtmrB4eY8,98
105
- mapfolding-0.16.4.dist-info/top_level.txt,sha256=jNj7ccwEy_9uqs0hsQCO_rPXgaGn8-IMqXePQN6nZTY,19
106
- mapfolding-0.16.4.dist-info/RECORD,,
102
+ mapfolding-0.17.0.dist-info/licenses/LICENSE,sha256=NxH5Y8BdC-gNU-WSMwim3uMbID2iNDXJz7fHtuTdXhk,19346
103
+ mapfolding-0.17.0.dist-info/METADATA,sha256=u8MLZMKsZA4wagvD749W_dpC3y89ghNnc7bt2kAhU_s,7737
104
+ mapfolding-0.17.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
105
+ mapfolding-0.17.0.dist-info/entry_points.txt,sha256=-mH9DjW9tDRMPaeoSWKKywG35cR28m12H_jtmrB4eY8,98
106
+ mapfolding-0.17.0.dist-info/top_level.txt,sha256=jNj7ccwEy_9uqs0hsQCO_rPXgaGn8-IMqXePQN6nZTY,19
107
+ mapfolding-0.17.0.dist-info/RECORD,,
@@ -1,182 +0,0 @@
1
- """Be DRY."""
2
- from functools import cache
3
- from hunterMakesPy import raiseIfNone
4
- from mapFolding.dataBaskets import MatrixMeandersNumPyState
5
- from mapFolding.reference.A000682facts import A000682_n_boundary_buckets
6
- from mapFolding.reference.A005316facts import A005316_n_boundary_buckets
7
- import numpy
8
- import pandas
9
-
10
- """Goals:
11
- - Extreme abstraction.
12
- - Find operations with latent intermediate arrays and make the intermediate array explicit.
13
- - Reduce or eliminate intermediate arrays and selector arrays.
14
- - Write formulas in prefix notation.
15
- - For each formula, find an equivalent prefix notation formula that never uses the same variable as input more than once: that
16
- would allow the evaluation of the expression with only a single stack, which saves memory.
17
- - Standardize code as much as possible to create duplicate code.
18
- - Convert duplicate code to procedures.
19
- """
20
-
21
- def areIntegersWide(state: MatrixMeandersNumPyState, *, dataframe: pandas.DataFrame | None = None, fixedSizeMAXIMUMarcCode: bool = False) -> bool:
22
- """Check if the largest values are wider than the maximum limits.
23
-
24
- Parameters
25
- ----------
26
- state : MatrixMeandersState
27
- The current state of the computation, including `dictionaryMeanders`.
28
- dataframe : pandas.DataFrame | None = None
29
- Optional DataFrame containing 'analyzed' and 'crossings' columns. If provided, use this instead of `state.dictionaryMeanders`.
30
- fixedSizeMAXIMUMarcCode : bool = False
31
- Set this to `True` if you cast `state.MAXIMUMarcCode` to the same fixed size integer type as `state.datatypeArcCode`.
32
-
33
- Returns
34
- -------
35
- wider : bool
36
- True if at least one integer is too wide.
37
-
38
- Notes
39
- -----
40
- Casting `state.MAXIMUMarcCode` to a fixed-size 64-bit unsigned integer might cause the flow to be a little more
41
- complicated because `MAXIMUMarcCode` is usually 1-bit larger than the `max(arcCode)` value.
42
-
43
- If you start the algorithm with very large `arcCode` in your `dictionaryMeanders` (*i.e.,* A000682), then the
44
- flow will go to a function that does not use fixed size integers. When the integers are below the limits (*e.g.,*
45
- `bitWidthArcCodeMaximum`), the flow will go to a function with fixed size integers. In that case, casting
46
- `MAXIMUMarcCode` to a fixed size merely delays the transition from one function to the other by one iteration.
47
-
48
- If you start with small values in `dictionaryMeanders`, however, then the flow goes to the function with fixed size
49
- integers and usually stays there until `crossings` is huge, which is near the end of the computation. If you cast
50
- `MAXIMUMarcCode` into a 64-bit unsigned integer, however, then around `state.boundary == 28`, the bit width of
51
- `MAXIMUMarcCode` might exceed the limit. That will cause the flow to go to the function that does not have fixed size
52
- integers for a few iterations before returning to the function with fixed size integers.
53
- """
54
- if dataframe is not None:
55
- arcCodeWidest = int(dataframe['analyzed'].max()).bit_length()
56
- crossingsWidest = int(dataframe['crossings'].max()).bit_length()
57
- elif not state.dictionaryMeanders:
58
- arcCodeWidest = int(state.arrayArcCodes.max()).bit_length()
59
- crossingsWidest = int(state.arrayCrossings.max()).bit_length()
60
- else:
61
- arcCodeWidest: int = max(state.dictionaryMeanders.keys()).bit_length()
62
- crossingsWidest: int = max(state.dictionaryMeanders.values()).bit_length()
63
-
64
- MAXIMUMarcCode: int = 0
65
- if fixedSizeMAXIMUMarcCode:
66
- MAXIMUMarcCode = state.MAXIMUMarcCode
67
-
68
- return (arcCodeWidest > raiseIfNone(state.bitWidthLimitArcCode)
69
- or crossingsWidest > raiseIfNone(state.bitWidthLimitCrossings)
70
- or MAXIMUMarcCode > raiseIfNone(state.bitWidthLimitArcCode)
71
- )
72
-
73
- @cache
74
- def _flipTheExtra_0b1(intWithExtra_0b1: numpy.uint64) -> numpy.uint64:
75
- return numpy.uint64(intWithExtra_0b1 ^ walkDyckPath(int(intWithExtra_0b1)))
76
-
77
- flipTheExtra_0b1AsUfunc = numpy.frompyfunc(_flipTheExtra_0b1, 1, 1)
78
- """Flip a bit based on Dyck path: element-wise ufunc (*u*niversal *func*tion) for a NumPy `ndarray` (*Num*erical *Py*thon *n-d*imensional array).
79
-
80
- Warning
81
- -------
82
- The function will loop infinitely if an element does not have a bit that needs flipping.
83
-
84
- Parameters
85
- ----------
86
- arrayTarget : numpy.ndarray[tuple[int], numpy.dtype[numpy.unsignedinteger[Any]]]
87
- An array with one axis of unsigned integers and unbalanced closures.
88
-
89
- Returns
90
- -------
91
- arrayFlipped : numpy.ndarray[tuple[int], numpy.dtype[numpy.unsignedinteger[Any]]]
92
- An array with the same shape as `arrayTarget` but with one bit flipped in each element.
93
- """
94
-
95
- def getBucketsTotal(state: MatrixMeandersNumPyState, safetyMultiplicand: float = 1.2) -> int: # noqa: ARG001
96
- """Under renovation: Estimate the total number of non-unique arcCode that will be computed from the existing arcCode.
97
-
98
- Warning
99
- -------
100
- Because `matrixMeandersPandas` does not store anything in `state.arrayArcCodes`, if `matrixMeandersPandas` requests
101
- bucketsTotal for a value not in the dictionary, the returned value will be 0. But `matrixMeandersPandas` should have a safety
102
- check that will allocate more space.
103
-
104
- Notes
105
- -----
106
- TODO remake this function from scratch.
107
-
108
- Factors:
109
- - The starting quantity of `arcCode`.
110
- - The value(s) of the starting `arcCode`.
111
- - n
112
- - boundary
113
- - Whether this bucketsTotal is increasing, as compared to all of the prior bucketsTotal.
114
- - If increasing, is it exponential or logarithmic?
115
- - The maximum value.
116
- - If decreasing, I don't really know the factors.
117
- - If I know the actual value or if I must estimate it.
118
-
119
- Figure out an intelligent flow for so many factors.
120
- """
121
- theDictionary: dict[str, dict[int, dict[int, int]]] = {'A005316': A005316_n_boundary_buckets, 'A000682': A000682_n_boundary_buckets}
122
- bucketsTotal: int = theDictionary.get(state.oeisID, {}).get(state.n, {}).get(state.boundary, 0)
123
- if bucketsTotal <= 0:
124
- bucketsTotal = int(3.55 * len(state.arrayArcCodes))
125
-
126
- return bucketsTotal
127
-
128
- def getSignaturesTotal(state: MatrixMeandersNumPyState) -> int:
129
- """Get the total number of signatures for the current `n` and `boundary`.
130
-
131
- Parameters
132
- ----------
133
- state : MatrixMeandersState
134
- The current state of the computation.
135
-
136
- Returns
137
- -------
138
- signaturesTotal : int
139
- The total number of signatures for the current `n` and `boundary`.
140
-
141
- """
142
- from mapFolding.reference.matrixMeandersAnalysis.signatures import signatures # noqa: PLC0415
143
- return signatures[state.oeisID].get(state.n, {}).get(state.boundary, int(3.55 * len(state.arrayArcCodes)))
144
-
145
- @cache
146
- def walkDyckPath(intWithExtra_0b1: int) -> int:
147
- """Find the bit position for flipping paired curve endpoints in meander transfer matrices.
148
-
149
- Parameters
150
- ----------
151
- intWithExtra_0b1 : int
152
- Binary representation of curve locations with an extra bit encoding parity information.
153
-
154
- Returns
155
- -------
156
- flipExtra_0b1_Here : int
157
- Bit mask indicating the position where the balance condition fails, formatted as 2^(2k).
158
-
159
- 3L33T H@X0R
160
- ------------
161
- Binary search for first negative balance in shifted bit pairs. Returns 2^(2k) mask for
162
- bit position k where cumulative balance counter transitions from non-negative to negative.
163
-
164
- Mathematics
165
- -----------
166
- Implements the Dyck path balance verification algorithm from Jensen's transfer matrix
167
- enumeration. Computes the position where ∑(i=0 to k) (-1)^b_i < 0 for the first time,
168
- where b_i are the bits of the input at positions 2i.
169
-
170
- """
171
- findTheExtra_0b1: int = 0
172
- flipExtra_0b1_Here: int = 1
173
- while True:
174
- flipExtra_0b1_Here <<= 2
175
- if intWithExtra_0b1 & flipExtra_0b1_Here == 0:
176
- findTheExtra_0b1 += 1
177
- else:
178
- findTheExtra_0b1 -= 1
179
- if findTheExtra_0b1 < 0:
180
- break
181
- return flipExtra_0b1_Here
182
-