braid_reduce — DRIVE braidpath op

• Data kinds: signal × scalar → signal

• Call: import fullseye as fs; fs.ledger.braid_reduce(word, n_strands) (to call the implementation directly, import braidpath; braidpath.braid_reduce(word, n_strands); from the registry, opsdrive.get("braid_reduce"))

• GPU: none (CPU reference implementation only)

Usage

Reduces a braid word by Dehornoy handle reduction. Returns the empty word ⇔ the braid is trivial (same class).

Handle = σⱼ^e u σⱼ^(−e) (u contains no σⱼ^(±1) and no σⱼ₋₁^(±1)). Each σⱼ₊₁^d in u is replaced by σⱼ₊₁^(−e) σⱼ^d σⱼ₊₁^e, and the outer two letters are deleted (only the relations are used, so the braid does not change). The first handle to close from the left is chosen —— it contains no other handle, so it is permissible in Dehornoy's sense, and the process stops after finitely many steps. The returned word has no handles; if it is not empty, the letters with the smallest index that appears all have the same sign (σ-positive / σ-negative).

Empty input (word with 0 elements) returns the empty word (reason: the empty word is the identity = the trivial braid in which no strands cross, which is the correct answer).

Returns: 1-D int array (the reduced word).

Raises: ValueError (index out of range or 0), RuntimeError (the word grew beyond MAX_WORD).

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_braid_homotopy_classes — py -3.11 examples/poc_braid_homotopy_classes.py

Ops the type connects to (they accept signal as input)

flight_vacuum · magnus_lift_coefficient · drag_coefficient_sphere · restitution_from_apexes · restitution_from_intervals · fit_parabola · flight_fit · fit_aero

Same category (braidpath)

braid_from_trajectories · braid_artin_images · dynnikov_coordinates · dynnikov_act · braid_equivalent · homotopy_class_compare · pairwise_winding · homotopy_shortest_paths


*Provenance: braidpath.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.