Changes in version 1.2 (2026-05-08) - distfreereg() is no longer a generic function. Selection of appropriate methods is done by internal-only functions. This simplifies distfreereg()'s use and simplifies the process of adding support for new model classes. - compare() and update.distfreereg() have been modified for use with the updated distfreereg() function. Call elements have been simplified. - The covariance list is now filled in a way that generally prefers operations on the "square root" level. In particular, the path Σ→ Σ-1/2→Q is preferred to Σ→P→Q. - The covariance list must now be NULL when test_mean is a model object. In the previous version, a covariance list value was simply ignored in this case. - plot.distfreereg() now has an "ecdf" option. - The buffer option for controlling the creation of simultaneous confidence bands has been replaced by the q_probs option, which is based on quantiles. - Fixed two bugs affecting the calculation of the radii of simultaneous confidence bands, which are now narrower than previously calculated. - For clarity, all occurrences of the names mcsim_stats have been replaced with theoretical_stats. Further, all occurrences of observed_stats in compare objects have been replaced with empirical_stats to distinguish them from statistics that are observed from data rather than simulated by compare(). - Minor changes: accounting for the Jacobian returned by nls() no longer requires an inefficient multiplication by SqrtSigma and then by Q. Information added to sample size mismatch error message in update.distfreereg(). Default type value for plot.distfreereg()'s residual plot changed to p. - Documentation updated. Changes in version 1.1.2 - Printed output of ks.test.compare() shortened. - Option added to print.distfreereg() to omit printing parameter estimates. Changes in version 1.1.1 - Missing values in compare()'s true mean specification and subsetting in true_mean model objects no longer (always) produce errors. See documentation for details and limitations. Changes in version 1.1 (2025-07-02) - Support for glm and lmerMod (from lme4) objects has been added. - Grouping is now available for all ordering options, and group now defaults to TRUE. The res_order object can now contain repeated elements, which are now used to determine the groups. The aggregator matrix has been renamed the "grouping matrix". - The control argument of distfreereg() can now have an element named return_on_error, which allows for partial output from distfreereg() when an error occurs. - A covariance list element can now be a list of matrices, corresponding to the block diagonal matrix with blocks given by the list elements. - compare now uses simulate() to generate observed outcome variable values when true_mean is neither a function nor an nls object. The theta argument in compare() is therefore now only allowed when test_mean has class function. - To promote reliability, specifying columns to order the residuals must now be done using column names, not column numbers. - The compare argument err_dist_fun must now be a character string naming the desired function. - A simple compare method for print() has been added. - The method argument in distfreereg.formula() no longer has a default value. - distfreereg.formula() no longer has a covariance argument. - Only distfreereg.function() retains a theta_init argument. Starting values for estimation for using distfreereg.formula() can be specified, when applicable, using an appropriately named element of method_args. - Computation of mu now uses a Cholesky decomposition instead of a matrix square root based on an eigenvalue decomposition. - The handling of weights has been improved. Specifically, the covariance structure obtained from model objects is now determined from weights and the estimated sigma value. - Jacobians and Hessians are now calculated using calculus package. Because of the speed improvement, confint.distfreereg() now always returns the matrix or vector returned by the appropriate method of confint(). In particular, it no longer returns a list that includes the output of vcov.distfreereg(). - The symmetry argument has been replaced by a mandatory check for symmetry of Sigma and P, with associated tolerance options. - Minor changes: rmvnorm() no longer drops dimensions, and therefore always returns a matrix. Error message in get_n() now contains more detail. Progress messages for distfreereg() modified. Updates and improvements made to the documentation. Changes in version 1.0.1 (2024-11-18) - Modified tests for macos-arm64. - Added access to matsqrt_tol value to control threshold for what eigenvalue(s) are "too negative" when calculating the eigendecomposition for determining the square root of a matrix.