<!-- This file requires commonmark and xml2 packages to be treated correctly -->


# Changes in distfreereg version 1.2

* `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 &#931;&rarr;
&#931;<sup>-1/2</sup>&rarr;Q is preferred to &#931;&rarr;P&rarr;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 distfreereg version 1.1.2

* Printed output of `ks.test.compare()` shortened.

* Option added to `print.distfreereg()` to omit printing parameter estimates.



# Changes in distfreereg 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 distfreereg version 1.1

* 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 distfreereg version 1.0.1

* 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.
