gam 0.3.116

Generalized penalized likelihood engine
Documentation
use crate::basis::{
    BSplineBasisSpec, BSplineBoundaryConditions, BSplineIdentifiability, BSplineKnotSpec,
    BasisBuildResult, BasisError, BasisMetadata, BasisPsiDerivativeResult,
    BasisPsiSecondDerivativeResult, BasisWorkspace, CenterStrategy, CenterStrategyKind,
    ConstantCurvatureBasisSpec, ConstantCurvatureIdentifiability, DuchonBasisSpec,
    KroneckerFactoredBasis, MaternBasisSpec, MaternIdentifiability, MeasureJetBasisSpec,
    MeasureJetFrozenQuadrature, MeasureJetIdentifiability, OneDimensionalBoundary,
    PenaltyCandidate, PenaltyInfo, PenaltySource, SpatialIdentifiability, SphericalSplineBasisSpec,
    SphericalSplineIdentifiability, ThinPlateBasisSpec, apply_sum_to_zero_constraint,
    build_bspline_basis_1d, build_constant_curvature_basis,
    build_constant_curvature_basis_kappa_derivatives, build_duchon_basiswithworkspace,
    build_matern_basis_log_kappa_aniso_derivatives, build_matern_basis_log_kappa_derivatives,
    build_matern_basiswithworkspace, build_matern_collocation_operator_matrices,
    build_measure_jet_basis, build_measure_jet_basis_psi_derivatives, build_spherical_spline_basis,
    build_thin_plate_basis, build_thin_plate_basis_log_kappa_derivatives, center_strategy_is_auto,
    center_strategy_kind, center_strategy_num_centers, center_strategy_with_num_centers,
    estimate_penalty_nullity, filter_active_penalty_candidates,
    filter_active_penalty_candidates_with_ops, initial_aniso_contrasts,
    orthogonality_transform_for_design, pairwise_distance_bounds, pairwise_distance_bounds_sampled,
    points_in_aniso_y_space, select_centers_by_strategy,
};

use crate::construction::{
    kronecker_logdet_and_derivatives, kronecker_marginal_eigensystems, kronecker_product,
};

use crate::custom_family::{
    BlockEffectiveJacobian, BlockGeometryDirectionalDerivative, BlockWorkingSet,
    BlockwiseFitOptions, CustomFamily, CustomFamilyBlockPsiDerivative, CustomFamilyWarmStart,
    ExactNewtonJointPsiTerms, ExactNewtonOuterObjective, FamilyEvaluation,
    FamilyLinearizationState, ParameterBlockSpec, ParameterBlockState, PenaltyMatrix,
    evaluate_custom_family_joint_hyper, evaluate_custom_family_joint_hyper_efs, fit_custom_family,
};

use crate::estimate::{
    EstimationError, ExternalOptimOptions, FitInference, FitOptions, FittedLinkState, PenaltySpec,
    UnifiedFitResult, UnifiedFitResultParts, fit_gamwith_heuristic_lambdas,
    reml::DirectionalHyperParam,
};

use crate::faer_ndarray::{fast_ab, fast_atb, fast_atv};

use crate::families::strategy::{FamilyStrategy, strategy_for_spec};

use crate::matrix::{
    BlockDesignOperator, CoefficientTransformOperator, DenseDesignOperator, DesignBlock,
    DesignMatrix, LinearOperator, RandomEffectOperator, SymmetricMatrix,
    TensorProductDesignOperator,
};

use crate::mixture_link::{
    logit_inverse_link_jet5, state_from_beta_logisticspec, state_from_sasspec, state_fromspec,
};

use crate::pirls::LinearInequalityConstraints;

use crate::resource::MatrixMaterializationError;

use crate::types::{
    InverseLink, LatentCLogLogState, LikelihoodSpec, MixtureLinkState, ResponseFamily,
    SasLinkState, StandardLink,
};

use crate::util::quantile::quantile_from_sorted;

use faer::sparse::{SparseColMat, Triplet};

use ndarray::{Array1, Array2, ArrayView1, ArrayView2, ArrayViewMut2, Axis, s};

use serde::{Deserialize, Serialize};

use std::collections::{BTreeMap, BTreeSet};

use std::f64;

use std::fs::File;

use std::ops::Range;

use std::path::PathBuf;

use std::sync::atomic::AtomicUsize;

use std::sync::{Arc, Mutex};