Expand description
Solving a sketch: every constraint contributes residuals that are zero
exactly when it holds — a term of the sketch’s variables — and
geop_core_math::solvers::system, on the driver every solve of the
kernel shares ([geop_core_math::solvers::constrained]), holds them,
pulls a dragged point, and encloses the exact solution.
Variables. Each class of coincident points (see
Sketch::point_classes) is one (x, y) pair — coincidence is not a
residual at all, it removes two degrees of freedom by construction. Each
arc adds its half sweep, each circle its radius.
Units. Every residual is a length: dimensionless ones (angles, parallelism) are multiplied by the sketch’s characteristic size, so no constraint kind dominates the objective just by its choice of units, and the convergence test is a single relative length.
Honest enclosures. Everything is computed in the sketch’s own scalar
— any Scalar — each residual as a geop_core_math::dual::Dual of
it, so the sin/sqrt/PI a geometric formula can’t help but need are
enclosed rather than quietly rounded away. A residual that becomes
genuinely undecidable (a division or square root at the edge of its
domain) makes that point infeasible.
Structs§
- Solve
Report - The outcome of a solve.