# distr6 1.3.3 Unreleased

• as.data.table has been moved from a ParameterSet method to an S3 dispatch. Fixes bug of overloading as.data.table
• Added distrSimulate for convenient simulation from any distribution

# distr6 1.3.2 2020-01-12

• Bug fix in VectorDistribution - missing which argument
• Bug fix in Bernoulli - rand was incorrectly calling dbinom not rbinom
• Bug fix in the mode of distributions
• Added mode to documentation

# distr6 1.3.1 2019-11-25

• Added wrapper for VectorDistribution for quick concatenation of constructed distributions, c.Distribution
• VectorDistribution print method more in line with base R vectors

# distr6 1.3.0 2019-10-31

• plot function for plotting the pdf, cdf, survival, quantile, hazard, cumhazard or distr6 objects
• lines function for superimposing distr6 plots
• qqplot function for comparing distr6 distributions to each other or to other theoretical distributions
• Added Extract.VectorDistribution for extracted distributions from inside a VectorDistribution, see the big update below.

### Updated Functions

• decorate now allows users to specify the Decorator as a character as well as supplying the object, this makes it simpler when using distr6 whilst unattached
• Big changes (and hopefully final) to the VectorDistribution. Now the VectorDistribution only constructs the internal wrapped distributions when they are extracted or when a function, such as d/p/q/r, are called. This massively reduces a bottleneck in constructing the distribution. Additionally added functions for extracting distributions from inside the VectorDistribution. The only difference that should affect backwards compatibility is that the distribution argument must now be a character and not an object. Custom (i.e. non-SDistribution) distributions should be used in conjunction with the distlist initializer.
• Changed the lower bound of positive Sets to .Machine$double.xmin as the previous value of 1.1e-15 was too restrictive • Added skewness, kurtosis, entropy, mgf, cf, and pgf to WeightedDiscrete and Empirical • Added support for custom distributions in VectorDistribution and for CoreStatistics functions as well as support for only one arguments passed to d/p/q/r for fast comparisons between wrapped distributions ## Patches • Bug fix in WeightedDiscrete distribution variance calculation • Fixed bug in Empirical that was stopping the cdf of the first point in the distribution being evaluated • Fixed bug that allowed invalid parameter values to be set for non-reference parameters • Updated parameter error messages to be more informative • Improved speed and efficiency in Distribution constructor for wrappers # distr6 1.2.0 2019-10-02 ## Minor Updates ### Added Functions and Classes • Added non-central F, T, Chi-Squared, and Beta distributions • Added WeightedDiscrete distribution. This allows users to supply a data.frame of samples and pdf/cdfs for more efficient usage with empirical discrete estimators (e.g. Kaplan-Meier) ### Updated Functions • Added the common survival parameterisation of Weibull distribution • Updated the listX functions to make them quicker and functional when distr6 is not attached • Added suppressMoments argument to Distribution constructor to allow for faster construction ## Patches • Added errormsg argument to assertions so a custom error message can be provided • Fixed error in quantile function in Empirical that was causing results to be dropped • Fixed bug in TruncatedDistribution that prevented multivariate distributions being truncated • Fixed error in variance of Empirical that was calculating sample not population • Moved rare imports to suggests # distr6 1.1.0 2019-08-27 ## Minor Updates ### Added Functions and Classes • Empirical distribution for distributions arising from observed samples (e.g. from MC sampling methods) • simulateEmpiricalDistribution: function for sampling without replacement from an Empirical distribution ### Deprecated Functions • ArrayDistribution - This wrapper is now merged with ProductDistribution by adding two new parameters to ProductDistribution that allow for construction either by a distribution list of by naming a distribution and providing a parameter list or data.table ### Updated Functions • Added quantile to Categorical distribution and updated its cdf efficiency • cdf of discrete distributions evaluated between integers are now evaluated after rounding down and do not return 0, e.g. Binomial$new()$cdf(1.8) == Binomial$new()$cdf(1) • Added two additional parameters to ProductDistribution: params and distribution, so that it can either function as before or as the ArrayDistribution wrapper which is now deprecated. • Added two additional parameters to VectorDistribution: params and distribution, so that it can either function as before or as a generalisation to the ArrayDistribution wrapper which is now deprecated. • Removed automated rounding of numerics when ParameterSet expected integer in setParameterValue • Added parameter n to strprint and print to clean the print method for distributions (especially wrappers) with multiple parameters • Added optional vectordist argument to MixtureDistribution for better compatibility with VectorDistribution • Changed short_name of Uniform, Logistic, Normal, and Triangular kernels to remove Kern. The ClassNames (and thus constructors) remain the same • listKernels and listSpecialSet now return data.tables with stringsAsFactors = FALSE • Degenerate distribution re-classified as discrete ## Patches • Bug fix in quantile function of huberization wrapper • Fixed the rand return of a Vector Distribution (transposed data.table and added column names) • Fixed spelling mistakes in extension guidelines and removed calls to redundant parameters • Removed redundant crayon dependency • Fixed bug in MixtureDistribution that was causing rand to erroneously return integers • Removed error in Categorical documentation • Fixed bug in multi-modal Categorical distribution • summary and print now return self invisibly for better piping # distr6 1.0.1 2019-07-25 • Updated vignettes to remove redundant distr6 installation via GitHub that was causing a warning on Debian • Redundant stopwarn argument removed from parameters() method in Distribution and ParameterSet classes • Updated Kernel$new() error message to point user to Distribution class
• Fixed broken if/else statement in liesInSetInterval method of SetInterval class

# distr6 1.0.0 2019-07-19

• v1 API is ready to be shipped to CRAN!
• Again see here for the updated API lifecycle
• Tutorials, extension guidelines and other documentation (in appendices) are now on the website
• distr6 is a complete, unified, object-oriented interface to probability distributions in R. Complete with 36 probability distributions and another 11 kernels, distr6 also allows functionality for numerical imputation of methods and statistical functions.

# distr6 0.1.0.9000 Unreleased

• Now public!
• distr6 API as whole is still very much experimental but analytic features are fairly stable, see here for details on feature lifecycles
• Development continues to be internal, through UCL and The Alan Turing Institute, but we welcome external users to test the API and report bugs, see our contributing guidelines for details including our code of conduct