From 8bdb6b9adaadd2dab4fdcfedb42dd9ae4a0d13d5 Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Fri, 19 Sep 2025 05:11:06 -0700 Subject: [PATCH] removes authored files marker, includes some python3 for example --- developer/document/.githolder | 0 developer/document/python packages | 2 + developer/document/tests.sh | 10 +++ developer/python3/decompose.py | 26 +++++++ developer/python3/iroot.py | 16 +++++ developer/{python => python3}/test_env.py | 0 developer/python3/test_isqrt.py | 70 +++++++++++++++++++ developer/python3/test_reduce.py | 70 +++++++++++++++++++ env_developer | 2 +- env_tester | 2 +- env_toolsmith | 2 +- .../env" => tool_shared/bespoke/env | 2 +- .../version" => tool_shared/bespoke/version | 0 .../document/install_Python.org | 4 +- 14 files changed, 200 insertions(+), 6 deletions(-) create mode 100644 developer/document/.githolder create mode 100644 developer/document/python packages create mode 100644 developer/document/tests.sh create mode 100644 developer/python3/decompose.py create mode 100644 developer/python3/iroot.py rename developer/{python => python3}/test_env.py (100%) create mode 100644 developer/python3/test_isqrt.py create mode 100644 developer/python3/test_reduce.py rename "tool_shared/bespoke\360\237\226\211/env" => tool_shared/bespoke/env (98%) rename "tool_shared/bespoke\360\237\226\211/version" => tool_shared/bespoke/version (100%) rename "tool_shared/document\360\237\226\211/install_Python.org" => tool_shared/document/install_Python.org (97%) diff --git a/developer/document/.githolder b/developer/document/.githolder new file mode 100644 index 0000000..e69de29 diff --git a/developer/document/python packages b/developer/document/python packages new file mode 100644 index 0000000..83a0dd0 --- /dev/null +++ b/developer/document/python packages @@ -0,0 +1,2 @@ + +pip install isqrt diff --git a/developer/document/tests.sh b/developer/document/tests.sh new file mode 100644 index 0000000..6892145 --- /dev/null +++ b/developer/document/tests.sh @@ -0,0 +1,10 @@ + + +2025-05-19T09:56:17Z[Harmony] +Thomas-developer@StanleyPark§/home/Thomas/subu_data/developer/Harmony/developer/python§ +> python test_isqrt.py 500000 20000 +.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... +✅ Passed: 500000 +❌ Failed: 0 + + diff --git a/developer/python3/decompose.py b/developer/python3/decompose.py new file mode 100644 index 0000000..f979189 --- /dev/null +++ b/developer/python3/decompose.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 + +import sys +import random +from isqrt import isqrt + +def decompose(n0_h ,r1_p ,acc_car): + + if r0_h < 0 : print "r0_h is negative" + if r1_p < 0 : print "r1_p is negative" + if acc_car != 0 and acc_car != 1 : print "acc_car is not 0 or 1" + + k_n0_h = n0_h.bit_length() + k_r1_p = r1_p.bit_length() + + if acc_car : + k_n1_p = k_ + + return z1 ,n1_p + + +def main(): + return 1 + +if __name__ == "__main__": + main() diff --git a/developer/python3/iroot.py b/developer/python3/iroot.py new file mode 100644 index 0000000..a6ae3e8 --- /dev/null +++ b/developer/python3/iroot.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 + +import sys +import random +from isqrt import isqrt + +def iroot(z): + c = isqrt(z) + r = z - n0_h ** 2 + return c ,r + +def main(): + return 1 + +if __name__ == "__main__": + main() diff --git a/developer/python/test_env.py b/developer/python3/test_env.py similarity index 100% rename from developer/python/test_env.py rename to developer/python3/test_env.py diff --git a/developer/python3/test_isqrt.py b/developer/python3/test_isqrt.py new file mode 100644 index 0000000..adac4ad --- /dev/null +++ b/developer/python3/test_isqrt.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 + +import sys +import random +from isqrt import isqrt + +def test_isqrt(num_tests, max_bits): + failed = 0 + passed = 0 + + for i in range(1, num_tests + 1): + bits = random.randint(1, max_bits) + n = random.getrandbits(bits) + + root = isqrt(n) + lower = root * root + upper = (root + 1) * (root + 1) + + if lower <= n < upper: + passed += 1 + else: + print(f"\n❌ Test failed:") + print(f"bits = {bits}") + print(f"n = {hex(n)}") + print(f"root = {hex(root)}") + if lower > n: + print("Reason = root is too large") + elif upper <= n: + print("Reason = root + 1 is too small") + failed += 1 + + if i % 1000 == 0: + print(".", end="", flush=True) + + if num_tests >= 10: + print() + + print(f"✅ Passed: {passed}") + print(f"❌ Failed: {failed}") + +def print_root(n): + print_bin(isqrt(n)) + +def reduce(n): + n + +def main(): + if len(sys.argv) != 3: + print(f"Usage: {sys.argv[0]} ") + sys.exit(1) + + try: + n = int(sys.argv[1], 0) + max = int(sys.argv[2], 0) + except ValueError: + print("Error: argument must be a valid integer.") + sys.exit(1) + + if n < 0: + print("Error: number of tests must be non-negative.") + sys.exit(1) + + if max < 4: + print("Error: max_bits must be at least 4.") + sys.exit(1) + + test_isqrt(n, max) + +if __name__ == "__main__": + main() diff --git a/developer/python3/test_reduce.py b/developer/python3/test_reduce.py new file mode 100644 index 0000000..02cb53e --- /dev/null +++ b/developer/python3/test_reduce.py @@ -0,0 +1,70 @@ + +import sys +import random +from iroot import iroot + +def test_reduce(num_tests, max_bits): + failed = 0 + passed = 0 + + hex_width = (max_bits + 3) // 4 # ceil(max_bits / 4) for hex digit count + hex_widtho2 = (max_bits + 7) // 8 # ceil(max_bits / 8) for reduced-width fields + + field = f"#0{hex_width + 2}x" + fieldo2 = f"#0{hex_widtho2 + 2}x" + + header = ( + f"{'z':>{hex_width + 2}} " + f"{'n0h':>{hex_widtho2 + 2}} " + f"{'r_h':>{hex_widtho2 + 2}} " + f"{'r_hp':>{hex_widtho2 + 2}}" + ) + print(header) + print("-" * len(header)) + + for i in range(1, num_tests + 1): + bits = random.randint(1, max_bits) + z = random.getrandbits(bits) + + n0h, r_h, r_hp = iroot(z) + + # Format fields, fallback to full-width hex if overflow detected + z_str = format(z, field) if z.bit_length() <= max_bits else f"{z:#x}" + n0h_str = format(n0h, fieldo2) if n0h.bit_length() <= max_bits else f"{n0h:#x}" + r_h_str = format(r_h, fieldo2) if r_h.bit_length() <= max_bits else f"{r_h:#x}" + r_hp_str = format(r_hp, fieldo2) if r_hp.bit_length() <= max_bits else f"{r_hp:#x}" + + print(f"{z_str} {n0h_str} {r_h_str} {r_hp_str}") + + if i % 1000 == 0: + print(".", end="", flush=True) + + if num_tests >= 1000: + print() + + + +def main(): + if len(sys.argv) != 3: + print(f"Usage: {sys.argv[0]} ") + sys.exit(1) + + try: + n = int(sys.argv[1], 0) + max = int(sys.argv[2], 0) + except ValueError: + print("Error: argument must be a valid integer.") + sys.exit(1) + + if n < 0: + print("Error: number of tests must be non-negative.") + sys.exit(1) + + if max < 4: + print("Error: max_bits must be at least 4.") + sys.exit(1) + + test_reduce(n, max) + +if __name__ == "__main__": + main() diff --git a/env_developer b/env_developer index a1c0eda..24f92fe 100644 --- a/env_developer +++ b/env_developer @@ -6,7 +6,7 @@ if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then fi export ROLE=developer -source tool_shared/bespoke🖉/env +source tool_shared/bespoke/env if [[ ":$PATH:" != *":$PYTHON_HOME/bin:"* ]]; then export PATH="$PYTHON_HOME/bin:$PATH" diff --git a/env_tester b/env_tester index b9c8139..45439c1 100644 --- a/env_tester +++ b/env_tester @@ -6,7 +6,7 @@ if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then fi export ROLE=tester -source tool_shared/bespoke🖉/env +source tool_shared/bespoke/env if [[ ":$PATH:" != *":$PYTHON_HOME/bin:"* ]]; then export PATH="$PYTHON_HOME/bin:$PATH" diff --git a/env_toolsmith b/env_toolsmith index 68fd2d3..b121a82 100644 --- a/env_toolsmith +++ b/env_toolsmith @@ -6,6 +6,6 @@ if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then fi export ROLE=toolsmith -source tool_shared/bespoke🖉/env +source tool_shared/bespoke/env export ENV=$ROLE diff --git "a/tool_shared/bespoke\360\237\226\211/env" b/tool_shared/bespoke/env similarity index 98% rename from "tool_shared/bespoke\360\237\226\211/env" rename to tool_shared/bespoke/env index 4c0ca3f..eb93ff3 100644 --- "a/tool_shared/bespoke\360\237\226\211/env" +++ b/tool_shared/bespoke/env @@ -48,7 +48,7 @@ unset PYTHONHOME PATH="$REPO_HOME/tool_shared/third_party/RT-project-share/release/amd64:$PATH" PATH="$REPO_HOME/tool_shared/third_party:$PATH" PATH="$REPO_HOME/tool_shared/customized:$PATH" - PATH="$REPO_HOME"/tool_shared/bespoke🖉:"$PATH" + PATH="$REPO_HOME"/tool_shared/bespoke:"$PATH" # Remove duplicates clean_path() { diff --git "a/tool_shared/bespoke\360\237\226\211/version" b/tool_shared/bespoke/version similarity index 100% rename from "tool_shared/bespoke\360\237\226\211/version" rename to tool_shared/bespoke/version diff --git "a/tool_shared/document\360\237\226\211/install_Python.org" b/tool_shared/document/install_Python.org similarity index 97% rename from "tool_shared/document\360\237\226\211/install_Python.org" rename to tool_shared/document/install_Python.org index 236940a..4725c04 100644 --- "a/tool_shared/document\360\237\226\211/install_Python.org" +++ b/tool_shared/document/install_Python.org @@ -66,8 +66,8 @@ Ensure the following: * Related Files -- =tool_shared/bespoke🖉/env= -- =tool_shared/bespoke🖉/env_source= +- =tool_shared/bespoke/env= +- =tool_shared/bespoke/env_source= - =env_developer=, =env_tester=, =env_toolsmith= * Last Verified -- 2.20.1