## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set(collapse = TRUE, comment = "#>") ## ----setup-------------------------------------------------------------------- library(dist.structure) library(algebraic.dist) ## ----------------------------------------------------------------------------- sys <- series_dist(list( exponential(0.5), exponential(0.3), exponential(0.2) )) class(sys) algebraic.dist::is_dist(sys) ## ----------------------------------------------------------------------------- # General: any components, arbitrary topology sys_general <- series_dist(replicate(3, exponential(1), simplify = FALSE)) # Specialization: exploits Exp(sum(rates)) closed form sys_special <- exp_series(c(1, 1, 1)) ## ----------------------------------------------------------------------------- for (ti in c(0.5, 1, 2)) { stopifnot(isTRUE(all.equal( algebraic.dist::surv(sys_general)(ti), algebraic.dist::surv(sys_special)(ti), tolerance = 1e-10 ))) } ## ----------------------------------------------------------------------------- d <- exponential(1) # Plain min: just a dist, no topology d_min <- min(d, d, d) class(d_min) ## ----------------------------------------------------------------------------- # Structure-aware: a series_dist, topology preserved sys_min <- min_iid(d, m = 3) class(sys_min) dist.structure::min_paths(sys_min) ## ----------------------------------------------------------------------------- # Parallel: max of iid sys_max <- max_iid(d, m = 3) class(sys_max) # k-th order statistic sys_k <- order_statistic(d, k = 2, m = 5) class(sys_k) ## ----------------------------------------------------------------------------- # Density of exp_series: dexp at the aggregate rate. f <- density(exp_series(c(0.5, 0.3, 0.2))) f(1) dexp(1, rate = 1.0)