
Version 0.0-1 --> 0.0-2
=======================

The changes are lost in the mists of time.

Version 0.0-2 --> 0.0-3
=======================

The changes are lost in the mists of time.

Version 0.0-3 --> 0.0-4
=======================

The changes may be recoverable, but haven't yet been recovered.

Version 0.0-4 --> 0.0-5
=======================

The changes may be recoverable, but haven't yet been recovered.

Version 0.0-5 --> 0.0-6
=======================

The changes may be recoverable, but haven't yet been recovered.

Version 0.0-6 --> 0.0-7
=======================

The changes may be recoverable, but haven't yet been recovered.

Version 0.0-7 --> 0.0-8
=======================

The changes may be recoverable, but haven't yet been recovered.

Version 0.0-8 --> 0.0-9
=======================

26 February 2009:

Fixed bug in revise.tpm.R; if "mixture" was set to
TRUE in hmm(), this function returned a one-column (!!!)
matrix, not a square one.

So the package was not (ever?) working with "mixture"
set to be TRUE.

Thanks to Mohammad Amin Jamalzadeh for pointing out
this bug.

Version 0.0-9 --> 0.1-0
========================

23 September 2009:

Changed the input format of the y values.  Now y should be either a
single vector (of observations) or a list of such vectors.  If there
is more than one vector of observations, these should ***not***
be presented as the columns of a matrix.  (This is still allowed,
but is deprecated.  Allowing the presentation of y as a matrix will
be discontinued in some future release of this package.)

Changed all functions that take observation sequences as an
argument to expect multiple observation sequences to be presented
as components of a list rather than as columns of a matrix.
Thus multiple observation sequences are not constrained to be of
the same length.

Revised hmm() so that it does not insist that the underlying Markov
chain be stationary at time 0.  An argument ``stationary'' which
defaults to TRUE (giving the old behaviour) has been introduced.
The value of ``stationary'' is saved in the list returned by hmm().

Revised hmm() so that the observations y are (optionally; default
TRUE) saved in the list returned by hmm().

Revised hmm() so that the set of values of the observations can
be any finite set.

Changed the treatment/usage of the yval argument of hmm() somewhat.
This argument can be any superset of the unique values of the
observations y.  Any values in yval which are not matched by any
actually observed values will correspond to rows of the estimate
Rho all of whose entries are 0.

Gave the object returned by hmm() a class --- hmm.discnp ---
assigned, so that the fitted values may be calculated by a
method for fitted().

Created a method for fitted(), fitted.hmm.discnp.

Changed the treatment of the ``y'' argument of mps(); if
this argument is missing, mps() attempts to extract it
from the ``object'' argument.

Removed ``yval'' from the argument lists of mps() and
viterbi.

Revised sim.hmm() to allow the initial state probability
distribution, ispd, to be specified, rather than forcing it to be
equal to the stationary distribution determined by the transition
probability matrix.

Added a ``yvals'' argument to the argument list of sim.hmm()
so that the simulated observations can be from any specified set
of cardinality nrow(Rho).  I.e. these observations are no longer
restricted to being in the sequence of integers from 1 to nrow(Rho).

Changed the argument nsim to be a *vector*.  Its length specifies
the number of independent sequences generated; its entries specify
the length of each sequence.  Deleted the argument ``nrep''.

Added a function pr() which calculates the probability of a state
sequence s given an observation sequence y.

Added a function sp() which returns the probabilities of each state,
at each time point, given the model parameters and an observation
sequence (or sequences).  (Added at the request of Murat Ahmed.)

Fixed a bug in viterbi() in respect of the way the values of the
observation vector were matched up with the rows of Rho.  Thanks
to Graham Wood for pointing out this bug.

Change tolerance below which probabilities are deemed to be zero from
10*.Machine$double.eps to the more orthodox sqrt(.Machine$double.eps).

Version 0.1-0 --> 0.1-1
=======================

30 November 2009:

Bug fix: The function hmm() threw an error when the observations were
numeric and contained 0 or did not conform to 1:max(observations) (and
argument ``yvals'' was not specified).

Fixed.

(Thanks to Alon Ben Ari for pointing out this bug.)

Bug fix:  In revise.rho(), if there were observations missing from the
sequence 1:max(observations), the estimate of Rho would turn into all
NAs and the algorithm would converge instantly.  (The consequence was
that all of the f(y) values became NA and were consequently turned
into 1 --- which is *supposed* to happen when y is NA, but not
otherwise.  Psigh!)

Fixed.

Changed the .First.lib() function to say ``PLEASE NOTE'' rather
than ``WARNING''.

Version 0.1-1 --> 0.1-2
=======================

21 July 2010:

Thanks to Thomas Lotze for the pointing out the problems requiring
the following fixes:

Bug fix:  The length of the k-th replicate sequence (equal to
lns(k)) was not passed to the afun fortran subroutine.  Fixed.

Bug fix:  If "stationary" was TRUE and then ispd remained NULL,
causing a fortran error.  Now ispd is initially set to revise.ispd(tpm)
irrespective of the value of "stationary".

The help page for hmm() was not revised in respect of the way that
the argument "y" should be supplied.  It retained the old specification
requiring y to be a matrix, with unequal length replicates adjusted
for by padding with NAs.  This has now been remedied.

Version 0.1-2 --> 0.1-3
=======================

23 July 2010

Fixed a glitch in the help page for hmm() in respect of the
description of the ispd component of the returned value.

Fixed another glitch --- multiple ``Warning'' sections.

Fixed a glitch in the documentation of ``mps'' (relating to
the matrix/list dichotomy).

Made a change to pr() allowing "y" to be single observation
sequence when "s" is a list of several state sequences; otherwise
the length of the list "y" must (still) match that of the list "s".

Changed the help file accordingly.

Version 0.1-3 --> 0.1-4
=======================

4 September 2011

Added a function logLikHmm() to calculate the log likelihood
of a set of observations given a fixed set of parameters for
the hidden Markov model.  Thanks to Subhajit Dutta for the
suggestion.

Fixed a few minor typos in the documentation.

Version 0.1-4 --> 0.1-5
=======================

4 November 2011

Added a namespace.

Version 0.1-5 --> 0.1-6
=======================

9 February 2012

Fixed a bug which was drawn to my attention by Martin Ellis.
I had omitted coercing "y" to character in ffun().  This coersion
was there in version 0.1-3 but disappeared in version 0.1-4.
This was effected to accommodate the use of the function
logLikHmm() --- but it had repercussions that I didn't twig
to.  Have made adjustments so that now "everything" works.

Also made an adjustment to check.yval() to allow for a mismatch in
mode between the y-values and the row names of Rho.

Version 0.1-6 --> 0.1-7
=======================

9 February 2012

Fixed up some infelicities in this ChangeLog.
(Note that version 0.1-6 was never installed on CRAN.)
