gam_identifiability/lib.rs
1//! Identifiability: one coherent home for every identifiability concern in the
2//! crate.
3//!
4//! - [`kernel`] — the low-level rank / null-space kernels.
5//! - [`precondition`] — cheap pre-fit precondition checks.
6//! - [`audit`] — the joint cross-block identifiability audit.
7//! - [`canonical`] — canonicalization of specs for identifiability.
8//! - [`families`] — the family-agnostic block compiler, its GPU paths, and the
9//! per-family row-Hessian implementations.
10
11#[macro_export]
12macro_rules! bail_dim_custom {
13 ($fmt:literal $(, $($arg:tt)*)?) => {
14 return Err(gam_problem::CustomFamilyError::DimensionMismatch {
15 reason: format!($fmt $(, $($arg)*)?),
16 })
17 };
18 ($msg:expr $(,)?) => {
19 return Err(gam_problem::CustomFamilyError::DimensionMismatch { reason: $msg })
20 };
21}
22
23pub mod audit;
24pub mod canonical;
25pub mod families;
26pub mod kernel;
27pub mod precondition;