Wiki Home

Wabisabi standard denominations



Code

let pow b (e:int)  = float b ** e |> int64
let filter_upper_bound xs = xs |> Seq.takeWhile (fun x -> x <= 137438953472L) |> Seq.toList
let in_range xs = xs |> Seq.skipWhile (fun x -> x < 5000L) |> filter_upper_bound
let powers_of b = Seq.initInfinite (pow b) |> filter_upper_bound
let multiple (cs:int64 list) = List.collect (fun v -> [for c in cs -> c * v]) 

let powers_of_2 = powers_of 2 |> multiple [1]
let powers_of_3 = powers_of 3 |> multiple [1; 2]
let powers_of_10 = powers_of 10 |> multiple [1; 2; 5]

let stdd = powers_of_2 @ powers_of_3 @ powers_of_10 |> List.sort |> in_range
5000
6561
8192
10000
13122
16384
19683
20000
32768
39366
50000
59049
65536
100000
118098
131072
177147
200000
262144
354294
500000
524288
531441
1000000
1048576
1062882
1594323
2000000
2097152
3188646
4194304
4782969
5000000
8388608
9565938
10000000
14348907
16777216
20000000
28697814
33554432
43046721
50000000
67108864
86093442
100000000
129140163
134217728
200000000
258280326
268435456
387420489
500000000
536870912
774840978
1000000000
1073741824
1162261467
2000000000
2147483648
2324522934
3486784401
4294967296
5000000000
6973568802
8589934592
10000000000
10460353203
17179869184
20000000000
20920706406
31381059609
34359738368
50000000000
62762119218
68719476736
94143178827
100000000000
137438953472