Skip to contents

Package overview

Package-level documentation, scope, and entry points.

SolidAngleR SolidAngleR-package
SolidAngleR: Computing normalized solid angles of polyhedral cones

Main interface

High-level dispatcher and batch wrapper that select the most appropriate method based on dimension, conditioning, and structure of the cone.

compute_solid_angle()
Compute the normalized solid angle of a polyhedral cone
compute_solid_angles()
Vectorised solid-angle computation over a list of cones

Low-dimensional analytical formulas

Closed-form computations in two and three dimensions via Van Oosterom- Strackee, L’Huilier, and spherical-triangle area formulas.

solid_angle_2d()
Normalized solid angle of a planar cone via signed area
solid_angle_2d_inner()
Normalized solid angle of a planar cone via inner product
solid_angle_3d()
Normalized solid angle of a three-dimensional simplicial cone
solid_angle_3d_det()
Normalized solid angle in R^3 from a generator matrix
solid_angle_3d_from_rays()
Calculate solid angle of a 3D cone from extreme rays
spherical_triangle_area()
Area of the spherical triangle on the unit sphere
lhuilier_angle()
Spherical excess of a triangle via L'Huilier's theorem

Series methods

Ribando hypergeometric series for positive-definite cones and the Fitisone-Zhou tridiagonal reduction for tridiagonal cones.

hypergeometric_series()
Solid angle via Ribando's multivariable hypergeometric series
hypergeometric_series_nd()
General n-dimensional Ribando series for solid angle
tridiagonal_series()
Solid angle via the tridiagonal Fitisone-Zhou series

Geometric and decomposition methods

Mazonka-style geometric algorithms for conical surfaces and spherical- cap intersections, plus the general decomposition of arbitrary cones.

solid_angle_cone()
Normalized solid angle of a right circular cone
solid_angle_polyhedral()
Normalized solid angle of a polyhedral cone via fan triangulation
solid_angle_cone_segment()
Normalized solid angle of a circular cone cut by a plane
solid_angle_intersecting_cones()
Normalized solid angle of the intersection of two circular cones
solid_angle_conical_surface()
Normalized solid angle of a conical surface defined by a curve
solid_angle_decomposition()
Solid angle of a simplicial cone via signed decomposition
decompose_cone()
Signed decomposition of a simplicial cone into PD or low-dimensional pieces

Monte Carlo and sampling

Rcpp-accelerated uniform sampling on spheres and spherical caps, Monte Carlo solid-angle estimation, and rejection-cost diagnostics.

solid_angle_monte_carlo()
Generic Monte Carlo estimator of a solid angle
generate_cone_sample()
Uniform random point on a spherical cap
generate_cone_samples()
Vectorised uniform sampling on a spherical cap
generate_hollow_cone_sample()
Uniform random point on a hollow spherical cap
generate_point_on_sphere()
Uniform random point on the n-dimensional unit sphere
generate_planar_angle_inverse()
Random planar angle by inverse-transform sampling
generate_planar_angle_rejection()
Random planar angle by one-dimensional rejection sampling
rejection_cost()
Expected sample cost of naive sphere-rejection sampling on a cap
verify_cone_uniformity()
Goodness-of-fit tests for cone-sample uniformity

Cone diagnostics

S3 constructor returning a structured diagnostic object with conditioning, stability classification, and method-selection guidance.

diagnose_cone()
Diagnose a polyhedral cone and recommend a computation method

Cone structure utilities

Algebraic predicates and constructors used by the dispatcher to decide which method applies to a given cone.

compute_associated_matrix()
Associated matrix M_n(C) of a simplicial cone
compute_dot_product_matrix()
Pairwise dot-product matrix V^T V
is_positive_definite()
Test whether a symmetric matrix is positive definite
is_linearly_independent()
Test whether the columns of a matrix are linearly independent
is_tridiagonal()
Test whether a matrix has tridiagonal structure
create_tridiagonal_cone()
Construct a tridiagonal simplicial cone from consecutive angles
normalize_vectors()
Column-wise unit normalisation of a matrix

Geometry primitives

Low-level vector and angular utilities reused across families.

angle_between()
Angle between two vectors via the dot product
cross_product_3d()
Cross product of two three-dimensional vectors
rotate_from_canonical()
Givens rotation from canonical axis to an arbitrary direction
theta_to_omega()
Planar angle to solid-angle fraction in n dimensions
omega_to_theta()
Solid-angle fraction to planar angle in n dimensions
generate_spanning_trees()
Enumerate all directed spanning trees of a complete digraph

Visualization and interactive tools

3D plotly visualisations of cones and intersecting spherical caps, plus a Shiny dashboard for exploration.

plot_cone_3d()
Interactive 3D plotly visualisation of a simplicial cone
plotIntersectingCones()
Interactive 3D visualisation of two intersecting cones
shinySolidAngleR()
Launch the SolidAngleR Shiny dashboard

S3 methods

Print, summary, and plot methods for the cone_diagnosis class. Users normally do not call these directly; listed here for completeness and cross-reference.

print(<cone_diagnosis>)
Print a cone diagnosis report
print(<summary.cone_diagnosis>)
Print an extended cone diagnostic summary
summary(<cone_diagnosis>)
Extended diagnostic summary for a polyhedral cone
plot(<cone_diagnosis>)
Plot the eigenvalue spectrum of a diagnosed cone
plotIntersectingCones()
Interactive 3D visualisation of two intersecting cones
plot_cone_3d()
Interactive 3D plotly visualisation of a simplicial cone