propagate 1.1-0 (08-02-2026)
New Functions:
* 'sobol': added Sobol Sensitivity Indices for a 'propagate' object in 4 different variants: "jansen", "sobol", "saltelli", "homma".

Updated Functions:
* 'propagate' has been seriously overhauled, specifically:
  1) Argument 'do.sim' has been removed, as MC simulation is now always performed. One can now select between "diag" (only variances used for propagation) or "full" (complete covariance matrix used).
  2) 'df' has been renamed to 'df.tot', as this is more explainative.
  3) 'k' has been introduced as an optional coverage factor that overrides the one obtained from WelchSatter.
  4) 'second.order = TRUE' has been removed, as second-order Taylor propagation now always takes place. Instead, with 'exp.uc' one can now choose if the "1st"- or 1st + "2nd"-order are used for calculating expanded uncertainty.
  5) The documentation has been revamped. It is now made clearer that the input is either
        a) statitical summary data with mean, SEM and potential DOF's
        b) Raw experimental data
        c) Random samples from distributions
    'propagate' now guesses the data type based on the number of rows and gives a message (just check, no override).
  6) MOST IMPORTANT: the MC simulation (GUM Supplement 1) has changed from a multivariate t-distribution with Welch-Satterthwaite-derived total DOF's to a Gaussian Copula with t-margins that have their own DOF's from
        a) either the third row from 'type' = "stat".
        b) calculated from the raw measurement values as N-1 when 'type' = "raw" or "sim".
     This setup is quite unique as the increased uncertainty from low DOF's that can be individual per measurand is now directly translated into a multivariate distribution.
     The similarity of the input parameters (mean, SEM, DOF's, covariance matrix) and of the constructed Copula are tested and printed with summary(object).

* 'summary.propagate' now has an expanded output for the new 'propagate' results, that is, it now also provides:
  1) the covariance matrix used as input for classical and MC-derived uncertainty propagation.
  2) the covariance matrix estimated from the MC evaluation.
  3) The Frobenius Norm to compare both matrices from 1) and 2).
  4) the correlation matrix used to construct the Gaussian Copula with t-margins.
  5) the correlation matrix estimated from the MC evaluation.
  6) The Frobenius Norm to compare both matrices from 4) and 5).
  7) A comparison of Copula-input and MC-derived moments/DOFs, to check for similarity and success of the Copula construction/MC sampling.
  8) Shapiro-Wilks-, Anderson-Darling- and Lilliefors-Tests with 1000-2000x subsampling have been added for robust normality estimation.

* 'bigcor' now uses the "hdf5r" framework as "ff" is somewhat outdated, and it is a bit faster. The large matrices are stored as an .h5-file on the drive.
* added 3 new distributions to 'fitdistr': Pareto, Levy, Gompertz.
* added 4 new distributions to 'rDistr': Cosine, Pareto, Levy, Gompertz.
* 'plot.propagate' now displays 4 vertical lines/borders: alpha-based confidence intervals (GUM: dashed black; MC: solid black), median (orange) and mean (green).
* 'WelchSatter' now has an argument k that can override the alpha-based coverage factor.

propagate 1.0-7 (24-05-2025)
* Updated version to make everything CRAN-compliant

propagate 1.0-6 (07-01-2018)
* Doc to 'print.propagate' has been removed (too trivial...)
* 'plot.propagate' has been changed to only display a histogram with confidence interval, median and mean; the former boxplot was not very expedient.
* added the following four distributions for 'fitDistr' and as random samplers: Burr, Chi, Inverse Chi-square and Cosine.
* 'fitDistr' has been seriously revamped: 
  1) Distribution selection is now based on BIC (not AIC), as my simulations revealed a more robust performance.
  2) We now have 32(!) distributions.
  3) All distributions are now fitted with a brute force approach so that the parameter space is exploited more efficiently.
  4) The best fit is now explicitly named by a new 'print.fitDistr' function (requested by H. Mildenberger).
  5) All density functions are now exported to be used elsewhere (requested by H. Mildenberger).
  6) The fit quality can now be inspected with a QQ-Plot that compares the empirical density with the theoretical density (requested by Hugo Mildenberger).
  7) All outputs are now sorted ascendingly by BIC.
  8) The parameter estimates are now supplemented by their standard errors.
  9) The distributions can now be selected by "distsel", e.g. c(1:10, 12, 15) (requested by Hugo Mildenberger).
  10) The BIC sorted output data frame now includes residual sum-of-squares (RSS) and mean squared error (MSE).
* predictNLS has been overhauled by the following:
  1) possible predictor errors are now to be supplied as a 'newerror =' dataframe.
  2) calculated prediction intervals now handle the 'weights' argument of the fit (weighted residuals), as requested by T. Wenseleers.
  3) The prediction intervals under 2) are created by augmenting the covariance matrix by the residual variance. Interestingly, if one supplies this augmented covariance matrix to 'rtmvt', that is we add another dimension with the residual variance of the fit, we get a 95% prediction interval when calculating the 2.5% / 97.5% quantiles. This approach is also added.

propagate 1.0-5 (24-10-2017)
Changes and bug-fixes in functions:
* 'bigcor' can now calculate correlations between a large maxtrix x and a smaller matrix/vector y similar to 'cor(x = mat1, y = mat2)', as requested by P. Waldmann.
* added literature references to the 'interval' doc.
* the objective function in 'fitDistr' now returns sqrt(weights) * residuals instead of weights * residual^2, which was not quite correct...
* added the following new continuous distributions to 'fitDistr' and as random number generators: Inverse Gaussian, Generalized Extreme Value, Inverse Gamma, Rayleigh; and 2-parameter beta, Chi-square, exponential and F-distribution for fitting.
* 'mixCov' has been simplified to handle covariance matrices and vectors containing variances.
* 'WelchSatter' now uses optional external sensitivities, which can be transferred from 'propagate'.
* 'contributions' was removed, and the "sensitivities"/"relative contributions" calculation incorporated into 'WelchSatter', which is then given in the output of 'summary.propagate'. 
* 'propagate' has been revamped and simplified. Distinction between statistical summary and raw data is now done automatically; Monte Carlo simulation is now based solely on the t-distribution with degree of freedom obtained from Welch-Satterthwaite approximation. If degrees of freedom are not supplied, the normal distribution will be used.
* added a new function 'stochContr' that conducts "stochastic contribution analysis" by calculating the change in propagated uncertainty when each of the simulated distributions is kept constant at its mean.

propagate 1.0-4 (25-09-2014)
New functions:
* added a summary function for propagate objects that includes skewness/kurtosis and Shapiro-Wilks/Kolmogorov-Smirnov tests for normality on the MC evaluations.
* added 'interval' function for uncertainty propagation based on interval arithmetics. Avoids the so-called "dependency problem" by evaluating all combinations of a sequence grid.

Changes and bug-fixes in functions:
* "use.eval" has been removed from 'propagate' because switching between evaluation in an environment or row-wise is now done automatically.
* "method" has been removed from 'propagate' because the function will now first try symbolic differentiation and automatically switch to numeric differentiaion if that fails.
* 'propagate' can now handle functions in addition to expressions. This way, one can define functions for more complicated setups, such as recurrence relations. However, Taylor expansion is not applicable in these scenarios because no automatic differentiation is possible, so only Monte Carlo simulation will be conducted.
* fixed a bug in 'predictNLS' which gave an error when the formula for 'nls' is defined outside of 'nls' and supplied as a variable to the function call (thanks to Bartosz Kostrzewa).
* print.propagate is now less verbose, because summary.propagate has been added.
* added an example in doc to 'propagate' from the Python library 'soerp' (https://pypi.python.org/pypi/soerp) for comparison purposes => exactly (to the fifth decimal) the same results. 

propagate 1.0-3 (28-02-2014)
* As the new parametrization of 'dgnorm' tended to give convergence problems (bug kindly provided by Tony C), it was included into those distributions that are initially fitted by a grid of possible starting parameters in 'fitDistr'. 
* The 'optim' function of 'fitDistr' was replaced by 'nls.lm' of the "minpack" package because it is more robust in terms of minimizing residal sum-of-squares.
* Updated 'Examples' section of 'bigcor'.

propagate 1.0-2 (27-01-2014)
* Modified 'rmises', 'rctrap' and 'rgtrap' so that a result vector is preallocated, which makes the three functions a bit faster, roughly 300000-400000 random numbers/second (3 GHz Pentium Dual Core). 
* 'colVars' and 'rowVars' are now coded in C++ using the Rcpp framework. For a row-wise calculation of variances from a matrix of 500000 rows/10 columns this takes now only 100 ms! 
* Added function 'bigcor' for creating VERY large correlation/covariance matrices, using a step-wise submatrix filling approach (Huh?). There is a corresponding blog entry to be found under http://rmazing.wordpress.com/2013/02/22/bigcor-large-correlation-matrices-in-r/.
* Generalized normal distribution 'dgnorm' now has a different parametrization that tallies with 'rgnorm' (bug kindly provided by Tony C).

propagate 1.0-1 (29-08-2013)
* First version and hence no update.