Frame: gate fold refinement by Jacobian

This commit is contained in:
wyj committed 2026-08-29 01:17:47 -04:00
1 parent 4c575fa8b5
commit b95c6579bd
4 files changed
+65 -31

No files matched your search

+8 -7
View File
@@ -180,13 +180,14 @@ computes the discrete lens Jacobian
`J = Omega_source / Omega_image`. Both signed solid angles use
`2 atan2(dot(a, cross(b,c)), 1 + dot(a,b) + dot(b,c) + dot(c,a))`, with the
ordered camera directions for `Omega_image` and their traced infinity
directions for `Omega_source`. `abs(J) < --refine-jacobian-min` requests a
split near a critical curve. The signed-area calculation retains the sign of
`J`, but sign changes across adjacent triangles are not currently a refinement
trigger; this makes it possible to evaluate the `abs(J)` criterion separately.
The `1e-3` default is deliberately provisional and should be tuned with the
small Schwarzschild refinement diagnostic before being treated as a production
threshold.
directions for `Omega_source`. A J-driven split requires **both** a shared
image edge whose incident triangles have opposite nonzero signs of `J` and
`min(abs(J_left), abs(J_right)) < --refine-jacobian-min`. It then requests
that shared edge on both leaves. Thus `|J|` bounds the fold selection instead
of widening it as a standalone critical-curve band. A negative sign is
physical parity and is retained. The `1e-3` default is deliberately
provisional and should be tuned with the small Schwarzschild refinement
diagnostic before being treated as a production threshold.
For a short Schwarzschild diagnostic that permits at most one actual split
generation, for example: