Diagnose a polyhedral cone and recommend a computation method
Source:R/main_interface.R
diagnose_cone.RdInspects the geometric and spectral structure of a polyhedral cone and
returns a diagnostic S3 object summarising linear independence,
positive definiteness of the associated matrix, tridiagonal structure of
the Gram matrix, eigenvalue spectrum, and the recommended backend for
compute_solid_angle.
Value
An object of class cone_diagnosis; a list with components
- dimension
Integer ambient dimension.
- linearly_independent
Logical,
TRUEwhen the columns ofVare linearly independent.- associated_matrix_PD
Logical, positive definiteness of the associated matrix \(M_n(C)\).
- is_tridiagonal
Logical, tridiagonal structure of \(V^\top V\).
- eigenvalues
Numeric vector of eigenvalues of \(M_n(C)\) in ascending order.
- min_eigenvalue
Smallest eigenvalue.
- suggested_method
Character string identifying the recommended backend for
compute_solid_angle.
Details
The diagnostic logic encodes the dispatcher's decision tree explicitly so that the user can audit method selection without running the computation. For \(n \leq 3\) the closed-form formulas are always recommended. For \(n \geq 4\) the recommendation depends on the spectrum of the associated matrix \(M_n(C) = (m_{ij})\) with $$m_{ij} = \langle v_i, v_j \rangle / (\|v_i\|\, \|v_j\|),$$ positive definiteness of which is required for the convergence of Ribando's hypergeometric series (Ribando 2006, Theorem 1.5). When \(V^\top V\) is additionally tridiagonal the simplified series of Fitisone & Zhou (2023, Theorem 4.1) reduces the per-term cost from \(O(n^2)\) to \(O(n)\).
References
Ribando, J. M. (2006). Measuring solid angles beyond dimension three. Discrete & Computational Geometry, 36(3), 479-487. doi:10.1007/s00454-006-1253-4
Fitisone, A., & Zhou, Y. (2023). Solid angle measure of polyhedral cones. arXiv:2304.11102 (math.CO). https://arxiv.org/abs/2304.11102
See also
print.cone_diagnosis, summary.cone_diagnosis,
plot.cone_diagnosis for the S3 method triad;
compute_solid_angle as the dispatcher this diagnostic
advises; compute_associated_matrix, is_positive_definite,
is_tridiagonal for the underlying spectral tests.