Collision probability computation for conjunction assessment
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

ocaml-merkle-sync: generic Merkle DAG sync; irmin Sync.S module type

ocaml-merkle-sync: reusable sync primitives for any content-addressed DAG.
- Layer 1: anti-entropy gossip (branch head exchange, O(log n))
- Layer 2: merkle descent (DAG diff by hash, dependency-order transfer)
- Bloom filter (FNV-1a, ~1% FP rate)
15 tests passing. Fuzz harness for bloom properties.

irmin/lib/sync.ml: Sync.S module type — discover/locate/fetch/push.
Each backend provides its own implementation.

Also: dune fmt across affected packages.

+6 -10
+6 -10
test/interop/gmat/test.ml
··· 48 48 Alcotest.(check bool) "min distance found" true (Float.is_finite !min_dist); 49 49 Alcotest.(check bool) "min distance < 1000 km" true (!min_dist < 1000.0); 50 50 Alcotest.(check bool) "no collision (> 1 km)" true (!min_dist > 1.0); 51 - Fmt.pr " Step-based closest approach: %.3f km at %s\n" !min_dist 52 - !min_epoch 51 + Fmt.pr " Step-based closest approach: %.3f km at %s\n" !min_dist !min_epoch 53 52 54 53 let relative_velocity () = 55 54 let oem1 = parse_oem "conjunction_sat1.oem" in ··· 102 101 match Collision.tca ~times ~pos1 ~pos2 ~vel1 ~vel2 with 103 102 | None -> Alcotest.fail "tca returned None" 104 103 | Some tca -> 105 - Fmt.pr " Step-based TCA: t=%.3f, d=%.3f km\n" !step_min_t 106 - !step_min_d; 107 - Fmt.pr " Refined TCA: t=%.3f, d=%.3f km, vrel=%.3f km/s\n" 108 - tca.time tca.miss_distance tca.relative_velocity; 104 + Fmt.pr " Step-based TCA: t=%.3f, d=%.3f km\n" !step_min_t !step_min_d; 105 + Fmt.pr " Refined TCA: t=%.3f, d=%.3f km, vrel=%.3f km/s\n" tca.time 106 + tca.miss_distance tca.relative_velocity; 109 107 (* Refined miss distance should be <= step-based (quadratic finds the 110 108 true minimum between steps) *) 111 109 Alcotest.(check bool) ··· 141 139 done; 142 140 Fmt.pr " Miss distance: %.3f km\n" !min_dist; 143 141 Fmt.pr " Pc: CANNOT COMPUTE — no covariance in OEM\n"; 144 - Fmt.pr 145 - " GAP: Need GMAT covariance propagation (Propagate ... Covariance)\n"; 146 - Fmt.pr 147 - " or CDM with covariance to test ocaml-collision Pc computation.\n"; 142 + Fmt.pr " GAP: Need GMAT covariance propagation (Propagate ... Covariance)\n"; 143 + Fmt.pr " or CDM with covariance to test ocaml-collision Pc computation.\n"; 148 144 (* This test passes but documents the gap. The real test would be: 149 145 1. Generate GMAT OEM WITH covariance 150 146 2. Construct a CDM from the GMAT data