ocaml: phase 5.1 gray_code.ml baseline (4-bit reflected Gray code, sum+len = 136)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 35s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 35s
Single-formula generation: gray[i] = i lxor (i lsr 1) For n = 4, generates 16 values, each differing from its neighbour by one bit. Output is a permutation of 0..15, so its sum equals the natural-sequence sum 120; +16 entries -> 136. Tests lsl / lxor / lsr together (the iter-127 bitwise ops) plus Array.make / Array.fold_left. 95 baseline programs total.
This commit is contained in:
@@ -30,6 +30,7 @@
|
|||||||
"fraction.ml": 7,
|
"fraction.ml": 7,
|
||||||
"frequency.ml": 5,
|
"frequency.ml": 5,
|
||||||
"gcd_lcm.ml": 60,
|
"gcd_lcm.ml": 60,
|
||||||
|
"gray_code.ml": 136,
|
||||||
"grep_count.ml": 3,
|
"grep_count.ml": 3,
|
||||||
"grid_paths.ml": 210,
|
"grid_paths.ml": 210,
|
||||||
"group_consec.ml": 53,
|
"group_consec.ml": 53,
|
||||||
|
|||||||
12
lib/ocaml/baseline/gray_code.ml
Normal file
12
lib/ocaml/baseline/gray_code.ml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
let gray n =
|
||||||
|
let m = 1 lsl n in
|
||||||
|
let result = Array.make m 0 in
|
||||||
|
for i = 0 to m - 1 do
|
||||||
|
result.(i) <- i lxor (i lsr 1)
|
||||||
|
done;
|
||||||
|
result
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
let g = gray 4 in
|
||||||
|
Array.fold_left (+) 0 g + Array.length g
|
||||||
@@ -407,6 +407,12 @@ _Newest first._
|
|||||||
binary search tree (`type 'a tree = Leaf | Node of 'a * 'a tree *
|
binary search tree (`type 'a tree = Leaf | Node of 'a * 'a tree *
|
||||||
'a tree`) with insert + in-order traversal. Tests parametric ADT,
|
'a tree`) with insert + in-order traversal. Tests parametric ADT,
|
||||||
recursive match, List.append, List.fold_left.
|
recursive match, List.append, List.fold_left.
|
||||||
|
- 2026-05-09 Phase 5.1 — gray_code.ml baseline (4-bit binary
|
||||||
|
reflected Gray code, sum 120 + length 16 = 136). Single-formula
|
||||||
|
generation: `gray[i] = i lxor (i lsr 1)`. Outputs a permutation of
|
||||||
|
0..15, so its sum is the same 120 as the natural sequence; the
|
||||||
|
length-16 confirms 2^4 entries. Tests `lsl`/`lxor`/`lsr` together
|
||||||
|
and Array.make + Array.fold_left. 95 baseline programs total.
|
||||||
- 2026-05-09 Phase 5.1 — max_run.ml baseline (longest consecutive
|
- 2026-05-09 Phase 5.1 — max_run.ml baseline (longest consecutive
|
||||||
run, sum of three test cases = 4+1+0 = 5). Walks list with
|
run, sum of three test cases = 4+1+0 = 5). Walks list with
|
||||||
`Some y when y = x` guard pattern in match for the prev-value
|
`Some y when y = x` guard pattern in match for the prev-value
|
||||||
|
|||||||
Reference in New Issue
Block a user