mapFolding 0.17.0__py3-none-any.whl → 0.18.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.
- easyRun/NOTcountingFolds.py +16 -10
- easyRun/__init__.py +1 -0
- easyRun/countFolds.py +17 -9
- easyRun/meanders.py +6 -8
- mapFolding/__init__.py +24 -35
- mapFolding/_e/Z0Z_analysisPython/SORTZ0Z_hypothesis.py +189 -0
- mapFolding/_e/Z0Z_analysisPython/SORTZ0Z_p2d6.py +143 -0
- mapFolding/_e/Z0Z_analysisPython/__init__.py +4 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/__init__.py +0 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/270/200.py +369 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/270/2001.py +694 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/270/200/344/270/211.py +514 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/270/200/344/270/2111.py +480 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/270/200/344/272/214.py +511 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/270/200/344/272/2141.py +515 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/270/200/344/272/214/344/270/211.py +485 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/270/200/344/272/214/344/270/2111.py +442 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/270/211.py +313 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/270/2111.py +343 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/272/214.py +400 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/272/2141.py +497 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/272/214/344/270/211.py +463 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/344/272/214/344/270/2111.py +441 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266.py +35 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/2661.py +35 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/270/200.py +382 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/270/2001.py +630 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/270/200/344/270/211.py +488 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/270/200/344/270/2111.py +475 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/270/200/344/272/214.py +473 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/270/200/344/272/2141.py +500 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/270/200/344/272/214/344/270/211.py +465 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/270/200/344/272/214/344/270/2111.py +439 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/270/211.py +599 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/270/2111.py +536 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/272/214.py +506 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/272/2141.py +533 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/272/214/344/270/211.py +489 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/aggregated/351/246/226/351/233/266/344/272/214/344/270/2111.py +474 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200.py +1186 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/2001.py +2158 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/2001Negative.py +2158 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200Negative.py +1186 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/270/211.py +1397 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/270/2111.py +1291 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/270/2111Negative.py +1291 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/270/211Negative.py +1397 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/272/214.py +1240 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/272/2141.py +1420 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/272/2141Negative.py +1420 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/272/214Negative.py +1240 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/272/214/344/270/211.py +1366 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/272/214/344/270/2111.py +1274 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/272/214/344/270/2111Negative.py +1274 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/200/344/272/214/344/270/211Negative.py +1366 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/211.py +1186 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/2111.py +1186 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/2111Negative.py +1186 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/270/211Negative.py +1186 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/272/214.py +1102 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/272/2141.py +1422 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/272/2141Negative.py +1422 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/272/214Negative.py +1102 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/272/214/344/270/211.py +1240 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/272/214/344/270/2111.py +1228 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/272/214/344/270/2111Negative.py +1228 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/344/272/214/344/270/211Negative.py +1240 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266.py +32 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/2661.py +1162 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/2661Negative.py +1162 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266Negative.py +32 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200.py +1186 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/2001.py +1926 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/2001Negative.py +1926 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200Negative.py +1186 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/270/211.py +1291 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/270/2111.py +1176 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/270/2111Negative.py +1176 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/270/211Negative.py +1291 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/272/214.py +1228 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/272/2141.py +1324 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/272/2141Negative.py +1324 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/272/214Negative.py +1228 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/272/214/344/270/211.py +1274 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/272/214/344/270/2111.py +1038 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/272/214/344/270/2111Negative.py +1038 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/200/344/272/214/344/270/211Negative.py +1274 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/211.py +2158 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/2111.py +1926 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/2111Negative.py +1926 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/270/211Negative.py +2158 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/272/214.py +1422 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/272/2141.py +1364 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/272/2141Negative.py +1364 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/272/214Negative.py +1422 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/272/214/344/270/211.py +1420 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/272/214/344/270/2111.py +1324 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/272/214/344/270/2111Negative.py +1324 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d5/351/246/226/351/233/266/344/272/214/344/270/211Negative.py +1420 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200.py +3133 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/2001.py +6039 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/2001Negative.py +6039 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200Negative.py +3133 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/270/211.py +3527 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/270/2111.py +2300 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/270/2111Negative.py +2300 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/270/211Negative.py +3527 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/272/214.py +3597 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/272/2141.py +3317 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/272/2141Negative.py +3317 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/272/214Negative.py +3597 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/272/214/344/270/211.py +3161 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/272/214/344/270/2111.py +2877 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/272/214/344/270/2111Negative.py +2877 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/200/344/272/214/344/270/211Negative.py +3161 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/211.py +2981 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/2111.py +3055 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/2111Negative.py +3055 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/270/211Negative.py +2981 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/272/214.py +3221 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/272/2141.py +3988 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/272/2141Negative.py +3988 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/272/214Negative.py +3221 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/272/214/344/270/211.py +3652 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/272/214/344/270/2111.py +2863 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/272/214/344/270/2111Negative.py +2863 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/344/272/214/344/270/211Negative.py +3652 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200.py +2485 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/2001.py +4566 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/2001Negative.py +4566 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200Negative.py +2485 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/270/211.py +3006 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/270/2111.py +2485 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/270/2111Negative.py +2485 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/270/211Negative.py +3006 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/272/214.py +3304 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/272/2141.py +3015 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/272/2141Negative.py +3015 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/272/214Negative.py +3304 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/272/214/344/270/211.py +2939 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/272/214/344/270/2111.py +2589 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/272/214/344/270/2111Negative.py +2589 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/200/344/272/214/344/270/211Negative.py +2939 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/211.py +3899 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/2111.py +2996 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/2111Negative.py +2996 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/270/211Negative.py +3899 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/272/214.py +3223 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/272/2141.py +3020 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/272/2141Negative.py +3020 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/272/214Negative.py +3223 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/272/214/344/270/211.py +3250 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/272/214/344/270/2111.py +2667 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/272/214/344/270/2111Negative.py +2667 -0
- mapFolding/_e/Z0Z_analysisPython/exclusionData/collatedp2d6/351/246/226/351/233/266/344/272/214/344/270/211Negative.py +3250 -0
- mapFolding/_e/Z0Z_analysisPython/measure.py +162 -0
- mapFolding/_e/Z0Z_analysisPython/positionAnalysis.py +403 -0
- mapFolding/_e/Z0Z_analysisPython/positionAnalysisPileRanges2d6.py +110 -0
- mapFolding/_e/Z0Z_analysisPython/theExcluderBeast.py +640 -0
- mapFolding/_e/Z0Z_analysisPython/toolkit.py +166 -0
- mapFolding/_e/Z0Z_analysisPython/toolkitCSVsequences.py +188 -0
- mapFolding/_e/Z0Z_analysisPython/workBenchPatternFinder.py +284 -0
- mapFolding/_e/Z0Z_notes/__init__.py +0 -0
- mapFolding/_e/Z0Z_notes/knowledgeDump.py +214 -0
- mapFolding/_e/__init__.py +45 -0
- mapFolding/_e/_beDRY.py +547 -0
- mapFolding/_e/_dataDynamic.py +1164 -0
- mapFolding/_e/_measure.py +579 -0
- mapFolding/_e/_semiotics.py +363 -0
- mapFolding/_e/_theTypes.py +31 -0
- mapFolding/_e/algorithms/__init__.py +1 -0
- mapFolding/_e/algorithms/constraintPropagation.py +158 -0
- mapFolding/_e/algorithms/elimination.py +118 -0
- mapFolding/_e/algorithms/eliminationCrease.py +66 -0
- mapFolding/_e/algorithms/iff.py +584 -0
- mapFolding/_e/basecamp.py +89 -0
- mapFolding/_e/dataBaskets.py +123 -0
- mapFolding/_e/dataRaw/__init__.py +0 -0
- mapFolding/_e/easyRun/__init__.py +0 -0
- mapFolding/_e/easyRun/eliminateFolds.py +72 -0
- mapFolding/_e/easyRun/pinning.py +62 -0
- mapFolding/_e/filters.py +384 -0
- mapFolding/_e/pin2/344/270/212nDimensions.py +882 -0
- mapFolding/_e/pin2/344/270/212nDimensionsAnnex.py +551 -0
- mapFolding/_e/pin2/344/270/212nDimensionsByCrease.py +190 -0
- mapFolding/_e/pin2/344/270/212nDimensionsByDomain.py +459 -0
- mapFolding/_e/pinIt.py +436 -0
- mapFolding/_semiotics.py +42 -0
- mapFolding/_theSSOT.py +11 -56
- mapFolding/_theTypes.py +52 -68
- mapFolding/algorithms/A086345.py +8 -3
- mapFolding/algorithms/__init__.py +1 -1
- mapFolding/algorithms/matrixMeandersNumPyndas.py +18 -18
- mapFolding/algorithms/oeisIDbyFormula.py +4 -4
- mapFolding/algorithms/zCuzDocStoopidoeisIDbyFormula.py +3 -3
- mapFolding/basecamp.py +13 -28
- mapFolding/beDRY.py +108 -99
- mapFolding/filesystemToolkit.py +15 -11
- mapFolding/oeis.py +17 -16
- mapFolding/reference/matrixMeandersAnalysis/prefixNotationNotes.py +2 -2
- mapFolding/reference/meandersDumpingGround/matrixMeandersBaselineV2.py +0 -1
- mapFolding/reference/meandersDumpingGround/matrixMeandersNumPyV1finalForm.py +8 -10
- mapFolding/someAssemblyRequired/RecipeJob.py +5 -5
- mapFolding/someAssemblyRequired/makeJobTheorem2Numba.py +5 -2
- mapFolding/someAssemblyRequired/makeJobTheorem2codon.py +9 -11
- mapFolding/someAssemblyRequired/mapFoldingModules/makeMapFoldingModules.py +2 -1
- mapFolding/someAssemblyRequired/transformationTools.py +2 -2
- mapFolding/tests/Z0Z_test_e_excluder.py +155 -0
- mapFolding/tests/conftest.py +193 -314
- mapFolding/tests/dataSamples/A001417.py +455 -0
- mapFolding/tests/dataSamples/__init__.py +1 -0
- mapFolding/tests/dataSamples/measurementData.py +1818 -0
- mapFolding/tests/dataSamples/p2DnDomain3_2_/351/246/226/344/270/200_/351/246/226/351/233/266/344/270/200.py +17 -0
- mapFolding/tests/dataSamples/p2DnDomain3_/351/246/226/344/270/200.py +17 -0
- mapFolding/tests/dataSamples/p2DnDomain5_4.py +17 -0
- mapFolding/tests/dataSamples/p2DnDomain6_5.py +17 -0
- mapFolding/tests/dataSamples/p2DnDomain6_7_5_4.py +17 -0
- mapFolding/tests/dataSamples/p2DnDomain7_6.py +17 -0
- mapFolding/tests/dataSamples/p2DnDomain/351/246/226/344/272/214_/351/246/226/351/233/266/344/270/200/344/272/214.py +17 -0
- mapFolding/tests/dataSamples/p2DnDomain/351/246/226/344/272/214_/351/246/226/351/233/266/344/272/214_/351/246/226/351/233/266/344/270/200/344/272/214_/351/246/226/344/270/200/344/272/214.py +17 -0
- mapFolding/tests/dataSamples/p2DnDomain/351/246/226/351/233/266/344/270/200/344/272/214_/351/246/226/344/270/200/344/272/214.py +15 -0
- mapFolding/tests/dataSamples/p2DnDomain/351/246/226/351/233/266/344/272/214_/351/246/226/344/272/214.py +15 -0
- mapFolding/tests/dataSamples/semioticsData.py +135 -0
- mapFolding/tests/test_computations.py +133 -88
- mapFolding/tests/test_e_computations.py +42 -0
- mapFolding/tests/test_e_dataDynamic.py +189 -0
- mapFolding/tests/test_e_measurements.py +257 -0
- mapFolding/tests/test_e_pinning.py +61 -0
- mapFolding/tests/test_e_semiotics.py +128 -0
- mapFolding/tests/test_filesystem.py +39 -17
- mapFolding/tests/{test_other.py → test_parameterValidation.py} +3 -3
- mapFolding/tests/{test_tasks.py → test_taskDivisions.py} +42 -23
- mapFolding/zCuzDocStoopid/makeDocstrings.py +3 -2
- {mapfolding-0.17.0.dist-info → mapfolding-0.18.0.dist-info}/METADATA +15 -9
- mapfolding-0.18.0.dist-info/RECORD +305 -0
- {mapfolding-0.17.0.dist-info → mapfolding-0.18.0.dist-info}/WHEEL +1 -1
- easyRun/A000682.py +0 -25
- easyRun/A005316.py +0 -20
- mapFolding/algorithms/A000136constraintPropagation.py +0 -95
- mapFolding/algorithms/A000136elimination.py +0 -163
- mapFolding/algorithms/A000136eliminationParallel.py +0 -77
- mapfolding-0.17.0.dist-info/RECORD +0 -107
- {mapfolding-0.17.0.dist-info → mapfolding-0.18.0.dist-info}/entry_points.txt +0 -0
- {mapfolding-0.17.0.dist-info → mapfolding-0.18.0.dist-info}/licenses/LICENSE +0 -0
- {mapfolding-0.17.0.dist-info → mapfolding-0.18.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
"""You can use this module to measure bit-level coordinate features of `leaf` and `pile` integers.
|
|
2
|
+
|
|
3
|
+
(AI generated docstring)
|
|
4
|
+
|
|
5
|
+
This module treats an `int` value as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
6
|
+
For $2^n$-dimensional maps, the proxy uses base $2$ digits, where each digit position corresponds to a dimension index.
|
|
7
|
+
The conventions for dimension-index ideographs and related constants live in `mapFolding._e._semiotics` [2].
|
|
8
|
+
|
|
9
|
+
Contents
|
|
10
|
+
--------
|
|
11
|
+
dimensionFourthNearest首
|
|
12
|
+
You can locate the fourth most-significant non-zero digit index.
|
|
13
|
+
dimensionNearestTail
|
|
14
|
+
You can locate the least-significant non-zero digit index.
|
|
15
|
+
dimensionNearest首
|
|
16
|
+
You can locate the most-significant non-zero digit index.
|
|
17
|
+
dimensionSecondNearest首
|
|
18
|
+
You can locate the second most-significant non-zero digit index.
|
|
19
|
+
dimensionThirdNearest首
|
|
20
|
+
You can locate the third most-significant non-zero digit index.
|
|
21
|
+
dimensionsConsecutiveAtTail
|
|
22
|
+
You can count consecutive tail digits with value `1` in a masked width.
|
|
23
|
+
howManyDimensionsHaveOddParity
|
|
24
|
+
You can count non-head digits with value `1`.
|
|
25
|
+
invertLeafIn2上nDimensions
|
|
26
|
+
You can invert base-2 digits within a fixed dimension count.
|
|
27
|
+
leafInSubHyperplane
|
|
28
|
+
You can project a non-origin `leaf` to a sub-hyperplane by dropping the head digit.
|
|
29
|
+
ptount
|
|
30
|
+
You can compute a bit-count-derived measurement after subtracting `一+零`.
|
|
31
|
+
|
|
32
|
+
References
|
|
33
|
+
----------
|
|
34
|
+
[1] Positional notation - Wikipedia
|
|
35
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
36
|
+
[2] mapFolding._e._semiotics
|
|
37
|
+
Internal package reference
|
|
38
|
+
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
from functools import cache
|
|
42
|
+
from gmpy2 import bit_flip, bit_mask, bit_scan1, f_mod_2exp
|
|
43
|
+
from hunterMakesPy import raiseIfNone
|
|
44
|
+
from hunterMakesPy.parseParameters import intInnit
|
|
45
|
+
from mapFolding._e import 一, 零
|
|
46
|
+
from mapFolding._e.dataBaskets import EliminationState
|
|
47
|
+
from operator import getitem
|
|
48
|
+
|
|
49
|
+
def dimensionsConsecutiveAtTail(state: EliminationState, integerNonnegative: int) -> int:
|
|
50
|
+
"""You can count consecutive tail radix-2 digits with value `1` in `integerNonnegative`.
|
|
51
|
+
|
|
52
|
+
This function treats `integerNonnegative` as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
53
|
+
This function uses the dimension-count `state.dimensionsTotal` to invert digits within a fixed width, using the conventions
|
|
54
|
+
in `mapFolding._e._semiotics` [2].
|
|
55
|
+
This function uses `gmpy2.bit_scan1` [3] on the inverted value.
|
|
56
|
+
|
|
57
|
+
Parameters
|
|
58
|
+
----------
|
|
59
|
+
state : EliminationState
|
|
60
|
+
State container that provides `state.dimensionsTotal`.
|
|
61
|
+
integerNonnegative : int
|
|
62
|
+
Input value interpreted as a base-2 positional coordinate encoding.
|
|
63
|
+
|
|
64
|
+
Returns
|
|
65
|
+
-------
|
|
66
|
+
digitsTrailingOnes : int
|
|
67
|
+
The count of consecutive least-significant base-2 digits equal to `1`, bounded by `state.dimensionsTotal`.
|
|
68
|
+
|
|
69
|
+
Raises
|
|
70
|
+
------
|
|
71
|
+
ValueError
|
|
72
|
+
Raised when `integerNonnegative` is less than `0`.
|
|
73
|
+
|
|
74
|
+
Examples
|
|
75
|
+
--------
|
|
76
|
+
This function is used when selecting leaf exclusions.
|
|
77
|
+
|
|
78
|
+
>>> if (is_even(leafAt二Ante首)
|
|
79
|
+
... or (is_odd(leafAt二Ante首) and (dimensionIndex(dimension) < dimensionsConsecutiveAtTail(state, leafAt二Ante首)))):
|
|
80
|
+
... listRemoveLeaves.extend([dimension])
|
|
81
|
+
|
|
82
|
+
References
|
|
83
|
+
----------
|
|
84
|
+
[1] Positional notation - Wikipedia
|
|
85
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
86
|
+
[2] mapFolding._e._semiotics
|
|
87
|
+
Internal package reference
|
|
88
|
+
[3] gmpy2 documentation
|
|
89
|
+
https://gmpy2.readthedocs.io/en/latest/
|
|
90
|
+
"""
|
|
91
|
+
# NOTE HEY! `invertLeafIn2上nDimensions` is pulling double duty: it sanitizes `integerNonnegative` and inverts it. So if you figure out how to
|
|
92
|
+
# achieve this functionality without calling `invertLeafIn2上nDimensions`, you need to add defensive code here.
|
|
93
|
+
anInteger: int = invertLeafIn2上nDimensions(state.dimensionsTotal, integerNonnegative)
|
|
94
|
+
return bit_scan1(anInteger) or 0
|
|
95
|
+
|
|
96
|
+
@cache
|
|
97
|
+
def dimensionNearest首(integerNonnegative: int, /) -> int:
|
|
98
|
+
"""You can locate the most-significant non-zero radix-2 digit index in `integerNonnegative`.
|
|
99
|
+
|
|
100
|
+
This function treats `integerNonnegative` as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
101
|
+
The most-significant non-zero digit index corresponds to the dimension index nearest the head ideograph `首`, following
|
|
102
|
+
`mapFolding._e._semiotics` [2].
|
|
103
|
+
This function validates `integerNonnegative` using `hunterMakesPy.parseParameters.intInnit` [3].
|
|
104
|
+
|
|
105
|
+
Parameters
|
|
106
|
+
----------
|
|
107
|
+
integerNonnegative : int
|
|
108
|
+
Input value interpreted as a base-2 positional coordinate encoding.
|
|
109
|
+
|
|
110
|
+
Returns
|
|
111
|
+
-------
|
|
112
|
+
dimensionIndexNearest首 : int
|
|
113
|
+
The 0-indexed position of the most-significant base-2 digit with value `1`.
|
|
114
|
+
|
|
115
|
+
Raises
|
|
116
|
+
------
|
|
117
|
+
ValueError
|
|
118
|
+
Raised when `integerNonnegative` is less than `0`.
|
|
119
|
+
|
|
120
|
+
Examples
|
|
121
|
+
--------
|
|
122
|
+
This function is used to compute a head-dimension index.
|
|
123
|
+
|
|
124
|
+
>>> dimensionHead: int = dimensionNearest首(leafAt二)
|
|
125
|
+
|
|
126
|
+
References
|
|
127
|
+
----------
|
|
128
|
+
[1] Positional notation - Wikipedia
|
|
129
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
130
|
+
[2] mapFolding._e._semiotics
|
|
131
|
+
Internal package reference
|
|
132
|
+
[3] hunterMakesPy
|
|
133
|
+
https://context7.com/hunterhogan/huntermakespy
|
|
134
|
+
"""
|
|
135
|
+
anInteger: int = getitem(intInnit([integerNonnegative], 'integerNonnegative', int), 0)
|
|
136
|
+
if anInteger < 0:
|
|
137
|
+
message: str = f"I received `{integerNonnegative = }`, but I need a value greater than or equal to 0."
|
|
138
|
+
raise ValueError(message)
|
|
139
|
+
return max(0, anInteger.bit_length() - 1)
|
|
140
|
+
|
|
141
|
+
@cache
|
|
142
|
+
def dimensionSecondNearest首(integerNonnegative: int, /) -> int | None:
|
|
143
|
+
"""You can locate the second most-significant non-zero radix-2 digit index in `integerNonnegative`.
|
|
144
|
+
|
|
145
|
+
This function treats `integerNonnegative` as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
146
|
+
The digit order is interpreted relative to the head ideograph `首`, following `mapFolding._e._semiotics` [2].
|
|
147
|
+
This function uses `gmpy2.bit_flip` [3] to clear the most-significant digit.
|
|
148
|
+
This function validates `integerNonnegative` using `hunterMakesPy.parseParameters.intInnit` [4].
|
|
149
|
+
|
|
150
|
+
Parameters
|
|
151
|
+
----------
|
|
152
|
+
integerNonnegative : int
|
|
153
|
+
Input value interpreted as a base-2 positional coordinate encoding.
|
|
154
|
+
|
|
155
|
+
Returns
|
|
156
|
+
-------
|
|
157
|
+
dimensionIndexSecondNearest首 : int | None
|
|
158
|
+
The 0-indexed position of the second most-significant base-2 digit with value `1`.
|
|
159
|
+
The return value is `None` when `integerNonnegative` has fewer than two non-zero digits.
|
|
160
|
+
|
|
161
|
+
Raises
|
|
162
|
+
------
|
|
163
|
+
ValueError
|
|
164
|
+
Raised when `integerNonnegative` is less than `0`.
|
|
165
|
+
|
|
166
|
+
Examples
|
|
167
|
+
--------
|
|
168
|
+
This function is used as part of exclusion rules.
|
|
169
|
+
|
|
170
|
+
>>> if (howManyDimensionsHaveOddParity(pileOfLeaf二一) == 1
|
|
171
|
+
... and (dimensionNearest首(pileOfLeaf二一) - raiseIfNone(dimensionSecondNearest首(pileOfLeaf二一)) < 2)
|
|
172
|
+
... ):
|
|
173
|
+
... addend: int = productsOfDimensions[dimensionsTotal-2] + 4
|
|
174
|
+
|
|
175
|
+
References
|
|
176
|
+
----------
|
|
177
|
+
[1] Positional notation - Wikipedia
|
|
178
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
179
|
+
[2] mapFolding._e._semiotics
|
|
180
|
+
Internal package reference
|
|
181
|
+
[3] gmpy2 documentation
|
|
182
|
+
https://gmpy2.readthedocs.io/en/latest/
|
|
183
|
+
[4] hunterMakesPy
|
|
184
|
+
https://context7.com/hunterhogan/huntermakespy
|
|
185
|
+
"""
|
|
186
|
+
anInteger: int = getitem(intInnit([integerNonnegative], 'integerNonnegative', int), 0)
|
|
187
|
+
if anInteger < 0:
|
|
188
|
+
message: str = f"I received `{integerNonnegative = }`, but I need a value greater than or equal to 0."
|
|
189
|
+
raise ValueError(message)
|
|
190
|
+
dimensionSecondNearest: int | None = None
|
|
191
|
+
anotherInteger: int = int(bit_flip(anInteger, dimensionNearest首(anInteger)))
|
|
192
|
+
if anotherInteger == 0:
|
|
193
|
+
dimensionSecondNearest = None
|
|
194
|
+
else:
|
|
195
|
+
dimensionSecondNearest = dimensionNearest首(anotherInteger)
|
|
196
|
+
return dimensionSecondNearest
|
|
197
|
+
|
|
198
|
+
@cache
|
|
199
|
+
def dimensionThirdNearest首(integerNonnegative: int, /) -> int | None:
|
|
200
|
+
"""You can locate the third most-significant non-zero radix-2 digit index in `integerNonnegative`.
|
|
201
|
+
|
|
202
|
+
This function treats `integerNonnegative` as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
203
|
+
The digit order is interpreted relative to the head ideograph `首`, following `mapFolding._e._semiotics` [2].
|
|
204
|
+
This function uses `gmpy2.bit_flip` [3] to clear digits.
|
|
205
|
+
This function validates `integerNonnegative` using `hunterMakesPy.parseParameters.intInnit` [4].
|
|
206
|
+
|
|
207
|
+
Parameters
|
|
208
|
+
----------
|
|
209
|
+
integerNonnegative : int
|
|
210
|
+
Input value interpreted as a base-2 positional coordinate encoding.
|
|
211
|
+
|
|
212
|
+
Returns
|
|
213
|
+
-------
|
|
214
|
+
dimensionIndexThirdNearest首 : int | None
|
|
215
|
+
The 0-indexed position of the third most-significant base-2 digit with value `1`.
|
|
216
|
+
The return value is `None` when `integerNonnegative` has fewer than three non-zero digits.
|
|
217
|
+
|
|
218
|
+
Raises
|
|
219
|
+
------
|
|
220
|
+
ValueError
|
|
221
|
+
Raised when `integerNonnegative` is less than `0`.
|
|
222
|
+
|
|
223
|
+
Examples
|
|
224
|
+
--------
|
|
225
|
+
This function is used in domain index elimination.
|
|
226
|
+
|
|
227
|
+
>>> if (dimensionThirdNearest首(pileOfLeaf零) == 一) and (二+零 <= dimensionNearest首(pileOfLeaf零)):
|
|
228
|
+
... indexDomain0: int = (pilesTotal // 2) + 1
|
|
229
|
+
... listIndicesPilesExcluded.extend([indexDomain0])
|
|
230
|
+
|
|
231
|
+
References
|
|
232
|
+
----------
|
|
233
|
+
[1] Positional notation - Wikipedia
|
|
234
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
235
|
+
[2] mapFolding._e._semiotics
|
|
236
|
+
Internal package reference
|
|
237
|
+
[3] gmpy2 documentation
|
|
238
|
+
https://gmpy2.readthedocs.io/en/latest/
|
|
239
|
+
[4] hunterMakesPy
|
|
240
|
+
https://context7.com/hunterhogan/huntermakespy
|
|
241
|
+
"""
|
|
242
|
+
anInteger: int = getitem(intInnit([integerNonnegative], 'integerNonnegative', int), 0)
|
|
243
|
+
if anInteger < 0:
|
|
244
|
+
message: str = f"I received `{integerNonnegative = }`, but I need a value greater than or equal to 0."
|
|
245
|
+
raise ValueError(message)
|
|
246
|
+
|
|
247
|
+
dimensionNearest: int = dimensionNearest首(anInteger)
|
|
248
|
+
dimensionSecondNearest: int | None = dimensionSecondNearest首(anInteger)
|
|
249
|
+
dimensionThirdNearest: int | None = None
|
|
250
|
+
|
|
251
|
+
if dimensionSecondNearest in [0, None]:
|
|
252
|
+
dimensionThirdNearest = None
|
|
253
|
+
else:
|
|
254
|
+
anotherInteger: int = int(bit_flip(anInteger, dimensionNearest).bit_flip(raiseIfNone(dimensionSecondNearest)))
|
|
255
|
+
if anotherInteger == 0:
|
|
256
|
+
dimensionThirdNearest = None
|
|
257
|
+
else:
|
|
258
|
+
dimensionThirdNearest = dimensionNearest首(anotherInteger)
|
|
259
|
+
return dimensionThirdNearest
|
|
260
|
+
|
|
261
|
+
@cache
|
|
262
|
+
def dimensionFourthNearest首(integerNonnegative: int, /) -> int | None:
|
|
263
|
+
"""You can locate the fourth most-significant non-zero radix-2 digit index in `integerNonnegative`.
|
|
264
|
+
|
|
265
|
+
This function treats `integerNonnegative` as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
266
|
+
The digit order is interpreted relative to the head ideograph `首`, following `mapFolding._e._semiotics` [2].
|
|
267
|
+
This function uses `gmpy2.bit_flip` [3] to clear digits.
|
|
268
|
+
This function validates `integerNonnegative` using `hunterMakesPy.parseParameters.intInnit` [4].
|
|
269
|
+
|
|
270
|
+
Parameters
|
|
271
|
+
----------
|
|
272
|
+
integerNonnegative : int
|
|
273
|
+
Input value interpreted as a base-2 positional coordinate encoding.
|
|
274
|
+
|
|
275
|
+
Returns
|
|
276
|
+
-------
|
|
277
|
+
dimensionIndexFourthNearest首 : int | None
|
|
278
|
+
The 0-indexed position of the fourth most-significant base-2 digit with value `1`.
|
|
279
|
+
The return value is `None` when `integerNonnegative` has fewer than four non-zero digits.
|
|
280
|
+
|
|
281
|
+
Raises
|
|
282
|
+
------
|
|
283
|
+
ValueError
|
|
284
|
+
Raised when `integerNonnegative` is less than `0`.
|
|
285
|
+
|
|
286
|
+
Examples
|
|
287
|
+
--------
|
|
288
|
+
This function is used as a refinement when a third-nearest digit matches a specific pattern.
|
|
289
|
+
|
|
290
|
+
>>> if dimensionThirdNearest首(pileOfLeaf零) == 一+零:
|
|
291
|
+
... indexDomain0 = pilesTotal // 4
|
|
292
|
+
... if dimensionFourthNearest首(pileOfLeaf零) == 一:
|
|
293
|
+
... indicesDomain0ToExclude.extend([indexDomain0])
|
|
294
|
+
|
|
295
|
+
References
|
|
296
|
+
----------
|
|
297
|
+
[1] Positional notation - Wikipedia
|
|
298
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
299
|
+
[2] mapFolding._e._semiotics
|
|
300
|
+
Internal package reference
|
|
301
|
+
[3] gmpy2 documentation
|
|
302
|
+
https://gmpy2.readthedocs.io/en/latest/
|
|
303
|
+
[4] hunterMakesPy
|
|
304
|
+
https://context7.com/hunterhogan/huntermakespy
|
|
305
|
+
"""
|
|
306
|
+
anInteger: int = getitem(intInnit([integerNonnegative], 'integerNonnegative', int), 0)
|
|
307
|
+
if anInteger < 0:
|
|
308
|
+
message: str = f"I received `{integerNonnegative = }`, but I need a value greater than or equal to 0."
|
|
309
|
+
raise ValueError(message)
|
|
310
|
+
|
|
311
|
+
dimensionNearest: int = dimensionNearest首(anInteger)
|
|
312
|
+
dimensionSecondNearest: int | None = dimensionSecondNearest首(anInteger)
|
|
313
|
+
dimensionThirdNearest: int | None = dimensionThirdNearest首(anInteger)
|
|
314
|
+
dimensionFourthNearest: int | None = None
|
|
315
|
+
|
|
316
|
+
if dimensionThirdNearest in [0, None]:
|
|
317
|
+
dimensionFourthNearest = None
|
|
318
|
+
else:
|
|
319
|
+
anotherInteger: int = int(bit_flip(anInteger, dimensionNearest).bit_flip(raiseIfNone(dimensionSecondNearest)).bit_flip(raiseIfNone(dimensionThirdNearest)))
|
|
320
|
+
if anotherInteger == 0:
|
|
321
|
+
dimensionFourthNearest = None
|
|
322
|
+
else:
|
|
323
|
+
dimensionFourthNearest = dimensionNearest首(anotherInteger)
|
|
324
|
+
return dimensionFourthNearest
|
|
325
|
+
|
|
326
|
+
@cache
|
|
327
|
+
def leafInSubHyperplane(notLeafOrigin: int, /) -> int:
|
|
328
|
+
"""You can project `notLeafOrigin` to a sub-hyperplane by dropping the head radix-2 digit.
|
|
329
|
+
|
|
330
|
+
(AI generated docstring, which may or may not have been accurate; edited by me, Hunter Hogan, which may or may not have improved it.)
|
|
331
|
+
|
|
332
|
+
This function treats `notLeafOrigin` as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
333
|
+
For $2^n$-dimensional maps, the base $2$ most-significant digit marks the dimension index nearest the head ideograph `首`, following
|
|
334
|
+
`mapFolding._e._semiotics` [2].
|
|
335
|
+
|
|
336
|
+
This function returns the value formed by removing the most-significant non-zero digit and preserving the remaining digits.
|
|
337
|
+
This function is implemented as a modulus operation on a power of two using `gmpy2.f_mod_2exp` [3].
|
|
338
|
+
This function validates `notLeafOrigin` using `hunterMakesPy.parseParameters.intInnit` [4].
|
|
339
|
+
|
|
340
|
+
Parameters
|
|
341
|
+
----------
|
|
342
|
+
notLeafOrigin : int
|
|
343
|
+
A `leaf` value that is not equal to `leafOrigin`.
|
|
344
|
+
|
|
345
|
+
Returns
|
|
346
|
+
-------
|
|
347
|
+
leafSubHyperplane : int
|
|
348
|
+
The `leaf` value in the sub-hyperplane implied by `notLeafOrigin`.
|
|
349
|
+
|
|
350
|
+
Raises
|
|
351
|
+
------
|
|
352
|
+
ValueError
|
|
353
|
+
Raised when `notLeafOrigin` is less than `1`.
|
|
354
|
+
|
|
355
|
+
Examples
|
|
356
|
+
--------
|
|
357
|
+
This function is used when a `leaf` has a specific parity pattern.
|
|
358
|
+
|
|
359
|
+
>>> if howManyDimensionsHaveOddParity(leafAt二Ante首) == 1:
|
|
360
|
+
... listRemoveLeaves.extend([leafInSubHyperplane(leafAt二Ante首)])
|
|
361
|
+
|
|
362
|
+
References
|
|
363
|
+
----------
|
|
364
|
+
[1] Positional notation - Wikipedia
|
|
365
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
366
|
+
[2] mapFolding._e._semiotics
|
|
367
|
+
Internal package reference
|
|
368
|
+
[3] gmpy2 documentation
|
|
369
|
+
https://gmpy2.readthedocs.io/en/latest/
|
|
370
|
+
[4] hunterMakesPy
|
|
371
|
+
https://context7.com/hunterhogan/huntermakespy
|
|
372
|
+
"""
|
|
373
|
+
anInteger: int = getitem(intInnit([notLeafOrigin], 'notLeafOrigin', int), 0)
|
|
374
|
+
if anInteger < 1:
|
|
375
|
+
message: str = f"I received `{notLeafOrigin = }`, but I need a value greater than 0."
|
|
376
|
+
raise ValueError(message)
|
|
377
|
+
return int(f_mod_2exp(anInteger, dimensionNearest首(anInteger)))
|
|
378
|
+
|
|
379
|
+
@cache
|
|
380
|
+
def dimensionNearestTail(integerNonnegative: int, /) -> int:
|
|
381
|
+
"""You can locate the least-significant non-zero radix-2 digit index in `integerNonnegative`.
|
|
382
|
+
|
|
383
|
+
This function treats `integerNonnegative` as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
384
|
+
The least-significant non-zero digit index is the count of trailing zeros in the base $2$ representation.
|
|
385
|
+
This function follows the dimension-index conventions in `mapFolding._e._semiotics` [2].
|
|
386
|
+
This function uses `gmpy2.bit_scan1` [3].
|
|
387
|
+
This function validates `integerNonnegative` using `hunterMakesPy.parseParameters.intInnit` [4].
|
|
388
|
+
|
|
389
|
+
Parameters
|
|
390
|
+
----------
|
|
391
|
+
integerNonnegative : int
|
|
392
|
+
Input value interpreted as a base-2 positional coordinate encoding.
|
|
393
|
+
|
|
394
|
+
Returns
|
|
395
|
+
-------
|
|
396
|
+
dimensionIndexNearestTail : int
|
|
397
|
+
The 0-indexed position of the least-significant base-2 digit with value `1`.
|
|
398
|
+
|
|
399
|
+
Raises
|
|
400
|
+
------
|
|
401
|
+
ValueError
|
|
402
|
+
Raised when `integerNonnegative` is less than `0`.
|
|
403
|
+
|
|
404
|
+
Examples
|
|
405
|
+
--------
|
|
406
|
+
This function is used when building domain tuples.
|
|
407
|
+
|
|
408
|
+
>>> dimensionTail: int = dimensionNearestTail(pileOfLeaf二一)
|
|
409
|
+
|
|
410
|
+
References
|
|
411
|
+
----------
|
|
412
|
+
[1] Positional notation - Wikipedia
|
|
413
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
414
|
+
[2] mapFolding._e._semiotics
|
|
415
|
+
Internal package reference
|
|
416
|
+
[3] gmpy2 documentation
|
|
417
|
+
https://gmpy2.readthedocs.io/en/latest/
|
|
418
|
+
[4] hunterMakesPy
|
|
419
|
+
https://context7.com/hunterhogan/huntermakespy
|
|
420
|
+
"""
|
|
421
|
+
anInteger: int = getitem(intInnit([integerNonnegative], 'integerNonnegative', int), 0)
|
|
422
|
+
if anInteger < 0:
|
|
423
|
+
message: str = f"I received `{integerNonnegative = }`, but I need a value greater than or equal to 0."
|
|
424
|
+
raise ValueError(message)
|
|
425
|
+
return bit_scan1(anInteger) or 0
|
|
426
|
+
|
|
427
|
+
@cache
|
|
428
|
+
def howManyDimensionsHaveOddParity(integerNonnegative: int, /) -> int:
|
|
429
|
+
"""You can count non-head radix-2 digits with value `1` in `integerNonnegative`.
|
|
430
|
+
|
|
431
|
+
(AI generated docstring)
|
|
432
|
+
|
|
433
|
+
This function treats `integerNonnegative` as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
434
|
+
For a non-zero value, the most-significant digit is treated as the head digit nearest the ideograph `首`, following
|
|
435
|
+
`mapFolding._e._semiotics` [2].
|
|
436
|
+
This function validates `integerNonnegative` using `hunterMakesPy.parseParameters.intInnit` [3].
|
|
437
|
+
|
|
438
|
+
Parameters
|
|
439
|
+
----------
|
|
440
|
+
integerNonnegative : int
|
|
441
|
+
Input value interpreted as a base-2 positional coordinate encoding.
|
|
442
|
+
|
|
443
|
+
Returns
|
|
444
|
+
-------
|
|
445
|
+
countOnesExcludingHead : int
|
|
446
|
+
The count of digits equal to `1`, excluding the most-significant digit.
|
|
447
|
+
The return value is `0` when `integerNonnegative` is `0`.
|
|
448
|
+
|
|
449
|
+
Raises
|
|
450
|
+
------
|
|
451
|
+
ValueError
|
|
452
|
+
Raised when `integerNonnegative` is less than `0`.
|
|
453
|
+
|
|
454
|
+
Examples
|
|
455
|
+
--------
|
|
456
|
+
This function is used to select the crease slicing index.
|
|
457
|
+
|
|
458
|
+
>>> slicingIndices: int = is_odd(howManyDimensionsHaveOddParity(leaf))
|
|
459
|
+
|
|
460
|
+
References
|
|
461
|
+
----------
|
|
462
|
+
[1] Positional notation - Wikipedia
|
|
463
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
464
|
+
[2] mapFolding._e._semiotics
|
|
465
|
+
Internal package reference
|
|
466
|
+
[3] hunterMakesPy
|
|
467
|
+
https://context7.com/hunterhogan/huntermakespy
|
|
468
|
+
"""
|
|
469
|
+
anInteger: int = getitem(intInnit([integerNonnegative], 'integerNonnegative', int), 0)
|
|
470
|
+
if anInteger < 0:
|
|
471
|
+
message: str = f"I received `{integerNonnegative = }`, but I need a value greater than or equal to 0."
|
|
472
|
+
raise ValueError(message)
|
|
473
|
+
return max(0, anInteger.bit_count() - 1)
|
|
474
|
+
|
|
475
|
+
@cache
|
|
476
|
+
def invertLeafIn2上nDimensions(dimensionsTotal: int, integerNonnegative: int) -> int:
|
|
477
|
+
"""You can invert base-2 digits in `integerNonnegative` within a dimension count `dimensionsTotal`.
|
|
478
|
+
|
|
479
|
+
(AI generated docstring)
|
|
480
|
+
|
|
481
|
+
This function treats `integerNonnegative` as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
482
|
+
The fixed-width inversion uses `dimensionsTotal` as the digit width, which aligns with the dimension indexing conventions in
|
|
483
|
+
`mapFolding._e._semiotics` [2].
|
|
484
|
+
This function uses `gmpy2.bit_mask` [3] to build an inversion mask.
|
|
485
|
+
This function validates `integerNonnegative` using `hunterMakesPy.parseParameters.intInnit` [4].
|
|
486
|
+
|
|
487
|
+
Parameters
|
|
488
|
+
----------
|
|
489
|
+
dimensionsTotal : int
|
|
490
|
+
The number of base-2 digit positions that define the inversion mask.
|
|
491
|
+
integerNonnegative : int
|
|
492
|
+
Input value interpreted as a base-2 positional coordinate encoding.
|
|
493
|
+
|
|
494
|
+
Returns
|
|
495
|
+
-------
|
|
496
|
+
integerInverted : int
|
|
497
|
+
The value produced by XOR with `bit_mask(dimensionsTotal)`.
|
|
498
|
+
|
|
499
|
+
Raises
|
|
500
|
+
------
|
|
501
|
+
ValueError
|
|
502
|
+
Raised when `integerNonnegative` is less than `0`.
|
|
503
|
+
|
|
504
|
+
Examples
|
|
505
|
+
--------
|
|
506
|
+
This function is used to compute a tail measurement by inverting within `state.dimensionsTotal`.
|
|
507
|
+
|
|
508
|
+
>>> anInteger: int = invertLeafIn2上nDimensions(state.dimensionsTotal, integerNonnegative)
|
|
509
|
+
>>> return bit_scan1(anInteger) or 0
|
|
510
|
+
|
|
511
|
+
References
|
|
512
|
+
----------
|
|
513
|
+
[1] Positional notation - Wikipedia
|
|
514
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
515
|
+
[2] mapFolding._e._semiotics
|
|
516
|
+
Internal package reference
|
|
517
|
+
[3] gmpy2 documentation
|
|
518
|
+
https://gmpy2.readthedocs.io/en/latest/
|
|
519
|
+
[4] hunterMakesPy
|
|
520
|
+
https://context7.com/hunterhogan/huntermakespy
|
|
521
|
+
"""
|
|
522
|
+
anInteger: int = getitem(intInnit([integerNonnegative], 'integerNonnegative', int), 0)
|
|
523
|
+
if anInteger < 0:
|
|
524
|
+
message: str = f"I received `{integerNonnegative = }`, but I need a value greater than or equal to 0."
|
|
525
|
+
raise ValueError(message)
|
|
526
|
+
return int(anInteger ^ bit_mask(dimensionsTotal))
|
|
527
|
+
|
|
528
|
+
@cache
|
|
529
|
+
def ptount(integerAbove3: int, /) -> int:
|
|
530
|
+
"""You can compute a bit-count-derived measurement after subtracting `一+零` from `integerAbove3`.
|
|
531
|
+
|
|
532
|
+
This function treats `integerAbove3` as a single-base positional-numeral system as a proxy for Cartesian coordinates [1].
|
|
533
|
+
This function follows the dimension-index conventions in `mapFolding._e._semiotics` [2].
|
|
534
|
+
|
|
535
|
+
This function delegates to `leafInSubHyperplane` [3].
|
|
536
|
+
This function validates `integerAbove3` using `hunterMakesPy.parseParameters.intInnit` [4].
|
|
537
|
+
This function computes `leafInSubHyperplane(integerAbove3 - (一+零)).bit_count()`.
|
|
538
|
+
|
|
539
|
+
Parameters
|
|
540
|
+
----------
|
|
541
|
+
integerAbove3 : int
|
|
542
|
+
Input value interpreted as a base-2 positional coordinate encoding.
|
|
543
|
+
The value must be at least `3`.
|
|
544
|
+
|
|
545
|
+
Returns
|
|
546
|
+
-------
|
|
547
|
+
measurement : int
|
|
548
|
+
The `int.bit_count` value of the projected sub-hyperplane value.
|
|
549
|
+
|
|
550
|
+
Raises
|
|
551
|
+
------
|
|
552
|
+
ValueError
|
|
553
|
+
Raised when `integerAbove3` is less than `3`.
|
|
554
|
+
|
|
555
|
+
Examples
|
|
556
|
+
--------
|
|
557
|
+
This function is used to choose crease indices.
|
|
558
|
+
|
|
559
|
+
>>> if isOdd吗(leafAt一零):
|
|
560
|
+
... listCreaseIndicesExcluded.extend([*range(dimensionNearest首(leafAt一零), 5), ptount(leafAt一零)])
|
|
561
|
+
|
|
562
|
+
References
|
|
563
|
+
----------
|
|
564
|
+
[1] Positional notation - Wikipedia
|
|
565
|
+
https://en.wikipedia.org/wiki/Positional_notation
|
|
566
|
+
[2] mapFolding._e._semiotics
|
|
567
|
+
Internal package reference
|
|
568
|
+
[3] mapFolding._e._measure.leafInSubHyperplane
|
|
569
|
+
Internal package reference
|
|
570
|
+
[4] hunterMakesPy
|
|
571
|
+
https://context7.com/hunterhogan/huntermakespy
|
|
572
|
+
"""
|
|
573
|
+
anInteger: int = getitem(intInnit([integerAbove3], 'integerAbove3', int), 0)
|
|
574
|
+
if anInteger < 3:
|
|
575
|
+
message: str = f"I received `{integerAbove3 = }`, but I need a value greater than 3."
|
|
576
|
+
raise ValueError(message)
|
|
577
|
+
|
|
578
|
+
return leafInSubHyperplane(anInteger - (一+零)).bit_count()
|
|
579
|
+
|