Skip to content

docs: geometry - #869

Merged
ocots merged 8 commits into
docs/flowsfrom
docs/geometry
Aug 23, 2026
Merged

docs: geometry#869
ocots merged 8 commits into
docs/flowsfrom
docs/geometry

Conversation

@ocots

@ocots ocots commented Aug 22, 2026

Copy link
Copy Markdown
Member

Summary

  • Rewrites the "Geometry" section (6 pages under docs/src/geometry/) covering CTLie's
    differential-geometry toolkit: Lift, ad, Poisson, ∂ₜ, @Lie, and the AD-backend
    controls (dg_ad_backend/dg_ad_backend!). Spec: docs/reports/06-geometry.md.
  • This is the most broken section of the old site — docs/attic/manual-differential-geometry.md
    is built entirely on Lie, , and HamiltonianLift, none of which exist any more, plus a
    false claim that Hamiltonian/VectorField/HamiltonianVectorField aren't exported. Every
    code example is new or rewritten and verified live against CTLie 0.1.5-beta (the version
    docs/Manifest.toml actually resolves), not trusted from the attic or the spec's own prose.
  • No src//test/ change — unlike PR 8, src/imports/ctlie.jl already re-exports the full
    surface the spec calls for, confirmed live before writing a single page.
  • Caught a real BoundsError via the actual make.jl build (a dimension mismatch in a @Lie
    arithmetic example), a broken forward-link to a not-yet-existing examples-singular-control
    anchor (PR 10 hasn't started), and three bare LiftedHamiltonianFunction references missing
    the required OptimalControl. prefix (it's import-only, not exported).

Test plan

  • julia --project=docs docs/make.jl — full rebuild, clean except pre-existing/unrelated
    warnings (missing sibling inventory files; CTLie's own internal @ref targets in the
    auto-generated API reference).
  • npx vitepress build — clean; nested Poisson-bracket notation (@Lie {{H, K}, L}-style)
    checked in the actual rendered HTML, not just the build log.
  • grep -rn 'Lie(\| ⋅ \|HamiltonianLift\|autonomous=\|OptimalControl\.VectorField' docs/src/geometry/
    — only intentional "coming from v2.0" mentions and the deliberate rejection demo remain.
  • All 7 acceptance criteria in docs/reports/06-geometry.md ticked against the real build.
  • typos clean.

Branched off docs/flows (#868, not yet merged) since PR 9 depends on PR 8 per the work board
— temporary stacking, same pattern used for PRs 6/7/8.

🤖 Generated with Claude Code

ocots and others added 7 commits August 23, 2026 00:04
Maps the four-operation toolkit (Lift, ad, Poisson, ∂ₜ) that moved from
CTFlows to CTLie in v2.1.0-beta, and demonstrates the bridge identity
Poisson(Lift(X), Lift(Y)) ≈ Lift(ad(X, Y)) on a genuinely nonlinear pair
of vector fields.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Lift(f::Function) returns an OptimalControl.LiftedHamiltonianFunction,
not an AbstractHamiltonian — a silent behavior change from v2.0 flagged
with its own warning. Lift(X::AbstractVectorField) still returns a real
Hamiltonian; only the plain-function overload changed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ad(X, f)/ad(X, Y) — Lie derivative or Lie bracket depending on whether
the second argument is scalar- or vector-valued. Covers typed nesting,
∂ₜ's always-NonAutonomous result, and every error the old ⋅/Lie/autonomous=
spelling now triggers.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Poisson(H, G), its bridge to Lie brackets, and the singular-control
application (H01, H001, H101, u_sing = -H001/H101).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Bracket notation for ad/Poisson: [X, Y], {H, G}, nesting, arithmetic at
an evaluation point, and the keyword-parenthesization gotcha. Verified
the nested-brace examples in the actual rendered VitePress HTML, not
just a clean Documenter exit code.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
New page: dg_ad_backend/dg_ad_backend!, the ad_backend= keyword shared
by ad/Poisson/∂ₜ/@lie, and the CPU/GPU DifferentiationInterface split.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…rk board

Full julia --project=docs docs/make.jl rebuild and npx vitepress build,
both clean except pre-existing unrelated warnings (missing sibling
inventory files, and CTLie's own internal @ref targets in the
auto-generated API reference — neither introduced by this PR). Ticked
all 7 acceptance criteria in 06-geometry.md against that build, with an
"Also found and fixed" section recording the BoundsError caught by the
build, the non-existent examples-singular-control anchor, and the
ad/Lift shared-guard message wart. Confirmed no src/ or test/ change
was needed — src/imports/ctlie.jl already re-exports the full surface.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@ocots
ocots merged commit a359a6e into main Aug 23, 2026
6 checks passed
@ocots
ocots deleted the docs/geometry branch August 23, 2026 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant