ocaml: phase 5.1 segment_tree.ml baseline (range-sum tree, fingerprint 4232)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 22s

Power-of-two-indexed segment tree over [1;3;5;7;9;11;13;15]:
  build sums (root holds total = 64)
  query returns range sum in O(log n)
  update propagates a point delta back up the path

Sequence:
  r1 = query [2,5] = 5 + 7 + 9 + 11 = 32
  update idx 3 += 10  (so a[3] becomes 17)
  r2 = query [2,5] = 5 + 17 + 9 + 11 = 42
  encoded fingerprint = r1 + r2*100 = 32 + 4200 = 4232

Tests three mutually independent recursive functions with array
index arithmetic on 2*node / 2*node+1, half-bisection on mid =
(l+r)/2, bottom-up combine pattern.

167 baseline programs total.
This commit is contained in:
2026-05-10 23:38:40 +00:00
parent 3fe3b7b66f
commit 175a77fba5
3 changed files with 48 additions and 0 deletions

View File

@@ -407,6 +407,15 @@ _Newest first._
binary search tree (`type 'a tree = Leaf | Node of 'a * 'a tree *
'a tree`) with insert + in-order traversal. Tests parametric ADT,
recursive match, List.append, List.fold_left.
- 2026-05-10 Phase 5.1 — segment_tree.ml baseline (range-sum
segment tree over [1;3;5;7;9;11;13;15] with one point update,
encoded r1 + r2*100 = 4232). build/query/update use the standard
power-of-two indexing (node, 2·node, 2·node+1) over a flat
4n-sized array. First range query 5+7+9+11=32; after adding 10
to index 3, the same range = 5+17+9+11=42. Encoded: 32 + 42*100
= 4232. Tests three mutually independent recursive functions
with array index arithmetic, half-bisection on `mid = (l + r) / 2`,
bottom-up combine pattern. 167 baseline programs total.
- 2026-05-10 Phase 5.1 — magic_square.ml baseline (5×5 Siamese
construction → main-diagonal sum 65, the magic constant for n=5).
Place k=1 at (0, n/2); for each next k, move up-right with wrap-