Units / geom
geom.global_solver partial
- Layer
- 5
- Upstream lines
- 1,775
- Functions
- 24
- Rust module
geom::global_solver
Source: crates/solidcore/src/geom/global_solver.rs
Upstream: source/SMLib/inc/SmGlobalSolver.h, source/SMLib/src/SmGlobalSolver.cpp
Notes
24 fns; largest: SmGlobalSolver::BranchMayContainAnswers, SmGlobalSolver::AddSortedSolution, sm_CombineMinMax, SmGlobalSolver::FindBestSubdivisionNode; cycle back-edges (call into later units; stub or co-port): blend.fillet_intersector(3), intersect.adv_surface_intersector(3), intersect.surface_drop_curve(3), intersect.surface_intersector_p1(3), intersect.surface_silhouette(3), intersect.surface_tracer(3), intersect.topology_solver_p1(3), surface.surface_p2(3), curve.crv_on_surf(2), curve.curve_cache(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit; difftest partial: 620 cases (20 fixtures + 600 generated), 611 pass, 9 deferred (curve.curve_p2 9: SmCurve::GetNaturalInterval via IdenticalSolutions on line solutions), max_rel_err 0; 20k-seed run clean; no UNPORTED(geom.global_solver) stubs existed to wire
Difftest
- Cases
- 620
- Passed
- 611
- Deferred
- 9
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
curve.curve_p2 green | 9 |
Report JSON (per-case results)
Dependencies
Depends on: geom.extent1d green geom.extent3d green geom.solution_array partial geom.vector3d green
Soft dependencies: geom.geom_utility_p1 green geom.object partial geom.tol green geom.tree partial geom.vector2d green
Dependents: curve.curve_p1 partial curve.curve_p2 green curve.curve_p3 green curve.curve_p6 green curve.curve_p7 green curve.curve_p9 green intersect.adv_surface_intersector partial intersect.surface_intersector_p5 partial intersect.surface_tracer partial intersect.topology_solver_p1 partial intersect.topology_solver_p2 partial surface.plane_p2 partial surface.surf_of_revolution_p3 partial surface.surface_p1 partial surface.surface_p10 partial surface.surface_p11 partial surface.surface_p5 green surface.surface_p6 green surface.surface_p7 partial surface.surface_p8 partial surface.surface_p9 partial
Soft dependents: curve.curve_p8 green
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmGlobalSolver::SetSolverOperation | SmGlobalSolver.h:137 | 1 | [GlobalSolver::set_solver_operation] .. [GlobalSolver::set_at_distance] |
SmGlobalSolver::SetSolutionRequested | SmGlobalSolver.h:138 | 1 | |
SmGlobalSolver::Set3DTolerance | SmGlobalSolver.h:139 | 1 | |
SmGlobalSolver::SetBestAnswerSoFarSq | SmGlobalSolver.h:140 | 1 | |
SmGlobalSolver::SetNumTrees | SmGlobalSolver.h:141 | 1 | |
SmGlobalSolver::SetNumVariables | SmGlobalSolver.h:142 | 1 | |
SmGlobalSolver::SetOperationCategory | SmGlobalSolver.h:143 | 1 | |
SmGlobalSolver::SetSolutions | SmGlobalSolver.h:144 | 1 | |
SmGlobalSolver::SetAtDistance | SmGlobalSolver.h:145 | 3 | [GlobalSolver::set_solver_operation] .. [GlobalSolver::set_at_distance] |
SmGlobalSolver::SmGlobalSolver | SmGlobalSolver.cpp:32 | 21 | [GlobalSolver], [GlobalSolver::new] |
SmGlobalSolver::SmGlobalSolver | SmGlobalSolver.cpp:60 | 16 | [GlobalSolver], [GlobalSolver::new] |
SmGlobalSolver::SmGlobalSolver | SmGlobalSolver.cpp:83 | 17 | [GlobalSolver], [GlobalSolver::new] |
SmGlobalSolver::~SmGlobalSolver | SmGlobalSolver.cpp:106 | 2 | Drop (implicit) |
SmGlobalSolver::SolveIt | SmGlobalSolver.cpp:130 | 131 | [GlobalSolve::solve_it], [SolveRequest] |
SmGlobalSolver::SolveBranch | SmGlobalSolver.cpp:272 | 95 | [GlobalSolve::solve_branch], [solve_branch] |
SmGlobalSolver::BranchMayContainAnswers | SmGlobalSolver.cpp:375 | 552 | [GlobalSolve::branch_may_contain_answers], [GlobalSolver::branch_may_contain_answers] |
SmGlobalSolver::AreReadyForLocalSolve | SmGlobalSolver.cpp:934 | 16 | [GlobalSolve::are_ready_for_local_solve], [GlobalSolver::are_ready_for_local_solve] |
sm_FindLargestNonLeaf | SmGlobalSolver.cpp:952 | 21 | find_largest_non_leaf (private) |
SmGlobalSolver::FindBestSubdivisionNode | SmGlobalSolver.cpp:982 | 140 | [GlobalSolve::find_best_subdivision_node], [GlobalSolver::find_best_subdivision_node] |
SmGlobalSolver::Subdivide | SmGlobalSolver.cpp:1131 | 30 | [GlobalSolve::subdivide], [subdivide] |
SmGlobalSolver::LocalSolve | SmGlobalSolver.cpp:1170 | 17 | [GlobalSolve::local_solve], [GlobalSolver::local_solve] |
sm_CombineMinMax | SmGlobalSolver.cpp:1197 | 196 | combine_min_max (private) |
SmGlobalSolver::AddSortedSolution | SmGlobalSolver.cpp:1415 | 432 | [GlobalSolve::add_sorted_solution] |
SmGlobalSolver::IdenticalSolutions | SmGlobalSolver.cpp:1865 | 78 | [GlobalSolve::identical_solutions], [GlobalSolver::identical_solutions] |
Module file-header table (25 rows)
| Rust | Upstream |
|---|---|
[MAX_SOLVER_TREES] | SM_GS_MAX_TREES |
[SolverOperation] | SmSolverOperationType |
[OperationCategory] | SmOperationCategory |
[SolutionRequested] | SmSolutionRequestedType |
[SolutionPairType], [PreferredSolution] | SmSolutionPairType, IdenticalSolutions' pPreferredSol |
[Branch] | SmTreeNode* apBranch[SM_GS_MAX_TREES] |
[GlobalSolver], [GlobalSolver::new] | SmGlobalSolver, SmGlobalSolver() |
[GlobalSolver::with_tree] | SmGlobalSolver(SmTree*, ULONG) |
[GlobalSolver::with_trees] | SmGlobalSolver(SmTree*, SmTree*, ULONG) |
Drop (implicit) | ~SmGlobalSolver |
[GlobalSolver::solver_operation] | GetSolverOperationType |
[GlobalSolver::opt_vector] | GetOptVector |
[GlobalSolver::set_solver_operation] .. [GlobalSolver::set_at_distance] | SetSolverOperation .. SetAtDistance |
[GlobalSolve] | the virtual interface of SmGlobalSolver |
[GlobalSolve::solve_it], [SolveRequest] | SmGlobalSolver::SolveIt (and its arguments) |
[GlobalSolve::solve_branch], [solve_branch] | SmGlobalSolver::SolveBranch |
[GlobalSolve::branch_may_contain_answers], [GlobalSolver::branch_may_contain_answers] | SmGlobalSolver::BranchMayContainAnswers |
[GlobalSolve::are_ready_for_local_solve], [GlobalSolver::are_ready_for_local_solve] | SmGlobalSolver::AreReadyForLocalSolve |
find_largest_non_leaf (private) | sm_FindLargestNonLeaf |
[GlobalSolve::find_best_subdivision_node], [GlobalSolver::find_best_subdivision_node] | SmGlobalSolver::FindBestSubdivisionNode |
[GlobalSolve::subdivide], [subdivide] | SmGlobalSolver::Subdivide |
[GlobalSolve::local_solve], [GlobalSolver::local_solve] | SmGlobalSolver::LocalSolve |
combine_min_max (private) | sm_CombineMinMax |
[GlobalSolve::add_sorted_solution] | SmGlobalSolver::AddSortedSolution |
[GlobalSolve::identical_solutions], [GlobalSolver::identical_solutions] | SmGlobalSolver::IdenticalSolutions |
Upstream tests reaching this unit
prog_test:my_test_surface_closest_point, prog_test:my_test_drop_point, prog_test:my_test_matrix, prog_test:my_test_reversed_line_join, SM_API_test:TestSmCreateRectangle, SM_API_test:TestSmCreateRegularPolygon