/* * 알고리즘 경로 전환 — 기존(demo-final 현행) vs 레퍼런스(piezo-phantom-test 1:1). */ package com.medithings.vesiscan.managers /** * 검출·BV 알고리즘을 어느 쪽으로 돌릴지. * * ## 왜 두 경로를 유지하나 * demo-final 은 팬텀 시연과 임상 계측이 함께 도는 브랜치다. 여기서 "기존"이란 * **오늘 임상이 실제로 돌아간 코드**(커밋 `ebddc52`·`20a48ad` 시점의 검출·BV)를 말한다. * 그 위에 신 저장소가 추가로 맞춘 레퍼런스 단계들은 값을 눈에 띄게 바꾸므로, 시연·계측이 * 모르는 사이 다른 알고리즘으로 도는 일이 없도록 **기본은 기존 경로**로 두고 레퍼런스 * 경로는 dev 패널에서 명시적으로 켤 때만 쓴다. * * ## 무엇이 갈리나 * 켜면 아래가 전부 레퍼런스 동작으로 바뀐다. 부분 적용은 없다 — 단계들이 서로를 * 전제하므로 섞으면 어느 쪽도 아닌 값이 나온다. * * · 교차채널 보정 3단계 → **7단계** * (①.9 envelope · ① ant_tiebreak · ①.7 Λ-dip · ①.8 edge · * ①.95 lumen_return · ② NTV[Rule A 만] · ③ fp_gate, * 기존의 `inward_post` 는 빠진다) * · 파이프라인 `scale_recovery`(2) · `missing_outside` 증거 산출(4) · * `channel_confidence`→untrusted(5b) · `CONF_DEMOTE`(6) * · 좌표계 교차채널 z 를 프리셋(실리콘 1.897/7.651) 대신 **전역 캘리브레이션** * (1.936/6.85)으로 잰다 — 레퍼런스 `cross_channel._z` 가 그렇다. * abs 는 값이 같아 표가 안 나고 실리콘에서만 갈린다. * · nch=2 clamp `_sibeam_cap_bounds` — 채널이 2개뿐일 때 빔 기하로 cap 상한 * · 미러 · F83 `mirror_bottom_cap` + 적도-밖 bottom cap 연속 보간(실리콘·supine) * · BV 극 cap 의 상한/하한을 관측 증거로 가르는 `si_floor`/`missing_outside`, * bottom cap 제한 신설, 중앙 채널 보간 은행가 반올림, * `adaptive_large_bladder_relax` 제거(cap 축 폴백을 가로막고 있었다) * * 검출 파라미터(`d_max` 15 · `inward_walk_win` 4)와 prominence 기준(`ANT_FLOOR_REF`), * cap 축 폴백 · `ELLIPSE_CAP_R_MAX` · `TOP_CAP_EDGE_K` · `cap_d_adaptive`, 프리셋 유도 * dps/delay 는 **양쪽 공통**이다 — `ebddc52`/`20a48ad` 에서 이미 기존 경로에 들어갔고 * 오늘 임상이 그 위에서 돌았으므로 여기서 되돌리지 않는다. * * ## 상태 보관 * 프로세스 수명 동안만 유지한다(런타임 토글). 앱을 다시 켜면 기존 경로로 돌아간다. */ object AlgoMode { /** true = 레퍼런스 1:1 경로. 기본은 false(기존 경로). */ @Volatile var reference: Boolean = false /** 화면에 표시할 이름. */ val label: String get() = if (reference) "레퍼런스 (Python 1:1)" else "기존 (현행 임상)" }