braidpath op• 데이터 종류: any → matrix
• 호출: import fullseye as fs; fs.ledger.pairwise_winding(trajectories, obstacles=None)(구현을 직접 호출하려면 import braidpath; braidpath.pairwise_winding(trajectories, obstacles=None), 원장에서 가져오려면 opsdrive.get("pairwise_winding"))
• GPU: 없음(CPU 참조 구현만)
가닥 쌍마다의 상대 감김수 [회전] (상대 벡터 편각의 총변화 / 2π). 대칭 행렬, 대각은 0.
편각의 증분은 atan2(외적, 내적) 으로 구한다(주값 (−π, π]). 1 스텝에 반 회전 이상 돌면 방향이 정해지지 않으므로 멈춘다. 닫힌 형태: 순수 브레이드에서는 두 가닥 사이 교차의 부호 있는 개수를 c 라 하면 2π·W = π c 가 정확히 성립한다(게이트). 감김수는 가환인불변량이므로, 교환자 [A, B] 형태의 브레이드(모든 쌍에서 감김수 0 인데 자명하지 않음)를 구별할 수 없다 —— 그것이 브레이드를 쓰는 이유.
Returns: (n, n) 의 float 배열(n = 에이전트 + 장애물 점).
Raises: ValueError(두 가닥이 같은 점에 옴, 1 스텝의 증분이 π 에 이름 —— 스텝을 더 잘게).
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_braid_homotopy_classes — py -3.11 examples/poc_braid_homotopy_classes.py
matrix 를 입력으로 받는 것)world_camera · lidar_scan · relative_motion · foe_from_motion · flow_from_depth_motion · ttc_truth · world_materials · mesh_signed_volume
braidpath)braid_from_trajectories · braid_reduce · braid_artin_images · dynnikov_coordinates · dynnikov_act · braid_equivalent · homotopy_class_compare · homotopy_shortest_paths
*Provenance: braidpath.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.