include!(concat!(env!("OUT_DIR"), "/lint_errors.rs"));
extern crate self as gam;
#[macro_use]
mod macros;
pub fn init_parallelism() {
static INIT: std::sync::Once = std::sync::Once::new();
INIT.call_once(|| {
faer::set_global_parallelism(faer::Par::rayon(0));
});
}
#[path = "main/config_resolve.rs"]
pub mod config_resolve;
pub mod families;
pub mod geometry;
pub mod gpu;
pub mod identifiability;
pub mod inference;
pub mod linalg;
pub mod model_types;
pub mod outer_subsample;
pub mod psis;
pub mod reml_contracts;
pub mod report;
pub mod resource;
pub(crate) mod rho_prior_eval;
pub mod rho_uncertainty;
pub mod solver;
pub mod solver_contract;
pub mod terms;
pub mod test_support;
pub mod types;
pub mod util;
pub mod warm_start;
pub mod process_monitor;
pub use data::{encode_recordswith_inferred_schema, load_csvwith_inferred_schema};
pub use geometry::{
CircleManifold, EuclideanManifold, GeodesicIntegrator, GeometryError, GeometryResult,
GrassmannManifold, ManifoldSpec, ProductManifold, RiemannianLBFGS, RiemannianManifold,
RiemannianObjective, RiemannianTrustRegion, SpdManifold, SphereManifold, StiefelManifold,
TorusManifold,
};
pub use gpu::GpuPolicy;
pub use inference::{
alo, conformal, data, generative, higher_order, hmc, model_comparison, polya_gamma, predict,
probability, quadrature, rho_posterior, sample, smooth_test,
};
pub use linalg::{faer_ndarray, matrix, utils};
pub use solver::estimate::reml::atoms::{
BetaChannel, CriterionAtom, CriterionSum, HessianLogdetAtom, JeffreysLogdetAtom,
PenaltyQuadAtom, SampledBlockAtom, Sensitivity, StratumFingerprint, ThetaDirection,
};
pub use solver::estimate::reml::reml_outer_engine::PenaltySubspaceTrace;
pub use outer_subsample::{OuterScoreSubsample, RowSet, WeightedOuterRow};
pub use resource::{
ByteLruCache, DerivativeStorageMode, MaterializationPolicy, MatrixMaterializationError,
ProblemHints, ResidentBytes, ResourcePolicy,
};
pub use solver::estimate::reml::per_atom_efs::{
PerAtomEfsConfig, SharedBorderTopology, run_per_atom_efs,
};
pub use solver::{
estimate, gaussian_reml, mixture_link, pirls, seeding, topology_selector, visualizer,
};
pub use solver_contract::{
DeclaredHessianForm, Derivative, EfsEval, HessianResult, OuterEval,
OuterHessianMaterialization, OuterHessianOperator, OuterStrategyError,
};
pub use terms::{basis, construction, smooth, term_builder};
pub use families::custom_family;
pub use families::gamlss;
pub use families::transformation_normal;
pub use gpu::GpuDeviceInfo;
pub use solver::fit_orchestration::{
BernoulliMarginalSlopeFitRequest, BinomialLocationScaleFitRequest, CrossFitScoreCalibration,
CtnStage1Recipe, DispersionLocationScaleFitRequest, DispersionLocationScaleFitResult,
FitConfig, FitRequest, FitResult, GaussianLocationScaleFitRequest, LatentBinaryFitRequest,
LatentSurvivalFitRequest, LinkWiggleConfig, MaterializedModel, PreparedSurvivalTimeStack,
ResidualCascadeInputs, SplineScanInputs, StandardBinomialWiggleConfig, StandardFitRequest,
StandardFitResult, SurvivalLocationScaleFitRequest, SurvivalLocationScaleFitResult,
SurvivalMarginalSlopeFitRequest, SurvivalTransformationFitRequest,
SurvivalTransformationFitResult, SurvivalTransformationTermSpec,
TransformationNormalFitRequest, WorkflowError, fit_from_formula, fit_model,
fit_residual_cascade_from_formula, fit_spline_scan_from_formula, is_binary_response,
materialize, prepare_survival_time_stack, residual_cascade_fast_path, resolve_family,
resolve_offset_column, resolve_weight_column, spline_scan_fast_path,
};
pub use solver::protocol::{
LatentScoreSemantics, MarginalSlopeCalibrationProtocol, SurvivalMarginalSlopeProtocol,
};