docs(doxygen): 100% public-API coverage (228 → 0 undocumented)
Completes the work begun in the previous commit on this branch. Every
public symbol under code/include/ now carries a brief Doxygen comment
(0 undocumented per scripts/doxygen-coverage.sh, with the `detail::`
implementation namespaces excluded as before).
Trajectory on this branch:
start (after Doxyfile fix): 24.0 % (165 / 437 in the no-detail set
was 105 / 437 when detail counted)
after PR #17 base commit : 42.4 % (165 / 396)
this commit : 100.0 % (396 / 396)
Files touched (all .hpp / .h headers under code/include/):
* cgal/Conformal_map_traits.h
* clausen.hpp, conformal_mesh.hpp, constants.hpp (already docd)
* cp_euclidean_functional.hpp, cut_graph.hpp, discrete_elliptic_utility.hpp
* euclidean_functional.hpp, euclidean_geometry.hpp, euclidean_hessian.hpp
* fundamental_domain.hpp, gauss_bonnet.hpp
* hyper_ideal_{functional,geometry,hessian,utility,visualization_utility}.hpp
* inversive_distance_functional.hpp, layout.hpp
* matrix_utility.hpp, mesh_builder.hpp, mesh_io.hpp
* newton_solver.hpp, p2_utility.hpp, period_matrix.hpp, projective_math.hpp
* serialization.hpp, spherical_functional.hpp, spherical_geometry.hpp
* spherical_hessian.hpp, viewer_utils.h
CI:
.gitea/workflows/doxygen-pages.yml now enforces
`scripts/doxygen-coverage.sh --threshold 100`, so any future regression
(a new public function landed without a `///` brief) fails the build
before the Doxygen HTML is published to Codeberg Pages.
Doxygen warnings remain at 0.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -44,11 +44,12 @@ namespace conformallab {
|
||||
|
||||
// ── Result ────────────────────────────────────────────────────────────────────
|
||||
|
||||
/// Result of `newton_solve(...)` — converged DOF vector + diagnostics.
|
||||
struct NewtonResult {
|
||||
std::vector<double> x; ///< DOF vector at termination
|
||||
int iterations; ///< Newton steps taken
|
||||
double grad_inf_norm;///< max |G_i| at termination
|
||||
bool converged; ///< true iff grad_inf_norm < tol
|
||||
std::vector<double> x; ///< DOF vector at termination.
|
||||
int iterations; ///< Newton steps taken.
|
||||
double grad_inf_norm;///< max |Gᵢ| at termination.
|
||||
bool converged; ///< `true` iff `grad_inf_norm < tol`.
|
||||
};
|
||||
|
||||
// ── Internal helpers ──────────────────────────────────────────────────────────
|
||||
@@ -96,6 +97,10 @@ inline Eigen::VectorXd solve_with_fallback(
|
||||
//
|
||||
// fallback_used – if non-null, set to true iff SparseQR was invoked
|
||||
// Returns Eigen::VectorXd::Zero(rhs.size()) if both solvers fail.
|
||||
/// Solve `A·x = rhs` with the same SimplicialLDLT → SparseQR fallback
|
||||
/// strategy used inside all three Newton solvers. If `fallback_used`
|
||||
/// is non-null, it is set to `true` iff the SparseQR fallback ran.
|
||||
/// Returns `Eigen::VectorXd::Zero(rhs.size())` if both solvers fail.
|
||||
inline Eigen::VectorXd solve_linear_system(
|
||||
const Eigen::SparseMatrix<double>& A,
|
||||
const Eigen::VectorXd& rhs,
|
||||
|
||||
Reference in New Issue
Block a user