VEGAN DEVEL VERSIONS 

Versin 1.7-2
============

* prestondistr: The truncation level was badly chosen. Now default
  level is set to -1, or log2(-1) = 0.5 which might be the left limit
  of the first octave. This is now a parameter, leaving the choice as
  the responsibility of the user.

* renyi: should work again (I don't known when I scrambled this).

Version 1.7-1
=============

* ordisegments: corrected a bug that caused a warning in R-devel
  snapshot: now display = "sites" instead of display = display.

* print.coefmat was changed to printCoemfat in R-1.8.0, and I had a
  trick to handle this in old and new versions, but this failed after
  major reorganization in R-devel, and vegan now fails in R-devel
  checks. Now printCoefmat should work again in all versions of R
  (even before printCoefmat was invented). Concerns print.cca,
  print.factorfit, print.radfit.frame, print.radfit,
  print.summary.decorana, print.vectorfit and zzz.R (where the
  replacement is done).

Version 1.7-0
=============

* Pre-release clean-up and the birth of a new devel series (this will
  be identical to the first release candidate). Mainly concerns
  documentation. 

* rankindex: Uses now no.shared to set dissimilarities to NA with
  option stepacross = TRUE. In this way indices with no upper limit
  can be analysed with stepacross as well.

* specnumber: apply(x > 0, MARGIN, sum). An unnecessary utility
  function. 

Version 1.5-58
==============

* prestondistr: a new alternative to function to fit Preston's
  lognormal model. The old alternative `prestonfit' pooled the data
  into octaves and fitted a 2nd degree log-polynomial, but
  `prestondistr' maximizes directly log-likelihood of log2 transformed
  frequencies to truncated normal distribution. Functions
  `plot.prestonfit' and  `veiledspec' were ready to this new function,
  but `print.prestonfit' was modified to display the alternative used,
  and function `lines.prestonfit' was added so that both fits can be
  overlaid. 

Version 1.5-57
==============

* capscale: a typo in a variable name made capscale to crash when
  trying to find centroids of class constraints.

* plot.cca, scores.cca: default is now "cn" for centroids and biplot
  arrows instead of "bp" for arrows only.

* rankindex: user can give the compared indices instead of automatic
  selection. 

* no.shared: a new utility function. Returns a logical dissimilarity
  matrix where TRUE means that two sites have nothing in common, and
  FALSE that at least one species is shared (disregarding abundance). 

Version 1.5-56
==============

* anosim: saves and prints the name of the dissimilarity index.

* capscale: undoes now averaging with threshold 4 for max
  dissimilarity (used to be 2).

* decostand: returns now a data frame instead of a matrix.

* A cleaner and safer way of handling both printCoefmat (in R-1.8.0)
  and print.coefmat (in older R).

* print.radfit.frame: prints deviances instead of AIC.

* Edited and corrected help files (cleanup for the release).

Version 1.5-55
==============

* Checked with R-1.8.0: print.coefmat replaced with printCoefmat, but
  only if R version >= 1.8.0, so that works in all versions of R.  One
  unused argument removed from cca documentation.

* radfit: printing of coefficients uses more digits now. Occasionally
  uglier, but often more informative.

Version 1.5-54
==============

* stepacross: NAs in the input dissimilarities should be handled
  similarly as toolongs, and the trace should be accurate for them.
  Traces now path = "shortest", too.

* radfit family: Many fitting functions fail (and they should fail)
  when there is only one species in a community, but now this happens
  more gracefully.

Version 1.5-53
==============

* stepacross: Implemeneted Dijsktra's flexible shortest path as the
  default algorithm following Williamson's (1978) original
  suggestion. De'ath's extended dissimilarities are now an
  alternative. Issues a warning instead of error if data are
  disconnected and NAs will be left in the result. If toolong <= 0,
  no threshold will be used. 

* distconnected: A new name for `stepabyss' and documented
  independently with `spantree'. Input data can now contain NAs and
  they will be handled similarly as `toolong' dissimilarities.

* spantree: A new function for finding a minimum spanning tree. Uses
  `toolong' threshold for considered edges or input dissimilarities
  can contain NAs. Function `ordispantree' can be used to overlay the
  result onto an ordination (documented in the `ordihull' family). I
  didn't plan to have this, because I don't think that minimum
  spanning tree is too useful, but this just happened as a collateral
  damage when implementing Dijkstra's flexible shortest path for
  `stepacross'.

* vegdist: If a dissimilarity (dist) was computed from a similarity
  (sim) as dist = 1 - sim, the result could be a tiny negative number
  (e.g., -1e-19) due to numerical accuracy in digital computers. Now it
  is guaranteed that such cases are never negative. Concerns
  Kulczynski, Morisita and Horn-Morisita indices. 

Version 1.5-52
==============

* stepabyss: a new utility function to identify the disconnected
  groups that caused `stepacross' to stop with error. Implemented as
  depth-first search in C following algorithm in Sedgwick (1990)
  "Algorithms in C", chapter 29, pages 423-427.

* vegdist: relaxed convergence criteria in Mountford index from TOL =
  1e-7 to 1e-5. This is more similar to the default limit used in R
  base function `uniroot', where it is .Machine$double.eps^0.25 =
  0.0001220703 in my PC. C code now #includes Rmath.h, so that should
  compile in Windows where the constant M_LN2 is not #defined
  otherwise. 

* rankindex: added option stepacross (defaults FALSE). Now really use
  Horn-Morista instead of Morisita (like I claimed in docs).

* stepacross: obeys now option trace = FALSE.

Version 1.5-51
==============

* vegdist: New indices for Jaccard, Morisita, Horn-Morisita and
  Mountford dissimilarities. Mountford is the real one, defined as a
  root of an exponential equation instead of the miserable
  approximation frequenting in the literature.

* rankindex: Adapted for changes in vegdist. Does not compare Morisita
  (only for count data) and Jaccard (rank-order similar to
  Bray-Curtis). 

Version 1.5-50
==============

* stepacross: a new function implementing De'Ath's "extended
  dissimilarities" (Plant Ecol. 144, 191-199; 1999).

* spider.cca: deprecated since 1.5-27 & 1.4-4, and now stops with
  error. 

* capscale: inertia called now "[mean] squared XXXX distance".

Version 1.5-49
==============

* capscale: A new method to perform Constrained Analysis of Principal
  Coordinates (or Constrained Analysis of Proximities) of Anderson &
  Willis (Ecology 85, 511-525; 2003). 

* decostand: Added Chi-square standardization suggested by Legendre &
  Gallagher (Oecologia 129, 271-280; 2001). Documentation explains
  how to get their Hellinger standardization.

Version 1.5-48
==============

* ordicluster: a new function in the ordihull family. Overlays cluster
  dendrograms onto ordination graphs. Methods that accept weights
  should now really work in all cases (ordiellipse, ordispider).

* make.cepnames: A funny little function to make CEP names or 4+4
  names. Implementation is rigid and simpleminded, though.

* cca/rda prepared for the possible implementation of Marti Anderson's
  "Constrained Analysis of Proximities" (the function is almost
  finished, but I am not sure if it makes to vegan): cca.default,
  rda.default have now entries "method" and "inertia" and display
  functions use these (summary, print, anova.cca, permutest.cca).

Version 1.5-47
==============

* radfit: beginning of the great cleanup. Now has so many similar
  objects to `glm' that the following work for `radline' objects:
  `AIC', `extractAIC' (both with parameter `k'), `deviance', `logLik',
  `coef', `fitted', `residuals' (alternatives "deviance", "pearson",
  "response"), `df.residual'.  The first real use was to add BIC as an
  alternative to AIC in model selection in plots.  `rad.preempt' is
  now only-`nlm', but `rad.veil' and `rad.zipfbrot' were still left as
  mixed `glm-nlm': they are much too slow, and making them `nlm'-only
  could speed up calculations, but seems to be too prone to
  error. Here are timings for 50 species rich sites in `BCI' with my
  2GHz Celeron: `rad.preempt' 2.8 sec, `rad.lognormal' 1.4 sec,
  `rad.veil' 19.5 sec, rad.zipf 2.6 sec, `rad.zipfbrot' 40.1 sec!

Version 1.5-46
==============

* radfit: vegan_1.5-45 was soon removed from distribution and all
  known copies were destroyed: the "canonical" preemption model was
  very wrong. Indeed, there is only canonical preemption, or a
  one-parameter model, which should be correctly implemented now as
  non-linear regression. This conflicts with Bastow Wilson, who has a
  two parameter model, but sum(r=1..Inf) p1*(1-k)^(r-1) = p1/k, so p1
  must equal k to make the proportions sum up to unity. Would we fix
  the number of species, the first parameter would still be fixed by
  k: p1 = k/(1 - (1-k)^S). Errors are caught now in all methods, and
  `rad.veil' was made to avoid erros (but slower to converge and
  giving meaningless results in bad cases).

* fisherfit: A new function to fit Fisher's logseries. Function
  `fisher.alpha' rewritten to use `fisherfit', but still documented
  with `diversity'.

* prestonfit: A new function to fit Preston's logseries in the
  traditional way (almost). Function `veiledspec' estimates the
  extrapolated species richness from `prestonfit'. Documented with
  `fisherfit'. 

Version 1.5-45
==============

* radfit: Added function rad.pecanon for "canonical" preemption model
  where `k' is the only parameter: most abundant species has
  proportion `k' of all individuals. Functions radfit.default and
  plot.radfit.frame changed accordingly and print functions upgraded.

Version 1.5-44
==============

* radfit family: new function coef.radfit and upgraded
  plot.radfit.frame, print.radfit, print.radfit.frame and
  radfit.default functions.  Cleaned up documentation.

Version 1.5-43
==============

* radfit: A new family (of 20 functions) to fit Rank -- Abundance
  Dominance (RAD) models. Now cases for niche preemption, log-normal,
  veiled log-normal, Zipf and Zipf--Mandelbort models. Works both with
  site vectors and community data frames. Based on `glm' and `nlm' and
  can use any `family' which accept `link="log"', although not all
  make sense.

* B.D. Ripley sent a note about the usage of .Random.seed, and I
  corrected envfit to obey the future tightened treatment (I hope I
  got this correct...).  

Version 1.5-42
==============

* rda/cca bugfix: Failed if rank(constraints) > rank(community data),
  e.g., there were more constraints than species.  The last
  eigenvalues may still be ~ 0, but there won't be a failure.

* cca & decorana: check now that all row and column sums are above
  zero and stop with an error message. `cca' used to fail with a
  cryptic message, and `decorana' either with a cryptic message or
  even fail to fail with empty species (that was bad).

* renyi: returns now a vector if only one site or one scale was used.
  Corrected typos and typography in docs.

* scores.ordiplot feature fix: Checks now the `display' argument only
  if there are more than one set of scores to extract.  The default
  usage `scores(x, display="sites")' used to fail with rda/cca if only
  site scores were plotted, because these were called `default'
  instead of `sites'.  Now the only set of scores is always returned,
  whether this was the intention or not (but this is a feature, not a
  bug). 

Version 1.5-41
==============

* renyi: A new function for Renyi diversities or Hill numbers.  Code
  provided by Roeland Kindt. 

Version 1.5-40
==============

* specaccum: A new function for species accumulation curves with plot,
  boxplot and summary.  The basic code was provided by Roeland Kindt
  <r.kindt@cgiar.org>, with a new method for getting the exact
  expected SAC. Stylistic editing and Standard Error functions were
  made by me (including a new method for SD of  Kindt's exact SAC). 

Version 1.5-39
==============

* rarefy: Added estimation of standard deviation of rarefied richness
  (option `se').  Works now for all sample sizes: assumes that if
  there is no subsample where species could be missing, species is
  always present instead of being NaN.  NB. Standard deviations are
  misleading, because they assume that the original observations are
  error-free and all variance comes from the rarefaction sampling.

* Documentation cleanup (specpool, vegan-internal). 

Version 1.5-38
==============

* Added Barro Colorado Island tree count data (BCI).  Thanks to
  Roeland Kindt <r.kindt@cgiar.org> for supplying the data set, and
  Richard S. Condit <conditr@ucsc.edu> for permission to use the
  data. Changed the examples in `diversity' to use the BCI data.

* specpool: A new function to estimate the extrapolated species
  richness or the number of unseen species.

Version 1.5-37
==============

* fisher.alpha: Failed with large collections (thanks to Ariel
  Bergamini <ariel.bergamini@wsl.ch> for reporting this problem).
  Finds now the nuisance parameter `x' as N/(alpha + N) where N is the
  size of the collection.  Not so many superfluous warnings any
  longer, but issues warnings on genuine fitting problems with `nlm'. 

Version 1.5-36
==============

* Check with R-1.7.1 (passed). Corrected an error in docs of
  `diversity' (example used colSums, should be rowSums).

Version 1.5-35
==============

* Minor cleanup in documentation for release as 1.4-4.

Version 1.5-34
==============

* decorana: Finds now eigenvalues from the final solution as ratio of
  biased weighted variances of site and species scores. The values
  returned by the legacy Fortran function are called ``decorana
  values''.

* downweight: passes the downweighting fraction as an attribute, and
  decorana catches and prints the fraction.

Version 1.5-33
==============

* wascores: Uses now biased variances for expading WAs and returns the
  shrinkage factors as an attribute "shrinkage".  Shrinkage factors
  are equal to eigenvalues in CCA when only this one variable is used
  as constraint. Function `eigengrad' returns only these eigenvalues. 

* Adjusted Sweave documenation for deprecated spider.cca.

* Added a warning about wrong eigenvalues in `decorana'. This is a bug
  in the original code.  `decorana' estimates the eigenvalues during
  iterations, and this seems to be wrong when detrending is used.  In
  general, the real eigenvalues are clearly higher.  This influences
  increasingly axes 2, 3 and 4.  A smaller and well known effect
  (which is not a bug but a feature) is that eigenvalues are assessed
  before rescaling.  For first axis the real eigenvalue is lower
  because it was maximized before rescaling and any non-linear scaling
  will decrease the maximized value.  For later axes the situation is
  more complicated and rescaling may indeed increase the eigenvalue.
  I don't know why this happens, but possibly detrending is partly
  undone by rescaling.

Version 1.5-32
==============

* rda summary/plot bugfix: Failed with non-default scaling (1 or 3)
  when there were no factor constraints. Corrected a statement giving
  a harmless warning in plot.cca.

* ordiplot knows now option type = "text".  New simpleminded functions
  points.ordiplot and text.ordiplot for adding items in an ordiplot
  graph. 

Version 1.5-31
==============

* ordiarrows, ordisegments could drop dimensions (when will I learn!)
  and fail if only one arrow or one segment should be drawn.  One
  argument was missing in a `gl' command in `ordigrid'.

Version 1.5-30
==============

* Checked with R-1.7.0: Corrected bugs in documentations (ordihull,
  cca), and explicitly took only the first element when checking
  whether centroids are NA in summary.cca & summary.rda.. 

Version 1.5-29
==============

* Preparations for a release after ``imminent'' release of R-1.7.0
  (promised for today): Checked documentation; changed
  `is.null(class(x))' into `is.null(attr(x, "class"))'. The latter was
  done because in R-1.7.0 all objects have a class, but actually I
  think I could remove checking non-nullness, because this was done
  just to see whether class is available (vegemite, ordiplot).

Version 1.5-28
==============

* A new diversity function `fisher.alpha' that estimates the diversity
  as the alpha parameter of Fisher's log-series. Thanks to Bob O'Hara
  <bob.ohara@helsinki.fi> for the main code.

* scores.ordiplot (and hence identify.ordiplot)  removes now NA items:
  works with plot.cca on unconstrained analysis where biplot=NA.

* ordihull and ordiellipse draw now polygons as an alternative to
  lines. 

Version 1.5-27
==============

* New functions in the `ordihull' family: `ordispider' to combine
  points to their (weighted) centroid with a line segment, or WA
  scores to LC scores in cca/rda, `ordiellipse' to draw `sd' or `se'
  or CI ellipses for groups. Upgraded `ordihull', `ordiarrows',
  `ordisegments' and `ordigrid' so that they take now `display'
  argument. Function `ordispider' obsoletes `spider.cca'.

* Implemented `weights' functions for `cca', `rda' and `decorana'
  objects for use with `ordispider' and `ordiellipse'.

* wascores(..., expanded=TRUE) implemented: expands WA scores so that
  they have the same weighted variance as the gradients.

* summary.decorana now in canonical form so that printing done by
  `print.summary.decorana' and user can intercept and catch the
  result. Several users had been surprised of the earlier
  non-canonical behaviour.

* downweight fix: returns the used weights as an attribute `v', and
  `decorana' saves and reports these weights.

Version 1.5-26
==============

* identify.ordiplot is more general now: a new internal function
  scores.ordiplot extracts any known labels.

* plot.procrustes returns now an `ordiplot' object (invisibly) so that
  `identify.ordiplot' can be used to identify its points. The items
  are called "heads" and "points" with `kind=1' (ordination diagram),
  and "sites" with `kind=2' (residuals plot). 

* arrows function amended internally so that it ignores silently
  parameters it does not know instead of stopping with error. Now
  plot.enfvit, points.cca, text.cca have this magic: `formals(arrows)
  <- c(formals(arrows), alist(... = ))'.

Version 1.5-25
==============

* cca/rda plotting fixes: `plot(..., display="cn")' plots now arrows
  for continuous variables even when there are no factors (like
  intended). Added utility functions `text.cca' and `points.cca' for
  improved user control of plots. Documentation adjusted for changes.

Version 1.5-24
==============

* cca/rda bug bashing: Tried to make `summary', `scores' and `plot' to
  work with `display=c("cn", ...)'.  Not all cases tested yet, and some
  caution needed before prime time release.

Version 1.5-23
==============

* cca/rda bugfix (ordiParseFormula): cca(X ~ 1) works again.

Version 1.5-22
==============

* cca and rda find now centroids of factor levels with factor
  constraints (only with formula interface). These can be accessed
  with display="cn" in scores, summary and plot. If display="cn" is
  requested in plot(), biplot arrows are still printed unless there is
  a class centroid with the same name: continuous variables, ordered
  factors and interaction terms are still shown with arrows even when
  centroids are requested.

* ordiParseFormula uses now canonical expansion of the formula and
  returns the `terms' component to the caller.  Functions like
  `terms', `formula' and `update' magically started to work with cca
  and rda (and eight lines of code would allow `step' and `stepAIC' to
  work magically in model building... but it's so much magic that I
  don't trust it).

* rda summary/scores/plot bugfix: Scaling of site scores was wrong
  with scaling alternatives 1 and 3.

* Function call stored in the canonical name `call' instead of the
  previously used `Call': Concerns several functions.

Version 1.5-21
==============

* ordiplot: Increased user control.

* ordihull, ordiarrows, ordisegments, ordigrid: new functions to be
  used with ordiplot to add convex hulls, arrows, line segments or a
  regular grid to an ordination.

Version 1.5-20
==============

* envfit (vectorfit, factorfit) bug fixes: Can now handle single
  vectors (labelling, permutation). Recognize now `choices' so that
  the user can select ordination axes.

Version 1.5-19
==============

* A new CRAN version 1.4-2 was submitted to CRAN on Feb 6, 2003. This
  was based on 1.5-18 (without inst/doc files). The release version
  was checked with R-1.7.0 (unstable snapshot of 05-02-2003), and
  rda.default and cca.default were corrected to satisfy those checks. 

Version 1.5-18 (rc2)
====================

* rda: A new scaling, where species and site scores have a similar
  relation to each other as in Canoco, but the scores are still a real
  biplot (unlike in Canoco, where you need a constant multplier for a
  real biplot). This was made by removing specific scores.rda and
  making instead a specific summary.rda. 

* spider.cca: A tiny utility function that plots both the LC and WA
  scores, and combines them with lines. If there is only one class
  constraint, this gives a spider plot where each WA score is
  connected to its centroid (expected score).

* plot.cca: Uses now blue axis for blue biplot arrows.

* Documentation: Combined rda to cca in help files. Added discussion
  on rda scalint in Sweave documentation. Updated Sweave documentation
  for spider.cca.

Version 1.5-17 (rc)
===================

* rda cleanup: checked documentation, removed warning of untested
  partial RDA (tested now), made print.permutest.cca neutral to
  cca/rda and anova.cca aware of rda.

Version 1.5-16
==============

* scores.rda(): will return (covariance) biplot scores similar to the
  ones used in Canoco with scalings -1, -2 or -3. These scores will be
  used by plot.cca as well. However, with scaling 1, 2 or 3, Canoco in
  addition divides the species scores by species sd, which I don't
  follow. summary.cca still uses raw scores for rda.

Version 1.5-15
==============

* procrustes (protest): Rectified an unjustified claim in man.

* plot.procrustes: Suppress warning of zero-length arrows.

* vegan-FAQ: Added a FAQ (Sweave file). At this stage, discusses the
  relation between WA and LC scores in cca.

* vegemite: Prints now one column tables, too. Will now use original
  sample and species names instead of filtering them through
  make.mames().

* rda: Added a warning of untested code in partial rda.

Version 1.5-14
==============

* ordiplot() and identify.ordiplot(): New functions to plot "any"
  ordination result and identify plotted points. Intended to provide
  similar functionality as `plot', `plotid' and `specid' functions in
  `labdsv' without name clashes.

* summary.cca() and hence plot.cca(), scores.cca(): work again for
  unconstrained analyses (cca: ca, rda: pca). 

Version 1.5-13
==============

* summary/scores/plot in cca/rda: corrected a bug where species scores
  were given as "lc" scores with scaling=3 (symmetric).

* plot.cca: Doesn't take biplot scores into account in scaling the axis.

* Now single constraints should be really labeled (wrong version of
  ordiParseFormula was used).

Version 1.5-12
==============

* rda(): A new function for redundancy analysis. So far documented
  independently. 

* dune: A new dataset on Dutch Dune meadows (this is a classic).

* cca: Several functions made aware of rda() which uses them in its
  output (summary.cca, print.summary.cca, scores.cca). So much
  pervasive that breakage is possible.

* Improved handling of dropping dimensions in cca: Now even single
  constraint plots should have labels.

* Added symmetric scaling (=3) to alternatives in cca and rda:
  summary.cca, scores.cca, plot.cca. Paremeter `scaling' will be
  changed to text values in the future ("species", "sites",
  "symmetric"). Now scalings use only the basic results (u, v, wa.eig)
  and the rest (u.eig, v.eig, wa) are marked for removal in the future
  versions of cca and rda.

Version 1.5-11
==============

* cca: Internal changes (ordiParseFormula.R) and new print.cca, plus
  some update in help pages. All preparations for the upcoming `rda'
  function.


Version 1.5-10 (rc2)
=====================

* Checked with R-1.6.0 (passed) and submitted to CRAN on Oct-3, 2002
  as vegan 1.4-1.

* cca.formula(): cca(X ~ 1) works again.

* plot.envfit(): Scaling of arrows by r works again (was broken in 1.5-5).

* Updated and corrected help pages.


Version 1.5-9 (release candidate for 1.4-1)
=============================================

* rarefy(): A new function for rarefaction.

Version 1.5-8
=============

* Corrected the Procrustes correlation statistic to be sqrt(1-ss). 

Version 1.5-7
=============

* protest():  A new function for permutation test in Procrustes
  analysis. 

* procrustes(): Added symmetric goodness of fit statistic.

* ordisurf(), postMDS(): Fail now if a required package was not
  found. 

* Updated and aspell'ed help pages.

Version 1.5-6
=============

* anosim(): Fails now if library `mva' not found.

* cca.formula(): `model.matrix' uses now `model.frame' instead of
  `data' (may be a change invisible to users...).

* cca.formula(): na.action set to na.fail: crashes more informatively
  now (and more graceful na.action is planned for the future). 

* envfit(): functions factorfit(), vectorfit() and their methods now
  use r-squared instead of r in goodness of fit and plot functions.
  Both specify now `display="sites"' in scores().

* mantel(): Fails now if library `mva' not found.

* plot.procrustes(): Keyword `axes' changed to `choices' to be
  consistent with other methods in the vegan package.

* procrustes(): Specifies now `display="sites"' in `scores'.

* Renamed surf() to ordisurf() to avoid name clash with the labdsv
  package. 

* vegemite(): A new name for function vegetab() (that's a rip snorter
  for a name!). Now checks that all plotting symbols have one
  character width and refuses tocontinue with longer symbols. Now
  slices the output to fit the current page width.

Version 1.5-5
=============

* factorfit(), vectorfit(): Use `scores' now.

* plot.envfit(): `choices' work now like documented.

* decostand(): MARGIN may now be `missing' instead of being `NULL'.

* print.vectorfit(), print.factorfit(): assignment `=' _corrected_ to
  the true blue `<-'. 

* fitted.procrustes(): A new function.

* cca.default(): Handles now NULL matrices X and Z: skips them.

* cca.formula(): Formula handles now cases `cca(X ~ . , data)' (all
  variables of `data') and `cca(X ~ 1, data)' (no constraints but
  ordinary CA). I am not sure if these have any use, but they may have
  in the future.

Version 1.5-4
=============

* factorfit(): Marginal speed-up (30%) in goodness-of-fit statistic,
  but still 7x slower than vectorfit.

* vectorfit bugfix: Can do permutations with only one fitted vector
  now. 

Version 1.5-3
=============

* Added a helper function `permuted.index' which is able to permute
  within strata: stratified permutation added to all current
  permutation methods (anova.cca, permutest.cca, anosim, mantel,
  vectorfit, factorfit, envfit).

Version 1.5-2
=============

* Michael Scroggie <Michael.Scroggie@nre.vic.gov.au> suggested adding
  significance test in vectorfit() and sent his code for the purpose.
  Implemented for factorfit() as well.  Functions vectorfit() and
  factorfit() were made to return a list of items instead of the old
  simple array of results.  This necessitated introduction of print
  functions as well.  Function factorfit() uses now `r' as a goodness
  of fit statistic -- this is non-standard and may change.  Profiling
  shows that goodness-of-fit estimation for factors is 10x slower than
  for vectors -- needs speed-up.  Everything should be checked for bugs.

Version 1.5-1
=============

* envfit bugfixes: Can now handle data matrix with only factors, and
  plot.envfit can plot only one vector.

Version 1.5-0
=============

New series of devel versions.  Similar as release version 1.4-0, but
includes read.cep (or similar to devel version 1.3-19).

Version 1.3-19
==============

* print.anova.cca: Uses new R-1.5.0 argument eps.Pvalue in
  print.coefmat so that smallest P value with 100 permutations will be
  "< 0.01" instead of "< 2.2e-16".

* Edited help files.

Version 1.3-18
==============

* surf: added `duplicate="mean"' in `interp' to handle ties. Added
  option for selecting thinplate or ordinary spline smoothers, because
  previous may fail catastrophically.  Keyword `df' corrected to
  `knots'.  
 
* Corrected and updated help files.

Version 1.3-17
==============

* cca.formula: Accepts now longer expressions within Condition
  (changed width.cutoff in deparse).

* coverscale: Now cut with "right=TRUE" or lower limit belongs to the
  class, like I think most users would assume.  New scale "fix".

* vegetab: Should work more efficiently with scores now, and use
  original values for species WA instead of ranks.

* postMDS: Corrected a bug with "plot=TRUE" introduced in 1.3-14.

* summary.cca: Can now handle solutions with fewer axes than
  requested.

* plot.cca: corrected a bug introduced with 1.3-15 changes in
  scores.cca that caused failure if only a single type of scores were
  requested for plotting.

* scores.cca: Can now handle "choices=1" with CCA with only one
  constraint.

* plot.decorana: New keyword `type="none"' which sets the axes as
  given in `display' but plots only frame.

Version 1.3-16
==============

* scores.default made more general, and scores.cca accepts now
  scores.default keywords species and sites.  Now these could be
  easily used in LabDSV compliant ordination plot, specid and plotid
  functions (which I don't intend to implement in vegan).

* plot.decorana: honours now cols parameter in type="points".

Version 1.3-15
==============

* Dave Roberts's surf function implemented here with the help of
  scores.  

* permutest.cca: speedup by replacing sum(svd(x)$d^2) with
  sum(diag(crossprod(x))).

* Cleanup (mainly user invisible): anova.cca, factorfit.

* Changes in scores: scores.default accepts plain matrices as well;
  scores.cca returns a matrix if asked only one item, and
  display="sites" made synonymous to display="wa" (i.e., single
  item "wa").    

Version 1.3-14
==============

* scores made a generic function, with methods scores.cca,
  scores.decorana and scores.default.  The last may work with many
  ordination methods of libraries MASS, mva and multiv.

* downweight(): made directly callable so that in can be used with
  cca, ca, CAIV or with other thresholds than 5.

* envfit returns now an object of class "envfit", and envplot was
  replaced with plot.envfit.

* Pre-release cleanup (mainly user invisible): plot.decorana,
  plot.procrustes, postMDS, print.cca, print.summary.cca,
  print.summary.procrustes, vectorfit, procrustes.

* Removed most \dontruns in examples.

Version 1.3-13
==============

* anova.cca(): A new interface for permutest.cca (with documentation
  entry). 

* factorfit(): A new function for getting factor means in ordination,
  and a envfit() wrapper calling either factorfit() or vectorfit(),
  plus envplot() to add these in ordination.

Version 1.3-12
==============

* Cleanup in plot.cca() and scores.cca(). Interface similar to
  plot.decorana(). 

* vegetab(): New parameter `use' which can be a vector or an object
  from cca, decorana or hclust for ordering sites and species.  New
  parameter scale: if given, calls coverscale() within vegetab.
  Bugfix in coverscale: handles now matrices in addition to
  dataframes.  

Version 1.3-11
==============

* Cleanup in cca support functions (print.cca, plot.cca,
  permutest.cca, print.permutest.cca) and new support function
  scores.cca.  This is a release candidate for whole of cca.
  A bit more complete documentation for cca().

Version 1.3-10
==============

* permutest.cca(): Implements now both "reduced" and "full" models of
  Canoco.  Both give identical results to Canoco 3.12, within
  numerical accuracy of 0.003 in pseudo-F.  However, it seems to me
  that Canoco 3.12 significance tests are wrong: they don't reweight
  the environmental data after permutation.

* anosim(): Replaced "=" assignment with traditional "<-" for
  compliance with older versions of R.   

Version 1.3-9
=============

* permutest.cca(): Permutation test for CCA.  Actually, this was long
  working, but I compared against wrong model in Canoco and got
  inconsistent models -- the correct reference model is "null model"
  in Canoco 3 or "reduced model" in Canoco 4.

Version 1.3-8
=============

* cca(): Now with formula interface.

Version 1.3-7
=============

* cca(): Corrected inconsistencies against CANOCO.  CANOCO finds the
  WA scores in the CCA part of pCCA after removing the effect of
  `covariables' from the data matrix, instead of using WA with
  original data matrix.  Do the same way now. 

Version 1.3-6
=============

* cca(): Partial cca did not work correctly, but now should. Except
  that there still are some inconsistencies in site scores against
  CANOCO.  Can't figure out where's the problem, but I'll work on
  that. 

Version 1.3-5
=============

* cca(): First version of [partial] [constrained] correspondence
  analysis.  Included help functions: print.cca, summary.cca,
  plot.cca. 

Version 1.3-4
=============

* mantel(): New function for Mantel test on dissimilarities.

Version 1.3-3
=============

* anosim(): New function for analysis of dissimilarities, with print,
  summary, and plot methods.

Version 1.3-2
=============

* vectorfit() equations assume that X is centred: added centring
  (worked before with MDS, but not necessarily with other methods). 

Version 1.3-1
=============

* vegetab(): New function for printing compact vegetation tables, with
  helper function coverscale() for some traditional cover scales for
  compacting data.

Version 1.3-0
=============

New devel version.  Based on 1.2-1 (release), but keeping read.cep()
here. 

Version 1.2-1
=============

* Checked with R-1.4-0 (frozen snapshot) tools: Documentation and
  method consistency corrected (summary.decorana.R, decorana.Rd), and
  file permissions changed.

* decorana.Rd: removed dependence on package `multiv' in the example,
  since it is not a `recommended package' -- replaced with
  `decorana(..., ira=1)'.

Version 1.2-0
=============

Based on experimental version 1.1-6. Doesn't include read.cep() of the
experimental version, because the function is certainly unportable to
all platforms (works on Red Hat Linux 7.1, but perhaps nowhere else).

Major new feature:

* decorana(): R port of Mark Hill's DECORANA for Detrended
  correspondence analysis, with methods print(), summary() and plot().

Minor changes:

* postMDS(): finds isoMDS scores and doesn't destroy list structure.

* vectorfit: finds isoMDS scores and decorana row scores (which are
  non-centred, though).

* Proof reading in documentation.

Version 1.0-3
=============

* `plot.procrustes': selection of axes plotted, improved scaling in
  graphics, control of axis labels.

* `postMDS': added plot to demonstrate half-change scaling. 

* `procrustes': target can now have lower dimensionality than rotated matrix.

Version 1.0-2
=============

* Fixed bugs in documentation.

* `plot.procrustes': Fixed passing `...' to graphics functions.

Version 1.0-1
=============

* The first public version.
