#[macro_export]
macro_rules! bail_invalid_basis {
($fmt:literal $(, $($arg:tt)*)?) => {
return Err($crate::basis::BasisError::InvalidInput(format!($fmt $(, $($arg)*)?)))
};
($msg:expr $(,)?) => {
return Err($crate::basis::BasisError::InvalidInput($msg))
};
}
#[macro_export]
macro_rules! bail_dim_basis {
($fmt:literal $(, $($arg:tt)*)?) => {
return Err($crate::basis::BasisError::DimensionMismatch(format!($fmt $(, $($arg)*)?)))
};
($msg:expr $(,)?) => {
return Err($crate::basis::BasisError::DimensionMismatch($msg))
};
}
#[macro_export]
macro_rules! bail_invalid_estim {
($fmt:literal $(, $($arg:tt)*)?) => {
return Err($crate::EstimationError::InvalidInput(format!($fmt $(, $($arg)*)?)))
};
($msg:expr $(,)?) => {
return Err($crate::EstimationError::InvalidInput($msg))
};
}
#[macro_export]
macro_rules! gpu_bail {
($($arg:tt)*) => {
return ::std::result::Result::Err(gam_gpu::gpu_error::GpuError::DriverCallFailed {
reason: ::std::format!($($arg)*),
})
};
}
pub mod analytic_penalties;
pub mod basis;
pub mod chunked_kernel_design;
pub mod construction;
pub mod decoders;
pub mod dictionary;
pub mod grid_spline_2d;
pub mod inference;
mod isotropic_scale;
pub mod kronecker;
pub mod latent;
pub mod penalty_spec;
pub mod smooth;
pub mod smooth_overrides;
pub mod structure;
pub mod term_builder;
#[path = "smooth/torch_dispatch.rs"]
pub mod torch_dispatch;
pub mod terms {
pub use crate::*;
}
pub use gam_problem::EstimationError;
pub use isotropic_scale::{
IsotropicScale,
IsotropicScaleError,
OriginalUnits,
StandardizedUnits,
};
pub use penalty_spec::{PenaltySpec, validate_penalty_spec_shape};
pub use analytic_penalties::{
ARDPenalty,
AnalyticPenalty,
AnalyticPenaltyKind,
AnalyticPenaltyOp,
AnalyticPenaltyRegistry,
BlockOrthogonalityPenalty,
BlockSparsityPenalty,
DecoderIncoherencePenalty,
DifferenceOpKind,
EdgeRestriction,
FrozenAnalyticPenaltyOp,
HarmonicRoughnessPenalty,
IsometryDuchonRadialSource,
IsometryPenalty,
IsometryReference,
IvaeRidgeMeanGauge,
MechanismSparsityPenalty,
NestedPrefixPenalty,
NuclearNormPenalty,
OrderedBetaBernoulliHessianDiagThirdChannels,
OrderedBetaBernoulliPenalty,
OrthogonalityPenalty,
ParametricRowPrecisionPriorPenalty,
PenaltyConcavity,
PenaltyTier,
PsiSlice,
RowPrecisionPriorPenalty,
ScadMcpPenalty,
ScalarWeightSchedule,
ShapeMonotonicityPenalty,
SheafConsistencyPenalty,
SmoothThresholdPenalty,
SoftmaxAssignmentSparsityPenalty,
SparsityKind,
SparsityPenalty,
TopKActivationPenalty,
TotalVariationPenalty,
WeightField,
};