Contains a number of bug fixes and some new functionality. The latter are mostly related to PADRINO models, and shouldn’t have *too much* of an effect on existing user-specified IPMs.

Adds

`return_sub_kernels`

argument to`make_ipm()`

for`*_stoch_param`

and all density dependent methods. This is due to the large RAM footprint that these objects can occupy, particularly for long running models. The default is`FALSE`

, which will save considerable memory space. Can be set to`TRUE`

for downstream analyses that require sub-kernels/iteration kernels.Prettier printing method for PADRINO objects/lists of user-specified models.

Prettier warnings for

`left/right_ev()`

Depending on your view, this may be a bug fix: updates the

`log`

argument in`lambda()`

so that it only changes the scale, NOT the calculation method. The prior behavior was documented, but unlikely to be intuitive, and so caused some confusion. Thanks to @aariq for pointing this out.For stochastic IPMs,

`is_conv_to_asymptotic()`

and`conv_plot()`

now check for convergence in stochastic lambda. That is, they use a cumulative mean`log(lambda)`

over iterations after discarding a burn-in. Thanks to @aariq for implementing this in #45.Adds experimental function

`make_ipm_report()`

. This function converts`proto_ipm`

objects into Rmarkdown documents that, when rendered, contain the equations and parameters used to implement the model in Latex. See the function documentation for more details, and report bugs/notation quirks/preferences in the issue tracker.

Fixes bug in normalization of left/right eigenvectors in simple density independent stochastic models. (thanks to @aariq)

Fixes bug where

`"drop_levels"`

was not recognized in some parameter set indexed models.Fixes bug where parameter set levels were recycled in some cases.

Fixes bug in

`lambda()`

where`log = TRUE`

had no effect when the IPM was stochastic and`type_lambda`

was`'last'`

or`'all'`

.Switched from

`all.equal`

to absolute tolerance. @aariq in #52.Fixes bug where the value of

`lambda()`

was named for determinstic models and unnamed for stochastic models. @aariq in #57.Fixes bug in

`make_ipm()`

where a user-specified sequence wasn’t getting used correctly for certain model classes. @aariq in #58.Warnings about

`NA`

s in`data_list`

are no longer raised for model objects.

Contains small tweaks, bug fixes, and new feature additions. There shouldn’t be any breaking changes to the API.

Adds

`log`

argument to`lambda`

so users can choose which scale to return. The default is`TRUE`

for stochastic models and`FALSE`

for deterministic models.Allows named expressions in

`define_env_state()`

such that the names of the expressions may be used in`define_kernel()`

. Before, the name of the expression didn’t matter, only the names of the outputted list. Now, this will also work as well.

```
define_env_state(proto_ipm,
temp = rnorm(1, 20, 3),
precip = rgamma(1, 400, 2),
data_list = list())
```

More unit tests for parameter resampled models.

Removed innocuous warning messages. Added warnings for

`NA`

values in a few`define_*`

functions and errors when they’re produced in sub-kernels.Added the

`ipmr_ipm`

class so that most functions can tell the difference between a`PADRINO`

object and an`ipmr`

object.Changes argument

`tol`

to`tolerance`

in`is_conv_to_asymptotic()`

for consistency with other function/argument names.

corrects a bug where functions in the

`define_env_state`

`data_list`

argument weren’t recognized.corrects bug in

`left_ev()`

and`right_ev()`

where parameter set indices were ignored for deterministic models .

Contains a some tweaks and bug fixes, and a few new features:

Implements

`right_ev()`

and`left_ev()`

methods for stochastic models.Adds a new function,

`conv_plot()`

, to graphically check for convergence to asymptotic dynamics in deterministic models.Adds a new function,

`discretize_pop_vector()`

, to compute the empirical density function for a population trait distribution given a set of observed trait values.Adds print methods for density dependent models.

Adds

`log`

argument for`lambda`

.

Corrects bug where

`tol`

argument was ignored in`is_conv_to_asymptotic()`

.Gives output from

`lambda()`

names. Before, outputs from deterministic models with many parameter sets became hard to follow.

Contains a some tweaks and bug fixes. There is one major API change that renames parameters in `define_kernel`

.

Renames function arguments

`hier_effs`

->`par_sets`

,`levels_ages`

/`levels_hier_effs`

->`age_indices`

/`par_set_indices`

. The idea was to shift from thinking about these IPMs as resulting from multilevel/hierarchical regresssion models to IPMs constructed from parameter sets (which can be derived from any number of other methods).Corrects some bugs that caused

`vital_rate_funs()`

to break for`stoch_param`

and density dependent models.Updates the age X size model interface so that

`max_age`

kernels can be specified separately if they have different functional forms from their non-`max_age`

versions.`make_iter_kernel`

can handle computations passed into`mega_mat`

(e.g.`mega_mat = c(P + F, 0, I, C))`

.Makes

`plot.ipmr_matrix`

more flexible, which is now the recommended default`plot`

method for`ipm`

objects.Changes to internal code that won’t affect user experience.

This is the first version of `ipmr`

. It contains methods for constructing a variety of IPMs as well as methods for basic analysis. Complete documentation is in the vignettes and on the package website.