*Breaking changes*
- deprecate `tf_transmute()`
- rename `Marginal.l()` to `Marginal.d()`; this is a density, not a likelihood
- rename `marg_named()` to `marg_fit()`; that name is confusing now that we also have `marg_mom()`
- change argument order for `marg_fit()` to make consistent with `marg_mom()`
- rename `colmin` -> `min`, `colmax` -> `max`, `colsum` -> `sum`
-
*Features*
- add random variable sample to marginals `Marginal.r(n)`
- add frozen location parameter option to `marg_mom()` and `marg_fit()`; enables access to 2-parameter lognormal and 2-parameter Weibull distributions
- make marginal summary output more readable by reporting standard moments, rather than distribution parameters
- add autoplot dispatch from `eval_contour()` output
- add `linspace()` and `logspace()` helper functions
- add thermal-radiation channel model based on Andrew Banko's thesis; verify implementation against existing data
- add `tran_iocorr()` to compute input/output correlations; autoplot dispatch for useful EMA tool (correlation tileplot)
- add `mean_lo|up()` and `pr_lo|up()` helper summary functions to compute lower and upper confidence interval bounds
-
*Fixes*
- fixed bug with automatic levels in `eval_contour()`
- correct buckling plate model; now takes wavenumber for buckling mode
- remove dependency on psdr package by inboarding & trimming code, allows us to keep `tran_varproj()` without a cvxpy dependency
- vectorize the cantilever beam model's functions
*Documentation*
- add a more informative example in docstring for `if_else()`
- add documentation to `eval_sample()` that mentions `tran_sp()` for reducing model runtime
- add link to random variable modeling page in documentation to undefined copula error