NEW IN VERSION 0.36-1:

    o  There are two new classes: 'traj.matched.pomp' and 'pfilterd.pomp' to hold the results of 'traj.match' and 'pfilter' computations, respectively.  The old classes 'mif' and 'pmcmc' now inherit from 'pfilterd.pomp' in a natural way.

    o  When 'traj.match' is called, the returned 'traj.matched.pomp' object has its 'states' slot filled with the model trajectory at the fitted parameters.

    o  More optimization methods are now provided in 'traj.match'.  These include the new algorithm "sannbox", an optionally box-constrained simulated annealing algorithm.

    o  'probe.match' is now an S4 method (like 'pfilter', 'mif', 'pmcmc', and 'traj.match') with methods for classes 'pomp', 'probed.pomp', and 'probe.matched.pomp'.

    o  There is a change to the interface to 'pfilter' in that 'save.states' results in the filling of the 'last.states' slot.  Before version 0.36-1, the 'pfilter' returned a list.  The element 'states' of that list corresponds to the slot 'last.states' in version 0.36-1.  It was necessary to make this name-change in order to avoid a conflict with the 'states' slot inherited from the 'pomp' class.

NEW IN VERSION 0.35-1:

    o  Added a facility for computation of "synthetic likelihood" (Wood 2010) using a robust estimate of the covariance.  A new slot in objects of class 'probed.pomp' holds this value.

    o  The synthetic likelihood is now the quantity that is maximized in 'probe.match'.

    o  Added the argument 'type' to 'probe.ccf' so that either cross-covariance or cross-correlation can be returned.  'probe.ccf' and 'probe.acf' now have comparable interfaces.

    o  Changed the way that 'probe.acf' accepts lags.  Now an arbitrary set of lags can be selected.

    o  A bug in the new method 'obs' has been fixed.

    o  A protection-stack overflow bug in 'probe' has been fixed.

    o  The 'seed' slot in 'probed.pomp' and 'spect.pomp' objects has been removed, along with unwanted behavior to do with it.

NEW IN VERSION 0.34-2:

    o  Added a method to coerce 'probed.pomp' objects to 'data.frame' objects.

    o  Fix bug when 'simulate' is run on objects that inherit from 'pomp' but are not themselves pomps.
       'simulate' should return 'pomp' objects when obs=F and states=F, regardless of what class 'object' is.

    o  'simulate' and 'rprocess' are accelerated somewhat through judicious use of 'memcpy'.

NEW IN VERSION 0.34-1: 

    o  The default behaviors of 'simulate' and 'trajectory' with respect to the argument 'times' has changed.
       There is a new argument, 't0', which specifies the time at which the initial conditions obtain.
       The default for 't0' is 'timezero(object)'.
       The default for 'times' is now 'time(object,t0=FALSE)' (it was 'time(object,t0=TRUE)').
       This change eliminates an infelicity in which 'simulate' and 'trajectory' returned undesired values at the initial time.
       Users can ensure that their codes will continue to function as intended by specifying the values of the 'times' and 't0' arguments to these functions, thus removing dependence on the defaults. 
       To aid users in  modifying their codes, a warning is now displayed whenever a potentially affected call is made.
       These warnings will be removed in a future release.
       See the documentation ("pomp?simulate", "pomp?trajectory") for a description of the new default behaviors.

    o  The 'states' slot now holds values of the state process only at the times given in the 'times' slot.
       This is a change from the earlier behavior in which the 'states' slot sometimes included the value of the state process at 't0'.

    o  'simulate' has been re-implemented in C for speed.

    o  A new method 'obs' for pomp objects returns the contents of the 'data' slot.
       It is synonymous with 'data.array'.

    o  A banner is now displayed on package attachment.  

    o  'coef<-' now behaves like ordinary vector assignment.

    o  'probe' and 'spect' now take an argument 'params'.

    o  'probe.cov' and 'probe.cor' have been removed in favor of 'probe.acf' and 'probe.ccf'.

    o  The functions 'euler.simulate', 'onestep.simulate', and 'onestep.density', deprecated since version 0.29-1, have been removed.  
    
NEW IN VERSION 0.33-1:

    o Major improvements in speed in the probe-matching routines have been realized by coding the computationally-intensive portions of these calculations in C.

    o New probes recommended by Simon Wood (Nature 466:1102-1104, 2010) have been implemented.
      In particular, the new function 'probe.marginal' regresses the marginal distributions of actual and simulated data against a reference distribution, returning as probes the regression coefficients.
      'probe.marginal' and 'probe.acf' have been coded in C for speed.

NEW IN VERSION 0.32-1:

    o  pomp now includes parameter estimation methods based on probe-matching and power-spectrum-matching as explained in papers by Kendall et al. (B. E. Kendall, C. J. Briggs, W. M. Murdoch, P. Turchin, S. P. Ellner, E. McCauley, R. M. Nisbet, S. N. Wood (1999) Why do populations cycle? A synthesis of statistical and mechanistic modeling approaches.  Ecology, 80:1789--1805) and Reuman et al. (D.C. Reuman, R.A. Desharnais, R.F. Costantino, O. Ahmad, J.E. Cohen (2006) Power spectra reveal the influence of stochasticity on nonlinear population dynamics. Proc. Nat'l. Acad. Sci., U.S.A.} 103:18860--18865).

NEW IN VERSION 0.31-2:

    o  new "window", "timezero", and "timezero<-" methods are available for manipulating 'pomp' objects.

NEW IN VERSION 0.31-1:

    o  pomp now includes an implementation of the particle Markov chain Monte Carlo algorithm of Andrieu et al. (Andrieu, C., Doucet, A., & Holenstein, R. (2010) Particle Markov chain Monte Carlo methods. J. R. Stat. Soc. B 72:1--33).
       This algorithm is implemented in the method 'pmcmc': see 'help(pmcmc)' for details.
       Implementation primarily due to Ed Ionides.
       
NEW IN VERSION 0.30-1:
    o  pomp now includes an implementation of the approximate Bayesian Sequential Monte Carlo algorithm of Liu & West (Liu, J. & West, M. (2001) Combining Parameter and State Estimation in Simulation-Based Filtering. In Doucet, A.; de Freitas, N. & Gordon, N. J. (eds.) Sequential Monte Carlo Methods in Practice, Springer, New York, pp. 197--224).
       This algorithm is implemented in the method 'bsmc': see 'help(bsmc)' for details.
       Thanks to Matt Ferrari and Michael Lavine for the implementation.
       
NEW IN VERSION 0.29-5:

    o  The cholera transmission model from King, A. A., Ionides, E. L., Pascual, M., and Bouma, M. J. (2008) Inapparent infections and cholera dynamics, Nature 454:877--880 together with data from the Dacca district of historic Bengal are now included.
       See 'help(dacca)' for details.

NEW IN VERSION 0.29-1:

    o  This is a major revision.

    o  Big improvements to the documentation, including worked examples in vignettes and improvements to the manual pages.

    o  Encoding models is now much easier through the use of "plugin" modules.
       These are functions that write the 'rprocess' and 'dprocess' slots given minimal information on the structure of the model.

    o  A plugin for continuous-time Markov process models using the Gillespie algorithm is available.

    o  A plugin for discrete-time Markov processes is now available.

    o  Several example pomps are now loadable via the data() command.

    o  There are changes in the C interface to measurement models that are NOT BACKWARD COMPATIBLE.  
       Existing user measurement model codes will need to be modified, but these changes are minor.
       All this is fully explained in the file CHANGES_0.29-1.txt.

    o  The changes are documented in detail in the file CHANGES_0.29-1.txt.

NEW IN VERSION 0.22-1:
    
    o  The nonlinear forecasting method of Kendall, Ellner, et al. is now implemented in the package.  This is an "indirect inference" method using quasi-likelihood as an objective function.

NEW IN VERSION 0.21-4:

    o  Improved documentation in "euler.Rd".

NEW IN VERSION 0.21-3:

    o   Trajectories of the deterministic skeleton can now be computed via the method "trajectory".

    o	Bug fix in stochastic Euler algorithm.

NEW IN VERSION 0.20-8:

    o   Better error handling in mif

    o	Fix inaccuracy in documentation of 'pomp' arguments 'rmeasure' and 'dmeasure'

NEW IN VERSION 0.20-7:

    o   Bug fix in convergence record storage

NEW IN VERSION 0.20-6:

    o   Bug fix in "intro_to_pomp" vignette
    
NEW IN VERSION 0.20-5:

    o   Better error handling and improved documentation for 'mif'

    o   Testing of examples in the 'examples' directory, including compilation, linking, and running of dynamically-loadable library on unix machines

NEW IN VERSION 0.20-4:

    o   A bug in the Euler simulator was repaired.

    o	The Euler simulator no longer calls GetRNGState() and PutRNGState().
	When a native routine is used for the Euler step, it must contain these calls.

    o	A potential bug in the Euler-multinomial simulator was repaired.

NEW IN VERSION 0.20-2:

    o	The lookup_table (see file 'include/pomp.h') interface for C codes has been streamlined.
        It is now slightly more straightforward to set up a 'struct lookup_table'.
    	See the examples ('include/examples').

    o	Added 'logistic.R' to the 'tests' directory.  
	This is a one-variable stochastic differential equation simulated using Euler-Maruyama.

    o	The SIR example ('examples/sir.R') now includes two pomps: one with native routines implementing rprocess, dprocess, and skeleton, the other using R files.
	The comparison may be instructive.

    o	Several bugs fixed.

NEW IN VERSION 0.20-1

    o   This is a major revision.

    o	The basic structure of the 'pomp' class has been changed to better support the use of native routines as well as R functions.
	In particular, the 'rmeasure', 'dmeasure', and 'skeleton' methods can now be specified either as R functions or as native routines.
	Native routines are specified by name; an optional 'PACKAGE' argument is provided to narrow the search.
	The search is done not at the time of the call to 'pomp' but at the time the function is used.

    o	Support has been added for covariates, in the form of lookup tables.
        This has been accomplished through the addition of slots 'tcovar', 'covar', and 'covarnames' to the 'pomp' class.
	'rmeasure', 'dmeasure', 'skeleton', and 'init.state' now perform lookup when covariates exist and pass this information to the user-defined function.
	'rprocess' and 'dprocess' receive the full lookup table ('tcovar' plus 'covar').

    o	'rmeasure', 'dmeasure', and 'skeleton' are now specified by a function (or native routine) that does the computation for ONE state vector and ONE parameter vector.
    	This is analogous to the way that 'init.state' has operated from the beginning.
	It greatly simplifies model specification from the user's point of view without changing the low-level methods interfaces (pomp methods 'rmeasure', 'dmeasure', 'skeleton', 'init.states').
	However, THIS CHANGE IS NOT BACKWARD-COMPATIBLE: users will need to rewrite code for the 'rmeasure', 'dmeasure', and 'skeleton' slots.
	In practice, this should not be difficult.
	It involves removing loops over 'times' and columns of 'params' and (if covariates are used in the measurement model or deterministic skeleton) making use of the 'covars' argument passed to the user function.

    o	The interface to the 'euler.simulate' and 'euler.density' facilities have changed to make them consistent with the new pomp class.

    o	The header files have been reorganized: 'include/euler.h' and 'include/lookup_table.h' have been replaced with a single 'include/pomp.h'.
    	Significant additions have been made to support the new structure of the pomp class.
	Specifically, new prototypes have been defined for native routines to implement the measurement model, the process model, and the deterministic skeleton.
