 Version 2.0-10 13 October 2021

 * Got rid of a large pdf file in inst/Lit, namely kieferWolfowitz1956.pdf,
   which weighed in at 1070617 bytes (over 1 Mb !!!).  Nothing to do
   with mixtures, and I have no idea how it got there, but it was tipping
   the total package size to above 5 Mb, which is the upper limit.

 * Added reference to Turner (2000) and the doi in the DESCRIPTION file,
   at the behest of Uwe Ligges.

 Version 2.0-9 13 October 2021

 * Added error traps in respect of argument processing in mixreg().
   If y is missing, an error is thrown if x is not a formula.
   If y is present, an error is thrown if x *is* a formula.

 * Fixed a bug in plot.mixresid(); the ... argument had been
   omitted from the initial 'type = "n"' call to plot() (used
   when there *are* predictors).

 Version 2.0-8 21 September 2021

 * Added functions cint() and plot.cint() to produce and plot
   confidence intervals in the setting in which the fitted
   model involves no predictors.

 * Adjusted cband() to call cint() in such a setting.

 * 23 September 2021; corrected a bunch of typos in the help
   files (did not increment the version number).

 * 02 October 2021; added an item to the bibliography in the
   vignette (did not increment the version number).

 Version 2.0-7 20 September 2021

 * Adjusted rmixreg.default() by removing the "intercept" argument.
   Whether or not there is an intercept is now determined by
   the relative values of the number of columns of "x" and the
   number of linear coefficients in the model.

 * Replaced the vignette by an updated version.

 * Made tweaks to residuals.mixreg() and plot.mixresid() to 
   handle the setting in which there are no predictors.

 * Made tweaks to plot.mixreg() to handle the setting in which
   there are no predictors.

 * Added the argument "polycol" to plot.mixreg(); sets both
   the "border" and "col" arguments of polygon (to the same value).
   Exception --- the null case, in which the border is black and
   the polygon is unfilled.

 * Added a "warn" argument to mixreg() (to be passed on to
   mixregEngine()).  Specifies whether to issue a warning if the
   EM algorithm has not converged in itmax iterations.  Gets set
   to FALSE in ncMcTest().

 * Tweaked the residuals.mixreg() function to return an "fvals"
   (fitted values) component for use by plot.mixresid().  Also
   now returns a "noPred" component, used by plot.mixresid()

 Version 2.0-6 13 September 2021

 * Changed the way that the method of specifying the model ("form"
   or "vars") is determined.  Now using an idea suggested by
   Duncan Murdoch.

 * Got rid of the "forceFormula" argument which is no longer needed.

 * Adjusted the way that residuals.mixreg() determines the names
   of the predictors (basically for the benefit of plot.mixresid()).
   It was previously messing this up.

 * Corrected the description of the value returned by
   residuals.mixreg() to include "vnms".  This had previously
   been omitted.

 * Fixed a few typos in the help files and in the code comments.

 * Fixed a glitch w.r.t. passing the colour argument ("col") to
   legend(), in plot.mixreg().

 * Changed the shape name "diamond" in plot.mixresid() to "lozenge"
   (so that all shape names can be abbreviated to a single letter).
   Also changed the shape configuration so that a "lozenge" is
   taller than it is wide (so that it is not a rhombus).

 * Revised the vignette on the basis of comments from Duncan
   Murdoch.

 Version 2.0-5 12 September 2021

 * Adjusted visualFit() so that the groups factor is returned as
   a column of the "data" component of the returned value.  (Rather
   than as an attribute of the returned value.)

 * Adjusted plot.mixreg() so that if cMeth is not equal to "none" then
   this function returns a value.  That value is the "data" component
   of the object being plotted, with groups factor (classifying the
   points according to component) appended as a column.

 * Adjusted/cleaned up the way colours are handled by plot.mixreg().

 Version 2.0-4 11 September 2021

 * Added the vignette "mystMix".

 Version 2.0-3 10 September 2021

 * Added the function stepPlot() to fit a mixture of regression
   models, one EM step at a time, plotting the result after each step.

 * Added an argument "warn" to mixregEngine() to turn off the
   warnings about failure to converge when mixregEngine() is called
   by stepPlot().

 Version 2.0-2 07 September 2021

 * Fixed an error w.r.t. the counting of the number of parameters
   (for the calculation of the AIC) in visualFit() and in mixregEngine().

 * In mixregEngine stopped checking on the nature of "data"; since this
   argument is passed on by mixreg() it can be assumed to be OK (and now
   can be assumed to be a data frame).

 * Added an error trap in mixregEngine() to guard against the common
   error setting thetaStart equal to an object when it should be
   set equal to object$theta.

 * Modified rmixreg() to return a data frame with columns of predictors
   as well the column of simulated responses.  Added arguments "xNms"
   and "yNm" to rmixreg.default() to provide variables which won't
   usually be available with the default method.  (The names that
   are automatically generated when "xNms" is not supplied are ugly.)

 * Fixed up the (miss-) handling of variable names in plot.mixreg();
   fixed the handling of "xlab" and "ylab".  The function could get
   the predictor and response variables arse-backwards (depending
   on the order they appeared in fit$data; fixed.

 * Added a `shape = "none"' possibilty to the shape argument of
   plot.mixresid() and qqMix().  If "shape" is set equal to "none"
   then an "ordinary" plot of the residuals is done, with ordinary
   plotting symbols.  This speeds up the plotting symbols considerably,
   but produces plots which can be misleading.  Provides the opportunity
   of comparing a misleading plot with one in which "improbable" residuals
   are downweighted. 

 * Added a "vnms" component to the list returned by residuals.mixreg().
   This is needed by plot.mixresid() in order for it to do its job
   properly.

 * Gave up on trying to guard agains a column of 1's in the "x"
   matrix under the formula syntax.  Now just letting mixreg()
   throw an incomprehensible error in these circumstances if
   there is a column 1s in "x".

 * Tidied up the "preparation" code in mixreg() considerably.

 * Made sure that the data passed on to hmmEngine() is in the form
   of a data frame, and that this data frame is constructed in such
   a way that "fmla" makes sense.

 Version 2.0-1 02 September 2021

 * Added an error trap to guard against users applying the
   "non-formula" syntax and inadvertently using a pre-constructed
   formula that has the same name as the predictor variable in "data"

   Unlikely, but not impossible.

 * Added a forceFormula argument to override the error trap, just
   in case this is what the user *really* wants to do.

 Version 2.0-0 02 September 2021

 * Got rid of the classes and methods procedure, since that caused
   problems with the default method when the "x" variable was not
   present in the global enviroment.

   I now make use of a single mixreg() function (no generic, no
   methods) that discerns whether the "old style" variables syntax
   is to be used, or if the formula syntax is to be used.  The test
   uses a trick, based on try(), due to Duncan Murdoch.

 * The help for mixreg() has been amended accordingly.

 * Corrected a couple of typos "aphRel ~ plntsInf" (should of course
   be "plntsInf ~ aphRrel"!!!) in the help files.

 * Adjusted the message issued by the "First.R" code.

 Version 1.0-7 01 September 2021

 * Added a check for spurious "..." arguments; these ("semiPar",
   "conditional" and "cMseed") are passed to mixregEngine() where
   "cMseed" is converted to "seed" and then used in calls to covMix()
   and/or covMixMC().  The "semiPar" and "conditional" arguments
   are passed on to covMix() and/or covMixMC(), and then passed on
   by the latter to rmixreg.mixreg().  If there are any "..." arguments
   other than the three specified ones, an error is thrown.

   This adjustment was motivated by an instance of using "theta.start"
   rather than "thetaStart", whence "theta.start" was treated as a
   "..." argument and subsequently ignored, and "thetaStart" kept its
   default value of NULL so that *random* starting values were used,
   leading to all sorts of mysteries!!!

 * Adjusted covMixMC() to pass "semiPar" and "conditional" arguments
   to rmixreg.mixreg() (see above).

 * Corrected "max.try" to "maxTry" in mixregEngine.  (In the previous
   state "max.try" was being treated as "missing", since "maxTry"
   was what was actually specified.  This caused errors to be thrown
   in some circumstances.)

 * Added "update" to the functions imported from "stats" in the NAMESPACE
   file, since covMixMC() now uses update().

 Version 1.0-6 28 August 2021

 * Changed the treatment of the "ncomp" argument.  Now, if thetaStart
   is supplied, then ncomp is ignored and the number of components
   is determined from thetaStart.  (Previously, when thetaStart was
   a matrix, an error was thrown if the number of rows differed
   from ncomp.  When thetaStart was a list, the value of ncomp
   overrode the number of components whence there was the potential
   for all hell to break loose.)

 Version 1.0-5 08 August 2021

 * added a "cMeth" argument to plot.mixreg(); points (may) get
   classified to components according either to smallest distance or
   highest probability and are then plotted in colours corresponding
   to the components.

 Version 1.0-4 30 July 2021

 * corrected "Right click" to "Left click" (!!!) in visualFit.R,
   after this error was pointed out by Petr Pikal.  (Psigh! Never
   could tell my left from my right!)

 * amended visualFit() so that the returned value has attributes
   "chsnPts" (the list of points chosen by the user) and "group"
   (a factor specifying the component to which each point has been
    assigned on the basis of distance to the lines determined by
   the visually determined points or by the chsnPts argument

 * added an argument "chsnPts" (see above).  If this argument is
   provided then the user is *not* prompted to click on points but
   instead the points specified in "chsnPts" are used.

 * added an argument "eqVar" to the argument list of visualFit().
   If defaults to FALSE (to keep it parallel with mixreg().  If
   eqVar is TRUE then a single linear model is fitted to the data
   using the factor "group" (see above) as a predicted.  If eqVar
   is FALSE then the data are split according to the group factor
   and a separate linear model is fitted to each of the entries
   in the split.

 Version 1.0-3 27 July 2021

 * adjusted the help file for the kilns data after consultation
   with Petr Pikal

 Version 1.0-2 10 July 2021

 * changed the name of bootcomp() to ncMcTest(); adjusted comments
   and the terminology in the help

 * added an argument MC=FALSE to mixreg() and cband(), to permit the
   user to insist that the covariance matrix of the parameter estimates
   be estimated via a Monte Carlo procedure; useful if the residuals are
   "clearly" not Gaussian (as might be revealed by qqMix)

 * added Examples to covmix() and qqMix()

 * changed names of covmix() and covmixMC() to covMix() and
   covMixMC()

 Version 1.0-1 11 June 2021

 Major revision:

 * the mixreg() function is now generic with "default" (which accommodates
   the "old" syntax) and "formula" methods

 * added a "data" argument to mixreg() structured so that "x"
   (predictors) and "y" (response) may be objects in the search
   path or may be extracted from the "data" argument

 * introduced the auxilliary function mixregEngine() to accommodate
   the use of both the formula based syntax and the "old" syntax

 * added the function visualFit() which provides a visual means of
   determining starting values

 * added a plot() method for the class "mixreg"

 * added a residuals() method (replacing resid.mix()); this function
   returns an object of class "mixresid"

 * added a plot method for the class mixresid.

 * substantially adjusted the code of cband() and plot.cband().

 * added a Monte Carlo based procedure for estimating the covariance
   matrix of the parameter estimates manifested in the function
   covmixMC()

 * added a generic function rmixreg() with "default" and "mixreg" methods
   to simulate data from a mixtures of regressions model.  (Relaces
   bootSam() and simmix().)

 * added new data sets, the "kilns" data, obtained through the generosity
   of Petr Pikal.

 Version 0.0-6 31 March 2018

 Registered plot methods "mresid" and "cband" in the NAMESPACE file.

 Changed names of functions which were *not* S3 methods from
 the "dot" format to "camel back" format:

  par.uin to parUin
  qq.mix to qqMix
  dir.sum to dirSum
  init.rand to initRand
  resid.mix to residMix

 Version 0.0-5 21 February 2014

 	Fixed my web page address in the DESCRIPTION file.

	Removed junk files that were lurking in the "data"
	directory (thanks to a prompt from Kurt Hornik).

	Changed ".onLoad()" to ".onAttach()" in First.R.

	Effected lazy loading of data.

	Tweaked the documentation of the "aphids" data set.

 Version 0.0-4 4 November 2011

	Added a namespace.

	Added a startup message.

	Changed the form of the file in the "data" directory
	from *.R to *.rda.

 Version 0.0-3 4 November 2009:

	Added this ChangeLog.

	Fixed my email address in the DESCRIPTION file.

	Replaced some "T"-s and "F"-s by TRUE-s and FALSE-s.

	Fixed the documentation of a couple of plot methods to refer
	to these functions as methods rather than referring to them
	by their full names.

                       *****************************

 Version 0.0-2 12 September 2006:

 The changes from version 0.0-2 consist in fixing a bug drawn to my
 attention by Bettina Gruen. This bug involved the use of par()$uin, a
 hold-over from the Splus version of the package which does not exist
 in R.  Ms. Gruen provided a fix for the bug --- based on a function
 par.uin() --- which is now incorporated into the package.

                       *****************************

 Version 0.0-1 20 March 2004:

 The changes from the version dated 6 June 2001 consist in mildly
 re-organizing the structure of the package to make it into a package
 for R.  Running R's R CMD check on the package turned up a few
 infelicities which have been corrected.  Mostly this involved
 adjusting the documentation.

=========================================================================================
The following material relates to the old Splus version of
the package
=========================================================================================

 The changes from the version dated 21 July 1999 to the 
 version dated 6 June 2001 were:

	(1) In the help file for mixreg() (i.e. mixreg.d)
	the reference to the Turner paper was changed from
	``to appear'' to the appropriate reference to Applied
	Statistics.

                       *****************************

 The changes from the version dated 31 October 1998 to the 
 version dated 21 July 1999 were:

	(1) The aphids data set was adjusted to make the response
	equal to the raw counts of infected plants, rather than
	the percentage.

	The name of the response was therefore changed from
	``inf.rate'' to ``n.inf''.  This change is also reflected
	in the documentation files.

                       *****************************

 The changes from the version dated 19 October 1998 to the 
 version dated 31 October 1998 were:

	(1) The package has been adjusted slightly so that it
        can easily be installed as a section of a library.

                       *****************************

 The changes from the version dated 1 October 1998 to the 
 version dated 19 October 1998 were:

	(1) The utility function dir.sum() which was missing from
	the package is now included.
 
                       *****************************

 The changes from the version dated 3 September 1998 to the
 version dated 1 October 1998 were:

	(1) Functions resid.mix, plot.mresid and qq.mix are now
	included to calculate and plot appropriately residuals from
	mixtures of regressions.

	(2) The function mixreg now returns the AIC value for
	the fitted model.

	(3) The function bootcomp now takes an argument ncincr
	to enable the testing of H_0: number of components = ncomp
	versus H_1: number of components = ncomp + ncincr.

	(4) The function bootcomp now returns vectors consisting of
	an AIC value for each of the bootstrap fits that it performs.

	(5) Error trapping has been improved in the function
	bootcomp, so that a condition which previously caused it to
	crash no longer does so.
