pomp version 1.6 is now available on CRAN. Lots of changes to report: big improvements in the documentation and in the error messages, lots of bug fixes, and some new features, too.
Improvements to the error handling system: War on useless error messages!
- I’ve given the whole error-handling system a major overhaul. Error messages “should” all now say where they come from. This has been made possible by a massive improvement in the testing suite, which now has 99% code coverage. However, in view of the wide range of uses to which pomp is put, I am certain that there are many error scenarios I have not foreseen.
- I hereby declare war on useless error messages! But I can’t win without you: please send examples of error messages that are uninformative or misinformative, along with the code that produced them, so I can trap those errors and improve the messages!
Documentation improvements
- I’ve made major revisions to the package help pages and manual.
Of special note, the separate documentation on C snippets and process-model plugins has been merged into the
pomp
constructor help page, which now has comprehensive instructions on model implementation. I’ve moved the C snippet instructions to the forefront, where they belong, and removed all the overly technical discussion of the very sophisticated options that are not encountered by most users.
User-visible changes
- The matrix and numeric vector options for the
data
argument topomp
are now deprecated and will be removed in a future release. In calls topomp
,data
should be either a data frame or apomp
-class object. - The redundant
bootstrap
argument tonlf
has been removed. - In
mif2
, it is now required thatNmif>0
.
New features
- There is a new plugin for
rprocess
calledkleap.sim
, which implements the so-called “K-leap method” of Cai & Xu (2007). This is another way of accelerating the, usually painfully slow, exact Gillespie method for certain classes of continuous-time Markov processes. The underlying FORTRAN code is a contribution of Helen Wearing’s. - There are new methods for the Ensemble Kalman Filter (
enkf
) and Ensemble Adjustment Kalman Filter (eakf
) methods. These methods userprocess
but, since they assume normal measurement errors, make no use ofrmeasure
ordmeasure
. They should be considered experimental for the time being and subject to change that is not backward-compatible. I would very much appreciate hearing of your experience with them, along with any suggestions for improvements.
Bug fixes
The many changes to the testing suite turned up a number of bugs, which have been fixed. These include:
- Bugs that arose in rare circumstances in
simulate
andeulermultinom
functions. - A bug in
pompExample
that caused the example code to be executed even when not desired. - A bug in specification of the skeleton portion of some pomp examples.
- A bug restricting access in C code to
userdata
.
Under the hood
- I’ve made many improvements to the test suite to obtain very high code coverage. Although this helps, there is still room for improvement, and your help is requested to continue to improve the package.
pomp
is no longer an S4 method. It’s gone back to being a lowly R function, but its new status abbreviates and consolidates the code and simplifies the documentation, so it’s happy.
Please see the package NEWS for more details.