#![doc = include_str!("../README.md")]
#![allow(clippy::result_large_err)]
pub mod core;
pub mod error;
pub mod inference;
pub mod macros;
pub mod runtime;
pub use core::address::Address;
pub use core::distribution::{
Bernoulli, Beta, Binomial, Categorical, Cauchy, ChiSquared, DiscreteUniform, Distribution,
Exponential, Gamma, InverseGamma, Laplace, LogNormal, Normal, Poisson, StudentT, Uniform,
Weibull,
};
pub use core::model::{
factor, guard, observe, pure, sample, sample_bool, sample_f64, sample_i64, sample_u64,
sample_usize, sequence_vec, traverse_vec, zip, Model, ModelExt, SampleType,
};
pub use runtime::handler::Handler;
pub use runtime::interpreters::{
PriorHandler, ReplayHandler, SafeReplayHandler, SafeScoreGivenTrace, ScoreGivenTrace,
};
pub use runtime::trace::{Choice, ChoiceValue, Trace};
pub use core::numerical::{log1p_exp, log_sum_exp, normalize_log_probs, safe_ln};
pub use error::{ErrorCategory, ErrorCode, ErrorContext, FugueError, FugueResult, Validate};
pub use inference::abc::{
abc_rejection, abc_scalar_summary, abc_smc, DistanceFunction, EuclideanDistance,
};
pub use inference::diagnostics::{
classic_r_hat_f64, extract_bool_values, extract_f64_values, extract_i64_values,
extract_u64_values, extract_usize_values, print_diagnostics, r_hat_f64,
summarize_f64_parameter, Diagnostics, ParameterSummary,
};
pub use inference::hmc::{hmc_chain, HMCConfig};
pub use inference::mcmc_utils::{
effective_sample_size_mcmc, effective_sample_size_multichain, geweke_diagnostic,
DiminishingAdaptation,
};
pub use inference::mh::{
adaptive_mcmc_chain, adaptive_mcmc_chain_with_overrides, adaptive_single_site_mh, SiteProposal,
};
pub use inference::smc::{
adaptive_smc, effective_sample_size, Particle, ResamplingMethod, SMCConfig,
};
pub use inference::validation::{
ks_test_distribution, test_conjugate_beta_bernoulli_model, test_conjugate_normal_model,
ConjugateBetaBernoulliConfig, ConjugateNormalConfig, ValidationResult,
};
pub use inference::vi::{elbo_with_guide, optimize_meanfield_vi, MeanFieldGuide, VariationalParam};