# universals

`universals`

provides S3 generic methods and some default
implementations for Bayesian analyses that generate Markov Chain Monte
Carlo (MCMC) samples.

The purpose of `universals`

is to reduce package
dependencies and conflicts.

## Philosophy

The methods are primarily designed to be used for Bayesian analyses
that generate Markov Chain Monte Carlo (MCMC) samples but many can also
be used for Maximum Likelihood (ML) and other types of analyses.

The names of the functions are based on the following
definitions/concepts:

- A
`term`

is a single real or integer
`value`

.
- A
`par`

(short for parameter) is a numeric object of
terms.
- An MCMC object is a collection of MCMC samples that refer to a set
of terms.
- The samples are arranged in one or more
`chains`

of the
same length (number of `iterations`

).
- The number of
`simulations`

is the product of the number
of iterations and the number of chains.
- The number of
`samples`

is the product of the number of
simulations and the number of `terms`

.

The ‘nlist’ package implements many of the methods for its ‘nlists’
class.

## Installation

To install the latest release from CRAN

`install.packages("universals")`

To install the developmental version from GitHub

```
# install.packages("remotes")
remotes::install_github("poissonconsulting/universals")
```

## Usage

`universals`

is designed to be used by package
developers.

It is recommended to import and re-export the generics of interest.
For example, to provide a method for the S3 `pars()`

method,
use the following `roxygen2`

code:

```
#' @importFrom universals pars
#' @export
universals::pars
```

## Inspiration

## Contribution

Please report any issues.

Pull
requests are always welcome.

## Code of Conduct

Please note that the universals project is released with a Contributor
Code of Conduct. By contributing to this project, you agree to abide
by its terms.