From f8398804d351667a7b887b89f6f70c7d5c407d22 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Mon, 25 Mar 2024 16:21:54 +0100 Subject: More samples and definitions --- std/Number/Ternary.bruijn | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'std/Number/Ternary.bruijn') diff --git a/std/Number/Ternary.bruijn b/std/Number/Ternary.bruijn index 3695740..4eaaf5a 100644 --- a/std/Number/Ternary.bruijn +++ b/std/Number/Ternary.bruijn @@ -456,16 +456,16 @@ div² [z [[[[rec]]]] (+0) 0 0] ⧗ Number → Number :test (/³*(-6) =? (-2)) (true) :test (/³*(+5) =? (+1)) (true) -# ceiled integer log3 by counting number of trits +# ceiled integer log₃ by counting number of trits # also counts leading 0s -log3* [0 (+0) inc inc inc] ⧗ Number → Number +log₃* [0 (+0) inc inc inc] ⧗ Number → Number -# ceiled integer log3 by counting number of trits -log3 log3* ∘ strip ⧗ Number → Number +# ceiled integer log₃ by counting number of trits +log₃ log₃* ∘ strip ⧗ Number → Number -:test (log3 (+0)) ((+0)) -:test (log3 (+5)) ((+3)) -:test (log3 (+42)) ((+5)) +:test (log₃ (+0)) ((+0)) +:test (log₃ (+5)) ((+3)) +:test (log₃ (+42)) ((+5)) # returns the smallest number in a range such that a predicate is true binary-search z [[[[rec]]]] ⧗ (Number → Boolean) → Number → Number → Number @@ -487,10 +487,10 @@ ternary-search z [[[[rec]]]] ⧗ (Number → Number) → Number → Number → N :test ((ternary-search [-((0 - (+3)) ⋅ (0 - (+3)))] (+0) (+5)) =? (+3)) (true) # pads a ternary number with 0s until it's as long a another ternary number -pad y [[[(log3* 0) ugly hacks with force+log3) +# algorithm originally intended for fixed-width numbers (=> ugly hacks with force+log₃) # TODO: remove the final `huh` correction step (probably some off-by-one bug?) # TODO: not actually that efficient right now -quot-rem [[[[[z [[[[rec]]]] 1 (+0) 4]]] ?1 ⋀? 6) ⋁? (