diff --git a/core/math/big/build.bat b/core/math/big/build.bat index 7e2f15e1a..f66f98192 100644 --- a/core/math/big/build.bat +++ b/core/math/big/build.bat @@ -1,9 +1,9 @@ @echo off -:odin run . -vet -o:size +odin run . -vet -o:size : -o:size :odin build . -build-mode:shared -show-timings -o:minimal -no-bounds-check -define:MATH_BIG_EXE=false && python test.py -fast-tests :odin build . -build-mode:shared -show-timings -o:size -no-bounds-check -define:MATH_BIG_EXE=false && python test.py -fast-tests :odin build . -build-mode:shared -show-timings -o:size -define:MATH_BIG_EXE=false && python test.py -fast-tests -odin build . -build-mode:shared -show-timings -o:speed -no-bounds-check -define:MATH_BIG_EXE=false && python test.py +:odin build . -build-mode:shared -show-timings -o:speed -no-bounds-check -define:MATH_BIG_EXE=false && python test.py : -fast-tests :odin build . -build-mode:shared -show-timings -o:speed -define:MATH_BIG_EXE=false && python test.py -fast-tests \ No newline at end of file diff --git a/core/math/big/common.odin b/core/math/big/common.odin index 57fa32c9d..ce1f7d77f 100644 --- a/core/math/big/common.odin +++ b/core/math/big/common.odin @@ -2,7 +2,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. An arbitrary precision mathematics implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. diff --git a/core/math/big/example.odin b/core/math/big/example.odin index d36fe1477..f3e648880 100644 --- a/core/math/big/example.odin +++ b/core/math/big/example.odin @@ -3,7 +3,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. A BigInt implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. diff --git a/core/math/big/helpers.odin b/core/math/big/helpers.odin index e50579ac0..8ce1b2811 100644 --- a/core/math/big/helpers.odin +++ b/core/math/big/helpers.odin @@ -2,7 +2,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. An arbitrary precision mathematics implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. diff --git a/core/math/big/internal.odin b/core/math/big/internal.odin index ac2c0d3db..256bf03d4 100644 --- a/core/math/big/internal.odin +++ b/core/math/big/internal.odin @@ -3,7 +3,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. A BigInt implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. diff --git a/core/math/big/logical.odin b/core/math/big/logical.odin index 42b262488..64f3b0898 100644 --- a/core/math/big/logical.odin +++ b/core/math/big/logical.odin @@ -2,7 +2,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. An arbitrary precision mathematics implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. diff --git a/core/math/big/prime.odin b/core/math/big/prime.odin index b022870a6..7d33a4068 100644 --- a/core/math/big/prime.odin +++ b/core/math/big/prime.odin @@ -2,7 +2,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. An arbitrary precision mathematics implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. diff --git a/core/math/big/private.odin b/core/math/big/private.odin index e938e57f1..ca2d016de 100644 --- a/core/math/big/private.odin +++ b/core/math/big/private.odin @@ -2,7 +2,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. An arbitrary precision mathematics implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. diff --git a/core/math/big/public.odin b/core/math/big/public.odin index 7804978a5..218e567cf 100644 --- a/core/math/big/public.odin +++ b/core/math/big/public.odin @@ -2,7 +2,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. An arbitrary precision mathematics implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. diff --git a/core/math/big/radix.odin b/core/math/big/radix.odin index e7eee9513..bf1d4d5a2 100644 --- a/core/math/big/radix.odin +++ b/core/math/big/radix.odin @@ -2,7 +2,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. An arbitrary precision mathematics implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. diff --git a/core/math/big/test.odin b/core/math/big/test.odin index a57625d79..2734894b1 100644 --- a/core/math/big/test.odin +++ b/core/math/big/test.odin @@ -3,7 +3,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. An arbitrary precision mathematics implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. diff --git a/core/math/big/test.py b/core/math/big/test.py index 1c584f3d6..ccda9f258 100644 --- a/core/math/big/test.py +++ b/core/math/big/test.py @@ -14,6 +14,7 @@ parser = argparse.ArgumentParser( epilog = "By default we run regression and random tests with preset parameters.", formatter_class = argparse.ArgumentDefaultsHelpFormatter, ) + # # Normally, we report the number of passes and fails. With this option set, we exit at first fail. # @@ -22,10 +23,10 @@ parser.add_argument( help = "Exit when a test fails", action = "store_true", ) + # # We skip randomized tests altogether if this is set. # - no_random = parser.add_mutually_exclusive_group() no_random.add_argument( @@ -33,13 +34,13 @@ no_random.add_argument( help = "No random tests", action = "store_true", ) + # # Normally we run a given number of cycles on each test. # Timed tests budget 1 second per 20_000 bits instead. # # For timed tests we budget a second per `n` bits and iterate until we hit that time. # - timed_or_fast = no_random.add_mutually_exclusive_group() timed_or_fast.add_argument( @@ -55,6 +56,7 @@ parser.add_argument( default = 20_000, help = "Timed tests. Every `BITS` worth of input is given a second of running time.", ) + # # For normal tests (non-timed), `-fast-tests` cuts down on the number of iterations. # @@ -136,7 +138,6 @@ gc.disable() # # Set up exported procedures # - try: l = cdll.LoadLibrary(LIB_PATH) except: @@ -159,29 +160,28 @@ print("initialize_constants: ", initialize_constants()) error_string = load(l.test_error_string, [c_byte], c_char_p) -add = load(l.test_add, [c_char_p, c_char_p], Res) -sub = load(l.test_sub, [c_char_p, c_char_p], Res) -mul = load(l.test_mul, [c_char_p, c_char_p], Res) -sqr = load(l.test_sqr, [c_char_p ], Res) -div = load(l.test_div, [c_char_p, c_char_p], Res) +add = load(l.test_add, [c_char_p, c_char_p], Res) +sub = load(l.test_sub, [c_char_p, c_char_p], Res) +mul = load(l.test_mul, [c_char_p, c_char_p], Res) +sqr = load(l.test_sqr, [c_char_p ], Res) +div = load(l.test_div, [c_char_p, c_char_p], Res) # Powers and such -int_log = load(l.test_log, [c_char_p, c_longlong], Res) -int_pow = load(l.test_pow, [c_char_p, c_longlong], Res) -int_sqrt = load(l.test_sqrt, [c_char_p ], Res) -int_root_n = load(l.test_root_n, [c_char_p, c_longlong], Res) +int_log = load(l.test_log, [c_char_p, c_longlong], Res) +int_pow = load(l.test_pow, [c_char_p, c_longlong], Res) +int_sqrt = load(l.test_sqrt, [c_char_p ], Res) +int_root_n = load(l.test_root_n, [c_char_p, c_longlong], Res) # Logical operations - -int_shl_digit = load(l.test_shl_digit, [c_char_p, c_longlong], Res) -int_shr_digit = load(l.test_shr_digit, [c_char_p, c_longlong], Res) -int_shl = load(l.test_shl, [c_char_p, c_longlong], Res) -int_shr = load(l.test_shr, [c_char_p, c_longlong], Res) +int_shl_digit = load(l.test_shl_digit, [c_char_p, c_longlong], Res) +int_shr_digit = load(l.test_shr_digit, [c_char_p, c_longlong], Res) +int_shl = load(l.test_shl, [c_char_p, c_longlong], Res) +int_shr = load(l.test_shr, [c_char_p, c_longlong], Res) int_shr_signed = load(l.test_shr_signed, [c_char_p, c_longlong], Res) -int_factorial = load(l.test_factorial, [c_uint64], Res) -int_gcd = load(l.test_gcd, [c_char_p, c_char_p], Res) -int_lcm = load(l.test_lcm, [c_char_p, c_char_p], Res) +int_factorial = load(l.test_factorial, [c_uint64], Res) +int_gcd = load(l.test_gcd, [c_char_p, c_char_p], Res) +int_lcm = load(l.test_lcm, [c_char_p, c_char_p], Res) def test(test_name: "", res: Res, param=[], expected_error = Error.Okay, expected_result = "", radix=16): passed = True diff --git a/core/math/big/tune.odin b/core/math/big/tune.odin index 14e10e483..700a5e74a 100644 --- a/core/math/big/tune.odin +++ b/core/math/big/tune.odin @@ -3,7 +3,7 @@ package math_big /* Copyright 2021 Jeroen van Rijn . - Made available under Odin's BSD-2 license. + Made available under Odin's BSD-3 license. A BigInt implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3.