Skip to main content

sim_lib_interference_runtime/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3
4//! Tensor-backed runtime records for coherent interference studies.
5//!
6//! Domain values cross this boundary as validated Citizen read-constructs.
7//! Phasors reuse two canonical [`sim_lib_numbers_tensor::Tensor`] values, scalar
8//! projections reuse one, and registered Shapes admit public runtime calls.
9//!
10//! The runtime preserves the homogeneous, isotropic, three-dimensional scalar
11//! free-field scope. It does not add polarization, impedance, interfaces,
12//! obstacles, or diffraction. Amplitude-squared values are normalized
13//! observables, not physical intensity, power, or energy.
14
15#[macro_use]
16mod citizen;
17mod evidence;
18mod lib_impl;
19mod ops;
20mod ops_outputs;
21mod ops_values;
22mod projection_records;
23mod records;
24mod sampling;
25mod shapes;
26mod solver;
27mod tensor_bridge;
28
29pub use citizen::{
30    InterferenceRecordsLib, install_interference_records, interference_citizen_registry,
31};
32pub use evidence::{
33    SamplingCertificateDescriptor, StudyDescriptor, StudyEvidenceDescriptor, WorkEstimateDescriptor,
34};
35pub use lib_impl::{InterferenceLib, interference_lib_symbol};
36pub use ops::{
37    analyze_function_symbol, multitone_function_symbol, problem_function_symbol,
38    project_function_symbol, sampling_plane_function_symbol, scenarios_function_symbol,
39    solve_function_symbol,
40};
41pub use projection_records::{
42    ProjectionCertificateDescriptor, ProjectionRequestDescriptor, ScalarProjectionDescriptor,
43};
44pub use records::{EmitterDescriptor, MediumDescriptor, PlaneDescriptor, ProblemDescriptor};
45pub use shapes::{
46    interference_shape_symbols, plane_shape_symbol, problem_shape_symbol,
47    projection_request_shape_symbol, projection_shape_symbol, study_shape_symbol,
48};
49pub use solver::{
50    InterferenceStudy, ReferenceStudySolver, SolveRequest, SolverProvider, StudySolver,
51    resolve_study_solver, study_solver_symbol, tensor_study_solver_symbol,
52};
53pub use tensor_bridge::PhasorFieldDescriptor;
54
55/// Checked CPU interference recipes embedded with the loadable library.
56pub static RECIPES: sim_cookbook::EmbeddedDir =
57    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
58
59#[cfg(test)]
60mod runtime_tests;
61#[cfg(test)]
62mod tests;