1.3-8

* get.var() now checks that result is numeric or factor (avoids 
  occasional problems with variable names that are functions - e.g `t')

* fix.family.var and fix.family.link now pass through unaltered any family 
  already containing the extra derivative functions. Usually, to make a 
  family work with gam.fit2 it is only necessary to add a dvar function.

* defaults modified so that when using outer iteration, several performance
  iteration steps are now used for initialization of smoothing parameters 
  etc. The number is controlled by gam.control(outerPIsteps). This tends
  to lead to better starting values, especially with binary data. gam, 
  gam.fit and gam.control are modified.

* initial.sp modified to allow a more expensive intialization method, but
  this is not currently used by gam.

* minor documentation changes (e.g. removal of full stops from titles)

1.3-7

* change to `pcls' example to account for model matrix rescaling changing 
smoothing parameter sizes.

* `gamm' `control' argument set to use "L-BFGS-B" method if `lme' is using 
`optim' (only does this if `nlminb' not present). Consequently `mgcv' now 
depends on nlme_3.1-64 or above.

* improvement of the algorithm in `initial.sp'. Previously it was possible 
for very low rank smoothers (e.g. k=3) to cause the initialization to 
fail, because of poor handling of unpenalized parameters. 

1.3-6

* pdIdnot class changed so that parameters are variances not standard 
deviations - this makes for greater consistency with pdTens class, and 
means that limits on notLog2 parameterization should mean the same thing 
for both classes. 

* niterEM set to 0 in lme calls. This is because EM steps in lme are not
 set up to deal properly with user defined pdMat classes (latter 
 confirmed by DB).

1.3-5

* Improvements to anova and summary functions by Henric Nilsson 
  incorporated. Functions are now closer to glm equivalents, and 
  printing is more informative. See ?anova.gam and ?summary.gam.

* nlme 3.1-62 changed the optimizer underlying lme, so that indefintie 
  likelihoods cause problems. See ?logExp2 for the workaround.
  - niterEM now reset to 25, since parameterization prevents parameters 
  wandering to +/- infinity (this is important as starting values for 
  Newton steps are now more critical, since reparameterization 
  introduces new local minima).

* smoothCon modified to rescale penalty coefficient matrices to have 
  similar `size' to X'X for each term. This is to try and ensure that 
  gamm is reasonably scale invariant in its behaviour, given the 
  logExp2 re-parameterization.

* magic dropped dimensions of an array inapproporiately - fixed.

* gam now checks that model does not have more coefficients than data.

1.3-4

* inst/CITATION file added. Some .Rd fixes

30/6/2005 1.3-3

* te() smooths were not always estimated correctly by gamm(): invariance 
  lost and different results to equivalent s() smooths. The problem seems
  to lie in a sensitivity of lme() estimation to the absolute size of the 
  `S' attribute matrices of a pdTens class pdMat object: the problem did 
  not occur at the last revision of the pdTens class, and there are no 
  changes logged for nlme that could have caused it, so I guess it's down
  to a change in something that lme calls in the base distribution. 
  To avoid the problem, smooth.construct.tensor.smooth.spec has been 
  modified to scale all marginal penalty matrices so that they have 
  largest singular value 1.

* Changes to GLMs in R 2.1.1 mean that if the response is an array, gam 
  could fail, due to failure of terms like w * X when w is and array 
  rather than a vector. Code modified accordingly.

* Outer iteration now suppresses some warnings, until the final fitted
  model is obtained, in order to avoid printing warnings that actually
  don't apply to the final fit.

* Version number reporting made (hopefully) more robust.

* pdconstruct.pdTens removed absolute lower limit on coef - replaced with
  relative lower limit.

* moved tensor product constraint construction to BEFORE by variable
  stuff in smooth.construct.tensor.smooth.spec.


