Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
118 lines
6.2 KiB
Groff
118 lines
6.2 KiB
Groff
.TH "serif::geometry::deformation::detail" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
||
.ad l
|
||
.nh
|
||
.SH NAME
|
||
serif::geometry::deformation::detail
|
||
.SH SYNOPSIS
|
||
.br
|
||
.PP
|
||
.SS "Classes"
|
||
|
||
.in +1c
|
||
.ti -1c
|
||
.RI "struct \fBActionInput\fP"
|
||
.br
|
||
.RI "Pair each action input with the dimension of its mathematical space\&. "
|
||
.in -1c
|
||
.SS "Typedefs"
|
||
|
||
.in +1c
|
||
.ti -1c
|
||
.RI "using \fBDeterminantPolynomial\fP = std::array<double, 4>"
|
||
.br
|
||
.ti -1c
|
||
.RI "using \fBJacobianEntries\fP = std::array<std::array<double, 3>, 3>"
|
||
.br
|
||
.in -1c
|
||
.SS "Functions"
|
||
|
||
.in +1c
|
||
.ti -1c
|
||
.RI "\fBDeformationStatus\fP \fBvalidate_disjoint_output\fP (std::span< double > output, std::initializer_list< std::span< const double > > inputs)"
|
||
.br
|
||
.RI "Preserve every action input until the last use, including nonlinear transpose derivatives\&. The list contains only the fixed number of mathematical arguments to an action; checking address intervals requires no allocation and never scans numerical coefficients\&. "
|
||
.ti -1c
|
||
.RI "\fBDeformationStatus\fP \fBvalidate_action_arguments\fP (std::span< double > output, std::size_t output_size, std::initializer_list< \fBActionInput\fP > inputs)"
|
||
.br
|
||
.RI "Validate caller buffers uniformly, retaining disjoint inputs until an action has finished\&. "
|
||
.ti -1c
|
||
.RI "\fBDeterminantPolynomial\fP \fBdeterminant_polynomial\fP (const \fBJacobianEntries\fP &base, const \fBJacobianEntries\fP &direction, int dimension, double maximum_step, double determinant_floor) noexcept"
|
||
.br
|
||
.RI "Expand det(base + t maximum_step direction) minus the floor for dimensions one through three\&. "
|
||
.ti -1c
|
||
.RI "double \fBevaluate_polynomial\fP (const \fBDeterminantPolynomial\fP &coefficients, double parameter) noexcept"
|
||
.br
|
||
.RI "Evaluate the cubic with fused operations, retaining small values near repeated roots\&. "
|
||
.ti -1c
|
||
.RI "double \fBfirst_boundary_parameter\fP (const \fBDeterminantPolynomial\fP &coefficients) noexcept"
|
||
.br
|
||
.RI "Find the first loss of strict positivity in (0, 1], including a tangent zero\&. "
|
||
.ti -1c
|
||
.RI "std::expected< std::vector< \fBSphericalHarmonicMode\fP >, \fBDeformationFailure\fP > \fBmake_harmonic_modes\fP (const \fBSphericalHarmonicSurface\fP &model, std::size_t node_count)"
|
||
.br
|
||
.RI "Validate harmonic cutoffs before allocating a basis or enumerating modes\&. "
|
||
.ti -1c
|
||
.RI "std::expected< std::vector< double >, \fBDeformationFailure\fP > \fBsample_harmonic_basis\fP (const \fBSphericalHarmonicSurface\fP &model, std::span< const \fBSphericalHarmonicMode\fP > modes, std::span< const std::array< double, 3 > > directions)"
|
||
.br
|
||
.RI "Use normalized Legendre recurrence to avoid factorial growth while preserving the Condon–Shortley phase\&. "
|
||
.ti -1c
|
||
.RI "\fBDeformationStatus\fP \fBcheck_independent_harmonics\fP (std::span< const double > basis, std::size_t node_count, std::size_t mode_count)"
|
||
.br
|
||
.RI "Check sampled rank on a private copy, leaving physical coefficients and basis normalization unchanged\&. "
|
||
.in -1c
|
||
.SH "Typedef Documentation"
|
||
.PP
|
||
.SS "using \fBserif::geometry::deformation::detail::DeterminantPolynomial\fP = std::array<double, 4>"
|
||
|
||
.SS "using \fBserif::geometry::deformation::detail::JacobianEntries\fP = std::array<std::array<double, 3>, 3>"
|
||
|
||
.SH "Function Documentation"
|
||
.PP
|
||
.SS "\fBDeformationStatus\fP serif::geometry::deformation::detail::check_independent_harmonics (std::span< const double > basis, std::size_t node_count, std::size_t mode_count)\fR [nodiscard]\fP"
|
||
|
||
.PP
|
||
Check sampled rank on a private copy, leaving physical coefficients and basis normalization unchanged\&.
|
||
.SS "\fBDeterminantPolynomial\fP serif::geometry::deformation::detail::determinant_polynomial (const \fBJacobianEntries\fP & base, const \fBJacobianEntries\fP & direction, int dimension, double maximum_step, double determinant_floor)\fR [nodiscard]\fP, \fR [noexcept]\fP"
|
||
|
||
.PP
|
||
Expand det(base + t maximum_step direction) minus the floor for dimensions one through three\&.
|
||
.SS "double serif::geometry::deformation::detail::evaluate_polynomial (const \fBDeterminantPolynomial\fP & coefficients, double parameter)\fR [nodiscard]\fP, \fR [noexcept]\fP"
|
||
|
||
.PP
|
||
Evaluate the cubic with fused operations, retaining small values near repeated roots\&.
|
||
.SS "double serif::geometry::deformation::detail::first_boundary_parameter (const \fBDeterminantPolynomial\fP & coefficients)\fR [nodiscard]\fP, \fR [noexcept]\fP"
|
||
|
||
.PP
|
||
Find the first loss of strict positivity in (0, 1], including a tangent zero\&.
|
||
.PP
|
||
\fBPrecondition\fP
|
||
.RS 4
|
||
Coefficients are finite and the constant coefficient is strictly positive\&.
|
||
.RE
|
||
.PP
|
||
\fBReturns\fP
|
||
.RS 4
|
||
The boundary parameter, or infinity when the entire interval remains admissible\&.
|
||
.RE
|
||
.PP
|
||
|
||
.SS "std::expected< std::vector< \fBSphericalHarmonicMode\fP >, \fBDeformationFailure\fP > serif::geometry::deformation::detail::make_harmonic_modes (const \fBSphericalHarmonicSurface\fP & model, std::size_t node_count)\fR [nodiscard]\fP"
|
||
|
||
.PP
|
||
Validate harmonic cutoffs before allocating a basis or enumerating modes\&.
|
||
.SS "std::expected< std::vector< double >, \fBDeformationFailure\fP > serif::geometry::deformation::detail::sample_harmonic_basis (const \fBSphericalHarmonicSurface\fP & model, std::span< const \fBSphericalHarmonicMode\fP > modes, std::span< const std::array< double, 3 > > directions)\fR [nodiscard]\fP"
|
||
|
||
.PP
|
||
Use normalized Legendre recurrence to avoid factorial growth while preserving the Condon–Shortley phase\&.
|
||
.SS "\fBDeformationStatus\fP serif::geometry::deformation::detail::validate_action_arguments (std::span< double > output, std::size_t output_size, std::initializer_list< \fBActionInput\fP > inputs)\fR [inline]\fP, \fR [nodiscard]\fP"
|
||
|
||
.PP
|
||
Validate caller buffers uniformly, retaining disjoint inputs until an action has finished\&.
|
||
.SS "\fBDeformationStatus\fP serif::geometry::deformation::detail::validate_disjoint_output (std::span< double > output, std::initializer_list< std::span< const double > > inputs)\fR [inline]\fP, \fR [nodiscard]\fP"
|
||
|
||
.PP
|
||
Preserve every action input until the last use, including nonlinear transpose derivatives\&. The list contains only the fixed number of mathematical arguments to an action; checking address intervals requires no allocation and never scans numerical coefficients\&.
|
||
.SH "Author"
|
||
.PP
|
||
Generated automatically by Doxygen for SERiF from the source code\&.
|