\documentclass[11pt]{article}
\usepackage{graphicx}
\usepackage{Sweave}
\usepackage{bm}
\usepackage{anysize}

\marginsize{2cm}{2cm}{2cm}{2cm}

% \VignetteIndexEntry{Summary of Recent Updates to Spatstat}

\newcommand{\pkg}[1]{\texttt{#1}}
\newcommand{\code}[1]{\texttt{#1}}
\newcommand{\R}{{\sf R}}
\newcommand{\spst}{\pkg{spatstat}}
\newcommand{\Spst}{\pkg{Spatstat}}

\begin{document}
\bibliographystyle{plain}

<<echo=FALSE,results=hide>>=
library(spatstat)
sversion <- read.dcf(file = system.file("DESCRIPTION", package = "spatstat"),
         fields = "Version")
options(useFancyQuotes=FALSE)
@ 

\title{Summary of recent updates to \spst}
\author{Adrian Baddeley, Rolf Turner and Ege Rubak}
\date{For \spst\ version \texttt{\Sexpr{sversion}}}
\maketitle

\thispagestyle{empty}

This is a summary of changes that have been made 
to the \spst\ package since 2010, when the 
last set of workshop notes \cite{badd10wshop} 
was published. Those notes covered \spst\ version \texttt{1.21-2}. 

The current version of \spst\ is \texttt{\Sexpr{sversion}}. 
\Spst\ has tripled in size since 2010,
and now contains over 100,000 lines of code.

<<echo=FALSE,results=hide>>=
z <- read.table("packagesizes.txt", header=TRUE)
z$date <- as.Date(z$date)
Plot <- function(fmla, ..., dat=z) {
  yvals <- eval(as.expression(fmla[[2]]), envir=dat)
  plot(fmla, ..., data=dat, type="l", xlab="", lwd=2, ylim=c(0, max(yvals)))
}
@ 
<<echo=FALSE,results=hide,fig=FALSE>>=
options(SweaveHooks=list(fig=function() par(mar=0.2+c(2,4,2,0))))
@ 
\SweaveOpts{eps=TRUE}
\setkeys{Gin}{width=0.45\textwidth}

\centerline{
<<fig=TRUE,echo=FALSE,results=hide>>=
Plot((Rlines + srclines)/1000 ~ date, ylab="Lines of code (x 1000)", 
     main="Spatstat growth")
lines(srclines/1000 ~ date, data=z)
text(as.Date("2013-01-01"), 9.5, "C code")
text(as.Date("2013-01-01"), 50, "R code")
@ 
}

\tableofcontents

\newpage
\section{Overview}

Following is an overview of the most important changes.

\begin{itemize}
  \item \spst\ and all its dependencies are now Free Open Source.
    
  \item \spst\ now `Imports' (rather than `Depends' on) 
   the libraries \pkg{mgcv}, \pkg{deldir}, \pkg{abind}, \pkg{tensor}, 
   \pkg{polyclip}.
   This means that these libraries are not accessible to the user
   unless the user explicitly loads them by typing \code{library(mgcv)}
   and so on.
   
 \item \spst\ now `Depends' on the library \pkg{nlme}.

 \item polygon clipping is now performed
   by the Free Open Source library \pkg{polyclip}.
   The library \pkg{gpclib} is no longer used.

 \item polygon calculations are now enabled, always. 
   
 \item geometrical errors in polygon data are now repaired automatically.

  \item Improvements to Gibbs models (\texttt{ppm}):
    \begin{itemize}
   \item 
     now accepts syntax \verb!ppm(X ~ Z)! 
     similar to \texttt{lm} and \texttt{glm},
     as well as old syntax \verb!ppm(X, ~Z)!
   \item 
     Covariates no longer have to be passed in the argument 
     \texttt{covariates} but can be objects in the {\sf R} session;
   \item 
     A command like \verb!ppm(X ~ . , data=df)! 
     will fit the additive model involving all the covariates in 
     \texttt{data};
   \item New argument \texttt{subset} makes it possible to fit the
     model in a subset of the spatial domain defined by an expression;
    \item 
     new 'logistic likelihood' fitting method;
   \item
     new variational Bayes fitting method;
   \item 
     variance-covariance matrix;
   \item 
     print method shows standard errors and CI for coefficients;
   \item 
     new interactions (\texttt{Triplets}, \texttt{Concom});
   \item 
     hybrids of interactions;
   \item 
     Penttinen pairwise interaction;
   \item 
     self-starting feature of interactions;
   \item 
     better control over dummy points;
   \item 
     improved quadrature schemes (removing a source of bias);
   \item 
     spatial covariate functions can depend on additional parameters;
   \item 
     extract interaction from a fitted model;
   \item 
     check whether model is valid;
   \item 
     project to a valid model;
   \item 
     calculate \emph{intensity} of fitted model;
   \item 
     calculate $K$-function and pair correlation function of fitted model;
   \item 
     confidence intervals using \texttt{confint};
   \item 
     improvements/extensions to \texttt{rmh};
   \item 
     exact simulation for many models;
   \item 
     predict conditional intensity for another point pattern
   \item 
     compute confidence intervals and prediction intervals
     for intensity, and for total number of points in a region.
   \item 
     covariates can be tessellations.
   \item 
     improvements to model selection.
   \item 
     hierarchical interactions between types
     in a multitype point process.
    \end{itemize}
\item 
    Diagnostics for Gibbs models:
     Leverage, influence, partial residuals, 
     score residuals, residual summary functions
     (\texttt{Kcom}, \texttt{Kres}, \texttt{Gcom}, \texttt{Gres}, 
     \texttt{psst}, \texttt{psstA}, \texttt{psstG}, \texttt{compareFit})
\item 
    Improvements to cluster/Cox models (\texttt{kppm}): 
    \begin{itemize}
   \item 
     now accepts syntax \verb!kppm(X ~ Z)! 
     similar to \texttt{lm} and \texttt{glm},
     as well as old syntax \verb!kppm(X, ~Z)!
   \item 
     Covariates no longer have to be passed in the argument 
     \texttt{covariates} but can be objects in the {\sf R} session;
    \item 
     Fit models by Guan's second order composite likelihood;
    \item 
     Fit models by Palm likelihood;
   \item 
     Re-fit intensity using quasi-likelihood or weighted composite likelihood;
   \item 
     new cluster types \texttt{"Cauchy"}, \texttt{"VarGamma"};
   \item 
     log-Gaussian Cox processes;
   \item 
     fitted intensity;
   \item 
     variance-covariance of trend parameters;
   \item 
     generic support e.g. \texttt{coef}, \texttt{model.matrix};
   \item 
     conversion e.g. \texttt{as.fv}
   \item 
     extract K function (\texttt{Kmodel}, \texttt{pcfmodel});
   \item 
     more control over trend (more arguments passed to \texttt{ppm}).
   \item
     Left hand side of formula can now involve entries in the 
     list \texttt{data}.
   \item 
     confidence intervals using \texttt{confint}
   \item
     \texttt{AIC} and \texttt{step} now work for \texttt{"kppm"} objects
     fitted using Palm likelihood.
   \item 
     covariates can be tessellations.
   \item 
     more control over the optimisation algorithm.
    \end{itemize}
\item
    Support for point patterns on a linear network,
   including geometrically-corrected linear $K$ function, 
   pair correlation function, point process models, envelopes, tests.

\item Support for replicated point patterns:
      An object of class \texttt{mppm} 
      represents a point process model fitted to
      several point patterns. 
      The patterns may be treated as independent replicate observations
      of the same model, or as the responses from different units in a 
      designed experiment.
      Methods for this class include \texttt{plot}, \texttt{print}, 
      \texttt{vcov},
      \texttt{summary}, \texttt{fitted}, \texttt{predict}, \texttt{simulate}, 
      $\ldots$
\item
  Determinantal point process models.
\item 
    Nonparametric/summary statistics e.g.
    \begin{itemize}
    \item 
      \texttt{rhohat} (nonparametric estimate of intensity as function of covariate)
    \item 
      \texttt{idw} (inverse distance weighted smoothing)
    \item 
      \texttt{convolve.im} (image convolution)
    \item 
      $k$-th nearest neighbours (\texttt{nndist}, \texttt{nncross}, \texttt{nnwhich})
     \item more methods for \code{intensity}.
    \end{itemize}
\item
  Hypothesis tests:
  \begin{itemize}
  \item Cram\'er-von Mises and Anderson-Darling tests
    of goodness-of-fit for Poisson process models
  \item Cressie-Read statistic for quadrat counting tests
  \item Dao-Genton test, and corresponding simulation envelopes.
  \end{itemize}
\item
    Statistical tools e.g.
    \begin{itemize}
    \item 
      several algorithms for bandwidth selection (\texttt{bw.*})
    \item 
      bootstrap confidence intervals for summary functions (\texttt{lohboot})
    \item 
      pooling operations (\texttt{pool.*})
    \item 
      tools for directional data (rose diagram, kernel smoothing)
    \end{itemize}
\item
  Changes to \texttt{ppx} format:
   An object of class \texttt{ppx} may now include 'local' coordinates 
   as well as 'spatial' and 'temporal' coordinates, and marks.

\item
    Improvements to plots :
    \begin{itemize}
    \item 
      colour map objects
    \item 
      graphics symbol map objects
    \item 
      texture map objects
    \item 
      automatic legend in \texttt{plot.ppp}
    \item 
      collision avoidance in \texttt{plot.fv}
    \item 
      \texttt{plot.im(log=TRUE)}
    \item 
      \texttt{plot.listof(equal.ribbon=TRUE)}
    \item 
      improved labels in \texttt{plot.fv}
    \item 
      Switch all plots from colour to greyscale by setting
      \texttt{spatstat.options(monochrome=TRUE)}
    \item 
      perceptually uniform colour maps
    \item 
      transparent colours
    \end{itemize}
\item
    simulation:
    \begin{itemize}
    \item Basic simulation algorithms accelerated.
    \item 
      \texttt{rmh} interface restructured
    \item
      \texttt{rmh} can save transition history
    \item 
      visual debugger for \texttt{rmh}
    \item 
      exact simulation for many models
    \item 
      quasirandom point patterns and sequences
    \item 
      simulated annealing and simulated tempering.
    \end{itemize}

\item mathematical operations are now supported for images.

\item envelopes: 
       Extended functionality;
       Envelopes can be pooled and transformed.
       One-sided envelopes are available.


\item Many, many, many bug fixes.

\item Substantially increased performance.

\item 
  data in \spst\  are now lazy-loaded,
   so you don't have to type \texttt{data(amacrine)}, etc.

\item user interrupt:
   Long calculations in \spst\ 
   now respond to the Interrupt/Stop signal.

\item vignettes:
   New vignettes 'Getting Started with the Spatstat Package',
   'Analysing Replicated Point Patterns in Spatstat',
   'Datasets in the Spatstat Package'
   and `Summary of Recent Changes to Spatstat'
   
\item demonstrations:   
  New demonstration \texttt{demo(sumfun)} shows the 
  nonparametric summary functions in \spst.
 \end{itemize}

\section{New classes}

Important new classes of objects are listed here.

\begin{itemize}

\item \texttt{linnet}:
      An object of class '\texttt{linnet}' represents a linear network,
      i.e. a connected network of line segments, such as a road network.
      Methods for this class include plot, print, summary etc.

\item \texttt{lpp}:
      An object of class '\texttt{lpp}' represents a point pattern on a linear network,
      such as a record of the locations of road accidents on a road network.
      Methods for this class include plot, print, summary etc.

\item \texttt{lppm}: 
      An object of class '\texttt{lppm}' represents a point process model
      fitted to a point pattern on a linear network.
      Methods for this class include plot, print, summary, fitted, predict, simulate, ...

\item \texttt{linim}:
      Pixel image on a linear network.

\item \texttt{linfun}
      Function defined on a linear network (e.g. a distance function)

\item \texttt{mppm}:
     An object of class '\texttt{mppm}' represents a point process model
     fitted to several point pattern datasets. 
     The patterns may be treated as independent replicate observations
     of the same model, or as the responses from different units in a 
     designed experiment.
     Methods for this class include plot, print, summary, fitted, predict, simulate, ...

\item \texttt{rhohat}:
    Nonparametric estimate of intensity as function of covariate
    (result of '\texttt{rhohat}'). Can be used as an R function.
     Methods include \texttt{predict} 

\item \texttt{layered} :
     A simple mechanism for controlling plots that consist of
     several successive layers of data.

\item \texttt{timed}:
     A simple mechanism for recording the computation time taken.

\item \texttt{rat}:
    'Ratio objects' (suitable for pooling)

\item \texttt{objsurf}:
  An object of class '\texttt{objsurf}' contains values of the likelihood 
  or objective function in a neighbourhood of the maximum.

\item \texttt{simplepanel}:
  An object of class '\texttt{simplepanel}' 
  represents a spatial arrangement of buttons
  that respond to mouse clicks, supporting a simple, robust graphical interface.

\item \texttt{symbolmap}:
  An object of class '\texttt{symbolmap}' 
  represents a mapping from data values to graphical symbols.
  This makes it easy to ensure that
  the \emph{same} graphics map is used in two different plots.
  The graphics map can also be plotted in its own right as a legend
  to the plots.

\item \texttt{texturemap}:
  An object of class '\texttt{texturemap}' 
  represents a mapping from data values to graphical textures.
  
\item \texttt{anylist}, \texttt{solist}:
  these are replacements for the class '\texttt{listof}'.
  An object of class '\texttt{anylist}' represents a list of
  objects, of any kind, that the user intends to treat in the same way.
  An object of class '\texttt{solist}' (spatial object list)
  represents a list of two-dimensional spatial objects.
\end{itemize}
  
\section{New datasets}  

The following datasets have been added to the package.

\begin{itemize}
\item \texttt{austates}: The states and large mainland territories of Australia
   represented as polygonal regions forming a tessellation.
   
\item \texttt{dendrite}:
  Dendritic spines on a branch of the dendritic tree of a neuron.
  A point pattern on a linear network.
   
\item \texttt{spiders}:
  Spider webs on the mortar lines of a brick wall.
  A point pattern on a linear network.
   
\item \texttt{vesicles}:
  Spatial pattern of synaptic vesicles in rat brain tissue.
  A point pattern with covariates.
  
\item \texttt{sporophores}:
  Spatial pattern of three species of mycorrhizal fungi around a tree.
  Multitype point pattern in circular window.
   
\item \texttt{pyramidal}:
   Diggle-Lange-Benes data on pyramidal neurons in cingulate cortex.
   31 point patterns divided into 3 groups.
   
\item \texttt{waterstriders}:
   Nummelin-Penttinen waterstriders data.
   Three independent replicates of a point pattern formed by insects.

\item \texttt{simba}:
   Simulated data 

\item \texttt{demohyper}:
   Simulated data example for \texttt{mppm}.
   Point patterns and pixel image covariates, in two groups
   with different regression coefficients.

\item \texttt{clmfires}:
   Forest fires in Castilla-La Mancha

\item \texttt{gordon}:
   People sitting on the grass in Gordon Square, London

\item \texttt{hyytiala}: 
   Mixed forest in Hyytiala, Finland (marked by species)

\item \texttt{paracou}:
   Kimboto trees in Paracou, French Guiana (marked as adult/juvenile)

\item \texttt{waka}:
   Trees in Waka national park (marked with diameters)

\item \texttt{mucosa}:
   Cells in gastric mucosa

\item \texttt{gorillas}:
   Gorilla nest sites in a National Park in Cameroon.

\item \texttt{chicago}:
    Street crimes in the University district of Chicago.
    A point pattern on a linear network.

\item \texttt{flu}:
       Spatial point patterns giving the locations of 
       influenza virus proteins on cell membranes.
       Kindly released by Dr George Leser and Dr Robert Lamb.

 \item \texttt{simplenet}:
      Simple example of a linear network
\end{itemize}

\section{New Functions}

Following is a list of all the functions that have been added.

\begin{itemize}
\item Determinantal Point Process models:
  \begin{itemize}
  \item \texttt{dppm}:
    Fit a determinantal point process model.
  \item \texttt{fitted.dppm}, \texttt{predict.dppm}, \texttt{intensity.dppm}:
    prediction for a fitted determinantal point process model.
  \item 
    \texttt{Kmodel.dppm}, \texttt{pcfmodel.dppm}: 
    Second moments of a determinantal point process model.
  \item
    \texttt{rdpp}, \texttt{simulate.dppm}:
    Simulation of a determinantal point process model.
  \item \texttt{logLik.dppm}, \texttt{AIC.dppm}, \texttt{extractAIC.dppm}, 
    \texttt{nobs.dppm}: Likelihood and AIC for 
    a fitted determinantal point process model.
  \item
    \texttt{print.dppm}, \texttt{reach.dppm}, \texttt{valid.dppm}: 
    Basic information about a \texttt{dpp} model.
  \item \texttt{coef.dppm}, \texttt{formula.dppm}, \texttt{print.dppm}, 
    \texttt{terms.dppm}, \texttt{labels.dppm},
    \texttt{model.frame.dppm}, \texttt{model.matrix.dppm}, 
    \texttt{model.images.dppm},  \texttt{is.stationary.dppm}, 
    \texttt{reach.dppm}, \texttt{unitname.dppm}, \verb!unitname<-.dppm!, 
    \texttt{Window.dppm}: Various methods for \texttt{dppm} objects.
  \item \texttt{parameters.dppm}: Extract meaningful list of model parameters.
  \item \texttt{objsurf.dppm}: Objective function surface of 
    a \texttt{dppm} object. 
  \item \texttt{residuals.dppm}: Residual measure for a \texttt{dppm} object.
  \end{itemize}
\item Determinantal Point Process model families:
  \begin{itemize}
  \item \texttt{dppBessel}, \texttt{dppCauchy}, 
    \texttt{dppGauss}, \texttt{dppMatern}, \texttt{dppPowerExp}:
    Determinantal Point Process family functions.
  \item \texttt{detpointprocfamilyfun}:
    Create a family function.
  \item    
    \texttt{update.detpointprocfamily}: Set parameter values in a
    determinantal point process model family.
  \item
    \texttt{simulate.dppm}:   Simulation.
  \item \texttt{is.stationary.detpointprocfamily}, 
   \texttt{intensity.detpointprocfamily}, \texttt{Kmodel.detpointprocfamily}, 
   \texttt{pcfmodel.detpointprocfamily}: Moments.
 \item \texttt{dim.detpointprocfamily}, \texttt{dppapproxkernel}, 
   \texttt{dppapproxpcf}, \texttt{dppeigen}, 
   \texttt{dppkernel}, \texttt{dppparbounds}, \texttt{dppspecdenrange}, 
   \texttt{dppspecden}:
   Helper functions.
 \end{itemize}

\item \texttt{dg.test}:
   Dao-Genton adjusted Monte Carlo goodness-of-fit test.
 
 \item \texttt{dg.envelope}:
   Simulation envelopes corresponding to Dao-Genton test.

 \item \texttt{dg.progress}:
   Progress plot (envelope representation) for the Dao-Genton test.

 \item \texttt{dg.sigtrace}: significance trace for the Dao-Genton test.

 \item \texttt{dclf.sigtrace}, \texttt{mad.sigtrace}, \texttt{mctest.sigtrace}:
   Significance trace of Monte Carlo test.

 \item \texttt{markcrosscorr}:
   Mark cross-correlation function for point patterns with
   several columns of marks.

 \item \texttt{fixef.mppm}, \texttt{ranef.mppm}:
   Extract fixed effects and random effects from a point process model
   fitted to replicated point patterns.

 \item \texttt{rtemper}:
   Simulated annealing or simulated tempering.

 \item \texttt{to.opaque}, \texttt{to.transparent}:
   Change transparency value in colours.

 \item \texttt{rgb2hsva}:
   Convert RGB to HSV data, like \texttt{rgb2hsv}, but preserving transparency.

 \item \texttt{superimpose.ppplist}, \texttt{superimpose.splitppp}:
   New methods for 'superimpose' for lists of point patterns.

 \item \texttt{dkernel}, \texttt{pkernel}, \texttt{qkernel}, \texttt{rkernel}:
   Probability density, cumulative probability, quantiles
   and random generation from distributions used in basic one-dimensional
   kernel smoothing.

 \item \texttt{kernel.factor}:
   Auxiliary calculations for one-dimensional kernel smoothing.

 \item \texttt{PPversion}, \texttt{QQversion}:
   Transformation of a summary function to its P--P or Q--Q counterpart.

 \item \texttt{spatdim}:
   Spatial dimension of any object in the \spst\ package.

 \item \texttt{as.boxx}:
   Convert data to a multi-dimensional box.

 \item \texttt{intensity.ppx}:
   Method for \texttt{intensity} for multi-dimensional
   space-time point patterns.

 \item \texttt{fourierbasis}:
   Evaluate Fourier basis functions in any number of dimensions.

 \item \texttt{valid}:
   New generic function, with methods 
   \texttt{valid.ppm}, \texttt{valid.lppm}, \texttt{valid.dppm}.
   
 \item \texttt{emend}, \texttt{emend.ppm}, \texttt{emend.lppm}:
   New generic function with methods for \texttt{ppm} and \texttt{lppm}.
   \texttt{emend.ppm} is equivalent to \texttt{project.ppm}.

 \item \texttt{Penttinen}:
   New pairwise interaction model.

  \item \texttt{quantile.density}:
   Calculates quantiles from kernel density estimates.

  \item \texttt{CDF.density}:
   Calculates cumulative distribution function from kernel density estimates.

\item \texttt{triangulate.owin}: decompose a spatial window into triangles.
\item \texttt{fitted.lppm}: fitted intensity values for a point process
  on a linear network.
  
  \item \texttt{HierStrauss}, \texttt{HierStraussHard}, \texttt{HierHard}:
    hierarchical interactions for Gibbs models.
    
  \item \texttt{density.lpp}:
    Kernel estimation of intensity on a linear network.
    
   \item \texttt{extractbranch}, \texttt{deletebranch}, 
     \texttt{treeprune}, \texttt{treebranchlabels}, \texttt{begins}:
     Tools for analysing data on a tree.
  
   \item \texttt{studpermu.test}:
   Studentised permutation test for difference between groups of point patterns.
   Generously contributed by Ute Hahn.

   \item \texttt{AIC.kppm}, \texttt{extractAIC.kppm}, 
     \texttt{logLik.kppm}, \texttt{nobs.kppm}:
   Methods for computing AIC for fitted Cox and cluster models.

   \item \texttt{transmat}:
   Convert pixel arrays between different display conventions.

   \item \texttt{roc}:
   Receiver Operating Characteristic (ROC) curve.

   \item \texttt{auc}:
   Discrimination index AUC (area under the ROC curve) 

   \item \texttt{edit.ppp}, \texttt{edit.psp}, \texttt{edit.im}:
   Interactive text editor works for spatial datasets.

   \item \texttt{edit.hyperframe}:
   Interactive text editor works for hyperframes.

   \item \texttt{parameters}:
   Extract all parameters from a fitted model.

   \item \texttt{rnoise}:
   Random pixel noise.

   \item \texttt{as.data.frame.owin}:
   Convert a window to a data frame.

   \item \texttt{harmonise.owin}:
   Convert several binary mask windows to a common pixel grid.

   \item \texttt{copyExampleFiles}:
   Copy the raw data files from an installed dataset
   to a chosen folder, for use in a practice exercise.

   \item \texttt{density.ppplist}:
   Method for 'density' for lists of point patterns.

   \item \texttt{inradius}:
   Radius of largest circle inside a window.

   \item \texttt{mergeLevels}:
   Merge different levels of a factor.
   
   \item \texttt{relevel.im}, \texttt{relevel.ppp}, \texttt{relevel.ppx}:
   Change the reference level of a factor.

   \item \texttt{simulate.profilepl}:
   simulation method for models fitted by profile maximum pseudolikelihood.

   \item \texttt{predict.rho2hat}:
   Prediction method for class rho2hat

   \item \texttt{with.msr}:
   Evaluate (an expression involving) components of a measure. 

   \item \texttt{summary.kppm}, \texttt{print.summary.kppm}, 
     \texttt{coef.summary.kppm}:
   Methods for \texttt{summary} and \texttt{coef(summary(..))} 
   for Cox and cluster models.

   \item \texttt{as.im.funxy}:
   Method for \texttt{as.im} for class \texttt{"funxy"}.

   \item \texttt{shift.linim}, \texttt{scalardilate.linim}, 
     \texttt{affine.linim}:
   Geometrical transformations for \texttt{"linim"} objects.

   \item \texttt{Smooth.solist}:
   Smooth method for a list of spatial objects.

   \item \texttt{unitname.tess}, \texttt{unitname<-.tess}:
   Tessellations now keep track of the name of the unit of length.

   \item \texttt{dirichletAreas}:
   Faster algorithm for \texttt{tile.areas(dirichlet(X))}.

   \item \texttt{identify.lpp}
   Method for \texttt{identify} for point patterns on a linear network.

   \item \texttt{dirichletWeights}:
      This function will replace \texttt{dirichlet.weights}.
      The latter is now 'deprecated'.

 \item \texttt{clusterfield}, \texttt{clusterkernel}:
  Compute the cluster kernel of a cluster model,
   or compute the cluster field generated by superimposing copies 
   of the cluster kernel at specified locations.
 \item \texttt{clusterradius}: 
   compute the radius of clusters in a cluster model.
\item \texttt{integral}: new generic function with methods
  for classes \texttt{"im"}, \texttt{"msr"}, \texttt{"linim"}.
\item \texttt{Math.linim}: arithmetic for pixel images on a linear network.
  \item \texttt{iplot.linnet}, \texttt{iplot.lpp}: interactive plotting 
    for linear networks.
  \item \texttt{pixellate.linnet}: discretise a linear network
  \item \texttt{as.linnet.psp}:
    Convert line segment pattern to linear network
    by guessing the connectivity using a distance threshold.
  \item \texttt{as.linnet.linim}:
    Extract linear network from a \texttt{"linim"} object.
  \item \texttt{selfcut.psp}:
   Cut line segments where they cross each other.
  \item \texttt{vertices.linnet}, \texttt{vertexdegree}:
    Extract the vertices (nodes) of the linear network
    and compute the degree of each vertex.
  \item \texttt{dirichletNetwork}, \texttt{delaunayNetwork}:
   The linear networks formed by the Dirichlet tessellation
   and Delaunay triangulation.
  \item \texttt{dirichletEdges}: the edges of the Dirichlet tessellation.
\item \texttt{quantess}:
   Quantile tessellation: divide space into pieces which contain
   equal amounts of 'stuff'.
 \item \texttt{nestsplit}: Nested split
 \item \texttt{marks.tess}, \verb!marks<-.tess!, \texttt{unmark.tess}:
   Extract or change the marks associated with the tiles of a tessellation.
 \item \texttt{clusterfield}:
   Compute the cluster kernel of a (fitted or theoretical) cluster model,
   or compute the cluster field generated by superimposing copies 
   of the cluster kernel at specified locations.
 \item \texttt{pool.fv}, \texttt{pool.anylist}
   New methods for \texttt{pool}
 \item \texttt{head.hyperframe}, \texttt{tail.hyperframe}:
     Methods for \texttt{head} and \texttt{tail} for hyperframes.
   \item \texttt{subset.hyperframe}:
     Method for \texttt{subset} for hyperframes.
   \item \texttt{as.function.im}:
     Converts a pixel image to a function of spatial coordinates.
   \item \texttt{clickdist}:
   Measures the distance between two spatial locations clicked by the user.
   \item \texttt{solapply}, \texttt{anylapply}:
   wrappers for \texttt{lapply} which return a list of class 
   \texttt{"solist"} or \texttt{"anylist"}.
   \item \texttt{Kmark}: Weighted $K$-function. 
   Identical to \texttt{markcorrint} and will eventually replace it.
  \item \texttt{segregation.test}
   Test of spatial segregation of types in a multitype point pattern.
  \item mathematical operations are now supported for images. For example\\ 
    \verb!alpha <- atan(bei.extra$grad) * 180/pi!   %$
  \item \texttt{relrisk.ppm}: spatially-varying probabilities
    of different types of points
    predicted by a fitted point process model.
  \item \texttt{circdensity}: Kernel density estimate for angular data
  \item \texttt{rose}: Rose diagram (rose of directions) for angular data
  \item \texttt{nnorient}: Nearest neighbour orientation distribution.
  \item \texttt{AIC.ppm}: Calculate \textit{AIC}
    of a Gibbs model using Takeuchi's rule.
  \item \texttt{interp.colours}:
   Interpolate a sequence of colour values.
  \item \texttt{anyDuplicated.ppp}, \texttt{anyDuplicated.ppx}:
   Fast replacements for \texttt{any(duplicated(x))} for point patterns.
  \item \texttt{textstring}, \texttt{onearrow}, \texttt{yardstick}:
   Objects representing a text string, an arrow, or a scale bar,
   for use in drawing spatial diagrams.
  \item \texttt{plot.imlist}, \texttt{image.imlist}, \texttt{contour.imlist}:
   Methods for the new class \texttt{"imlist"}
  \item \verb![<-.layered!,  \verb![[<-.layered!:
   More support for class \texttt{"layered"}
  \item \texttt{anylist}, \texttt{as.anylist}, \texttt{[.anylist}, \texttt{[<-.anylist}, \texttt{print.anylist}, \texttt{summary.anylist}\\ 
   Support for new class '\texttt{anylist}'
 \item \texttt{solist}, \texttt{as.solist}, 
   \texttt{[.solist}, \texttt{[<-.solist}, \texttt{print.solist}, 
   \texttt{summary.solist}\\
   Support for new class '\texttt{solist}'
 \item \texttt{plot.anylist}, \texttt{plot.solist}: \\
   Plot methods for the classes '\texttt{anylist}' and '\texttt{solist}'
   (Currently identical to '\texttt{plot.listof}')
\item \texttt{perspPoints}, \texttt{perspLines}, \texttt{perspSegments},
  \texttt{perspContour}: draw points and lines on a surface,
  as seen in perspective view.
\item \texttt{project2set}: 
  For each data point in a point pattern \texttt{X}, find the nearest
  spatial location in a given window \texttt{W}.
\item \texttt{discs}: union of discs. 
  (Given a point pattern dataset recording the locations and diameters
  of objects, find the region covered by the objects.)
\item \texttt{Fhazard}: hazard rate of the empty space function.
\item \texttt{dirichletVertices}: Vertices of the Dirichlet tessellation.
\item \texttt{stienen, stienenSet}: Stienen diagrams.
\item \texttt{hopskel.test}: Hopkins-Skellam test.
\item \texttt{is.grey}: determines whether a colour value is a shade of grey.
\item \texttt{increment.fv}: increments of a summary function:
  $g(x) = f(x+h)-f(x-h)$.
\item \texttt{rotmean}: rotational average of pixel values in an image.
\item \texttt{fardist}: distance to farthest part of window boundary.
\item \verb![<-.fv!, \verb!$<-.fv!: %$
  subset replacement operators for \texttt{fv} objects.
\item \texttt{Ksector}: directional version of $K$-function.
\item \texttt{pairorient}: point pair orientation distribution.
\item \texttt{range.fv}, \texttt{min.fv}, \texttt{max.fv}:
  Range, minimum and maximum of function values.
\item \texttt{panel.contour}, \texttt{panel.image}, \texttt{panel.histogram}:
  Panel functions for \texttt{pairs} plots.
\item \texttt{as.layered}:
  Convert spatial data to a \texttt{layered} object.
\item \texttt{padimage}:
  Pad the border of a pixel image.
\item \texttt{Window}, \verb!Window<-!:
  generic functions to extract or change the spatial window
  of a spatial object in two dimensions. 
\item \texttt{Frame}, \verb!Frame<-!:
  generic functions to extract or change the containing rectangle ('frame')
  of a spatial object in two dimensions. 
\item \texttt{domain}:
  generic function to extract the spatial domain of 
  a spatial object in any number of dimensions.
\item 
  \texttt{subset.ppp}, 
  \texttt{subset.lpp}, 
  \texttt{subset.pp3}, 
  \texttt{subset.ppx}:
  Methods for \texttt{subset}, for point patterns.
\item \texttt{spatialcdf}:
  Compute the spatial cumulative distribution of a spatial covariate,
  optionally using spatially-varying weights.
\item \texttt{closepairs.pp3}, \texttt{crosspairs.pp3}:
   Low-level functions to find all close pairs of points in three dimensions.
\item 
  \texttt{improve.kppm}:
  Quasi-likelihood and weighted composite likelihood methods
  for estimating trend in cluster processes and Cox processes.
\item 
  \texttt{berman.test}:
  Replaces \texttt{bermantest}.
\item 
  \texttt{cdf.test}:
  Spatial distribution test of goodness-of-fit of a 
  Poisson point process model, using the Kolmogorov-Smirnov,
  Cram\'er-von Mises test or Anderson-Darling test.
  Replaces \texttt{kstest}.
\item 
  \texttt{simulate.lppm}:
  Simulate a fitted point process model on a linear network.
\item 
  \texttt{harmonise.fv}:
  Make several functions compatible.
\item 
  \texttt{split.hyperframe}:
  method for \texttt{split} for hyperframes.
\item 
  \texttt{complementarycolour}:
  Compute the complementary colour value of a given colour value,
  or the complementary colour map of a given colour map.
\item 
  \texttt{dmixpois}, \texttt{pmixpois}, \texttt{qmixpois}, \texttt{rmixpois}:
  (log-)normal mixture of Poisson distributions.
\item \texttt{gauss.hermite}:
   Gauss-Hermite quadrature approximation to the expectation
   of any function of a normally-distributed random variable.	
\item 
  \texttt{minnndist}, \texttt{maxnndist}:
  faster ways to compute \texttt{min(nndist(X))} and 
  \texttt{max(nndist(X))}
\item 
  \texttt{boundingbox}:
  Generic function, replaces \texttt{bounding.box}.
\item 
  \texttt{Smoothfun}:
  create a \texttt{function(x,y)} equivalent to the result of
  \texttt{Smooth.ppp}
\item
  \code{vdCorput}, \code{Halton}, \code{Hammersley}, \code{rQuasi}:
     quasirandom point patterns and sequences.
\item 
  \code{ellipse}: create an elliptical window.
\item 
  \code{clickbox}: interactively specify a rectangle
  by point-and-click on a graphics device.
     
   \item \code{symbolmap}: Create a graphics symbol map
     (a mapping from data values to graphical symbols)
     
   \item \code{update.symbolmap}: Modify a graphics symbol map

   \item \code{invoke.symbolmap}:
   Apply graphics symbol map to data values, and plot the symbols

   \item \code{plot.symbolmap}: 
   Plot the graphics symbol map in the style of a legend

\item \code{add.texture}: Draw a simple texture inside a specified region.

\item \code{textureplot}: 
  Display a tessellation, or a factor-valued pixel image, using texture fill.

   \item \code{texturemap}: Create a graphics texture map
     (a mapping from data values to graphical textures)
     
   \item \code{plot.texturemap}: 
   Plot the graphics texture map in the style of a legend

\item \code{reload.or.compute}: 
  Utility for use in {\sf R} scripts.
  Either reload results from file, or compute them.

\item \code{im.apply}: 
   Apply a function to corresponding pixel values in several images.

\item \code{hexgrid}, \code{hextess}:
   Create a hexagonal grid of points, or a tessellation of hexagonal tiles

\item \code{shift.tess}, \code{rotate.tess}, \code{reflect.tess}, 
   \code{scalardilate.tess}, \code{affine.tess}:
   Apply a geometrical transformation to a tessellation.

\item \code{quantile.ewcdf}:
   Extract quantiles from a weighted cumulative distribution function.

\item \code{scanLRTS}:
   Evaluate the spatially-varying test statistic for the scan test.

\item \code{intensity.splitppp}:
   Estimate intensity in each component of a split point pattern.

\item \code{intensity.quadratcount}:
   Use quadrat counts to estimate intensity in each quadrat.

\item \code{as.owin.quadratcount}, \code{as.owin.quadrattest}:
   Extract the spatial window in which quadrat counts were performed.

 \item \texttt{mppm}:
  Fit a Gibbs model to several point patterns.
  The point pattern data may be organised as a designed experiment
  and the model may depend on covariates associated with the design.

\item \texttt{anova.mppm}:
  Analysis of Deviance for models of class \texttt{mppm}

\item \texttt{coef.mppm}:
  Extract fitted coefficients from a model of class \texttt{mppm}

\item \texttt{fitted.mppm}:
  Fitted intensity or conditional intensity for a model of class \texttt{mppm}

\item \texttt{cdf.test.mppm}:
  Kolmogorov-Smirnov,
  Cram\'er-von Mises test or Anderson-Darling
  test of goodness-of-fit for a model of class \texttt{mppm}

\item \texttt{logLik.mppm}:
  log likelihood or log pseudolikelihood for a model of class \texttt{mppm}

\item \texttt{plot.mppm}:
  Plot the fitted  intensity or conditional intensity of a model of class \texttt{mppm}

\item \texttt{predict.mppm}:
  Compute the fitted  intensity or conditional intensity 
  of a model of class \texttt{mppm}

\item \texttt{quadrat.test.mppm}:
  Quadrat counting test of goodness-of-fit for a model of class \texttt{mppm}

\item \texttt{residuals.mppm}:
 Point process residuals for a model of class \texttt{mppm}


\item \texttt{subfits}:
  Extract point process models for each individual point pattern dataset,
  from a model of class \texttt{mppm}.

\item \texttt{vcov.mppm}:
  Variance-covariance matrix for a model of class \texttt{mppm}

\item \texttt{integral.msr}:
  Integral of a measure.

\item \texttt{objsurf}:
  For a model fitted by optimising an objective function, this command
  computes the objective function in a neighbourhood of the optimal value.

\item \texttt{contour.objsurf}, \texttt{image.objsurf}, 
\texttt{persp.objsurf}, \texttt{plot.objsurf}: 
  Plot an 'objsurf' object.

\item
   \texttt{fvnames}:
  Define groups of columns in a function value table, 
  for use in \texttt{plot.fv}, etc

\item \texttt{multiplicity}:
  New generic function for which \texttt{multiplicity.ppp} is a method.

 \item \texttt{unique.ppx}, \texttt{duplicated.ppx}, \texttt{multiplicity.ppx}:
  Methods for \texttt{unique}(), \texttt{duplicated}() and \texttt{multiplicity}() for '\texttt{ppx}' objects.
  These also work for '\texttt{pp3}' and \texttt{lpp} objects.

\item \texttt{closepairs}, \texttt{crosspairs}, \texttt{closepaircounts}, 
  \texttt{crosspaircounts}:
  Low-level functions for finding all close pairs of points 

\item \texttt{nnfun.ppp}, \texttt{distfun.ppp}:
   New argument \texttt{k} allows these functions to compute $k$-th nearest neighbours.

\item  \texttt{nndensity}: 
  Estimate point process intensity using $k$-th nearest neighbour distances

\item \texttt{simplepanel}, \texttt{run.simplepanel}:
  Support for a simple point-and-click interface for general use.

  \item \texttt{as.lpp}:
   Convert data to a point pattern on a linear network.

  \item \texttt{distfun.lpp}:
   Distance function for point pattern on a linear network.

  \item \texttt{eval.linim}:
   Evaluate expression involving pixel images on a linear network.

  \item \texttt{linearKcross}, \texttt{linearKdot}, 
    \texttt{linearKcross.inhom}, \texttt{linearKdot.inhom}:
   Multitype $K$ functions for point patterns on a linear network

  \item \texttt{linearmarkconnect}, \texttt{linearmarkequal}:
   Mark connection function and mark equality function 
   for multitype point patterns on a linear network

  \item \texttt{linearpcfcross}, \texttt{linearpcfdot}, 
    \texttt{linearpcfcross.inhom}, \texttt{linearpcfdot.inhom}:
    Multitype pair correlation functions for point patterns on a linear network

  \item \texttt{linfun}:
   New class of functions defined on a linear network

  \item \texttt{nndist.lpp}, \texttt{nnwhich.lpp}, \texttt{nncross.lpp}:
   Methods for \texttt{nndist}, \texttt{nnwhich}, \texttt{nncross} 
   for point patterns on a linear network

  \item \texttt{nnfun.lpp}:
   Method for \texttt{nnfun} for point patterns on a linear network

  \item \texttt{vcov.lppm}:
   Variance-covariance matrix for parameter estimates of a fitted
   point process model on a linear network.

  \item \texttt{bilinearform}
   Computes a bilinear form 

  \item \texttt{tilenames}, \verb!tilenames<-!:
   Extract or change the names of tiles in a tessellation.

   \item \texttt{bw.ppl}:
    Likelihood cross-validation technique 
    for bandwidth selection in kernel smoothing.

   \item \texttt{is.lppm}, \texttt{is.kppm}, \texttt{is.slrm}:
    Tests whether an object is of class 'lppm', 'kppm' or 'slrm'

   \item \texttt{Smooth}:
    New generic function for spatial smoothing.

   \item \texttt{Smooth.ppp}, \texttt{Smooth.fv}, \texttt{Smooth.msr}:
    Methods for \texttt{Smooth}
    (identical to \texttt{smooth.ppp}, \texttt{smooth.fv}, \texttt{smooth.msr}
    respectively)

   \item \texttt{fitted.kppm}:
    Method for \texttt{fitted} for cluster/Cox models

  \item \texttt{nncross.pp3}:
   Method for \texttt{nncross} for point patterns in 3D

  \item \texttt{nnmark}:
   Mark of nearest neighbour - can be used for interpolation

  \item \texttt{dclf.progress}, \texttt{mad.progress}:
   Progress plots (envelope representations) for the DCLF and MAD tests.

  \item \texttt{deriv.fv}:
   Numerical differentiation for \texttt{fv} objects.

  \item \texttt{interp.colourmap}:
   Smooth interpolation of colour map objects - makes it easy to build
   colour maps with gradual changes in colour

  \item \texttt{tweak.colourmap}
   Change individual colour values in a colour map object

  \item \texttt{beachcolourmap}:
   Colour scheme appropriate for `altitudes' (signed numerical values)

  \item \texttt{as.fv}:
   Convert various kinds of data to an 'fv' object

  \item \texttt{quadscheme.logi}:
   Generates quadrature schemes for the logistic method of ppm.

  \item \texttt{beginner}
   Introduction for beginners.

  \item \texttt{nnmap}:
   Given a point pattern, finds the k-th nearest point in the pattern
   from each pixel in a raster.

  \item \texttt{coef.fii}, \texttt{coef.summary.fii}:
   Extract the interaction coefficients of a fitted interpoint interaction

  \item \texttt{edges2vees}:
   Low-level function for finding triples in a graph.

  \item \texttt{affine.lpp}, \texttt{shift.lpp}, \texttt{rotate.lpp}, 
    \texttt{rescale.lpp}, \texttt{scalardilate.lpp}:
   Geometrical transformations for point patterns on a linear network

  \item \texttt{affine.linnet}, \texttt{shift.linnet}, \texttt{rotate.linnet}, 
   \texttt{rescale.linnet}, \texttt{scalardilate.linnet}:
   Geometrical transformations for linear networks

  \item \verb![.linnet!
   Subset operator for linear networks

  \item \texttt{timed}:
   Records the computation time taken
   
  \item \texttt{connected.ppp}:
   Find clumps in a point pattern.

  \item \texttt{cdf.test.lpp}, \texttt{cdf.test.lppm}:
   The spatial Kolmogorov-Smirnov test,
   Cram\'er-von Mises test or Anderson-Darling test
   can now be applied 
   to point patterns on a linear network (class \texttt{lpp}) and 
   point processes on a linear network (class \texttt{lppm}).

  \item \texttt{berman.test.lpp}, \texttt{berman.test.lppm}:
   Berman's Z1 and Z2 tests can now be applied to point patterns
   on a linear network (class \texttt{lpp}) and point processes on a linear
   network (class \texttt{lppm}).

  \item \texttt{rhohat.lpp}, \texttt{rhohat.lppm}:
   Nonparametric estimation of the dependence of a point pattern
   on a spatial covariate: \texttt{rhohat} now applies to 
   objects of class \texttt{lpp} and \texttt{lppm}.

  \item \texttt{intensity.lpp}:
   Empirical intensity of a point pattern on a linear network.

  \item \texttt{as.function.rhohat}:
   Converts a \texttt{rhohat} object to a function,
   with extrapolation beyond the endpoints.

  \item \verb![.layered!:
   Subset operator for layered objects.

  \item \texttt{shift}, \texttt{rotate}, \texttt{affine}, 
    \texttt{rescale}, \texttt{reflect}, \texttt{flipxy}, \texttt{scalardilate}:
   These geometrical transformations now work for \texttt{layered} objects.

  \item \texttt{iplot.layered}:
   Interactive plotting for \texttt{layered} objects.

  \item \texttt{as.owin.layered}:
   Method for as.owin for layered objects.

  \item \verb![.owin!:
   Subset operator for windows, equivalent to \texttt{intersect.owin}.

  \item \texttt{rcellnumber}:
   Generates random integers for the Baddeley-Silverman counterexample.

  \item \texttt{is.lpp}:
   Tests whether an object is a point pattern on a linear network.

  \item \texttt{is.stationary.lppm}, \texttt{is.poisson.lppm}:
   New methods for \texttt{is.stationary} and \texttt{is.poisson}
   for class \texttt{lppm}

  \item \texttt{sessionLibs}:
   Print library names and version numbers (for use in \texttt{Sweave} scripts)

  \item \texttt{round.ppp}:
   Round the spatial coordinates of a point pattern 
   to a specified number of decimal places.

  \item \texttt{rounding}:
   Determine whether a dataset has been rounded.

  \item \texttt{Hybrid}:
   The hybrid of several point process interactions
   [Joint research with Jorge Mateu and Andrew Bevan]

  \item \texttt{is.hybrid}:
   Recognise a hybrid interaction or hybrid point process model.

  \item \texttt{Finhom}, \texttt{Ginhom}, \texttt{Jinhom}
   Inhomogeneous versions of the F, G and J functions

  \item \texttt{delaunayDistance}:
   Graph distance in the Delaunay triangulation.

  \item \texttt{distcdf}:
   Cumulative distribution function of the distance between
   two independent random points in a given window.

  \item \texttt{bw.frac}:
   Bandwidth selection based on window geometry

  \item \texttt{shortside.owin}, \texttt{sidelengths.owin}:
   Side lengths of (enclosing rectangle of) a window

  \item \texttt{clusterset}:
   Allard-Fraley estimator of high-density features in a point pattern

  \item \texttt{pool.quadrattest}:
   Pool several quadrat tests

  \item \texttt{nnfun}:
   Nearest-neighbour map of a point pattern or a line segment pattern

  \item \texttt{as.ppm}:
   Converts various kinds of objects to \texttt{ppm}.

  \item \texttt{crossdist.lpp}:
   Shortest-path distances between pairs of points in a linear network

  \item \texttt{nobs.lppm}:
   Method for \texttt{nobs} for \texttt{lppm} objects.

  \item \texttt{as.linim}:
   Converts various kinds of objects to \texttt{linim}.

  \item \texttt{model.images.slrm}:
   Method for \texttt{model.images} for \texttt{slrm} objects

  \item \texttt{rotate.im}:
   Rotate a pixel image

  \item \texttt{parres}:
   Partial residual plots for spatial point process models.
   A diagnostic for the form of a covariate effect.

  \item \texttt{addvar}:
   Added variable plots for spatial point process models.
   A diagnostic for the existence of a covariate effect.

  \item \texttt{intensity}, \texttt{intensity.ppp}, \texttt{intensity.ppm}
   Calculate the intensity of a dataset or fitted model.
   Includes new approximation to the intensity of a fitted Gibbs model

  \item \texttt{LambertW}:
   Lambert's W-function

  \item \texttt{exactMPLEstrauss}:
   Fits the stationary Strauss point process model
   using an exact maximum pseudolikelihood technique.
   This is mainly intended for technical investigation of algorithms.

  \item \texttt{split.ppx}:
   Method for \texttt{split} for multidimensional point patterns 
   (class \texttt{ppx}).
   This also works for point patterns on a linear network (class \texttt{lpp}).

  \item \texttt{model.images}:
   This function is now generic, with methods for classes 
   \texttt{ppm}, \texttt{kppm}, \texttt{lppm}

  \item \texttt{model.frame}, \texttt{model.matrix}:
   These generic functions now have methods for classes \texttt{kppm}, 
   \texttt{lppm}

  \item \texttt{as.owin.kppm}, \texttt{as.owin.lppm}:
   New methods for 'as.owin' for objects of class \texttt{kppm}, \texttt{lppm}

  \item \texttt{as.linnet.lppm}:
   Extracts the linear network in which a point process model was fitted.

  \item \texttt{dclf.test}:
   Perform the Diggle (1986)/ Cressie (1991)/ 
   Loosmore and Ford (2006) test of CSR 
   (or another model)

  \item \texttt{mad.test}:
   Perform the Maximum Absolute Deviation test of CSR (or another model).

  \item \texttt{convolve.im}:
   Compute convolution of pixel images.

  \item \texttt{Kmulti.inhom}:
   Counterpart of \texttt{Kmulti} for spatially-varying intensity.

  \item \texttt{rmhexpand}:
   Specify a simulation window, or a rule for expanding the
   simulation window, in Metropolis-Hastings simulation (\texttt{rmh})

  \item \texttt{transect.im}:
   Extract pixel values along a line transect.

  \item \texttt{affine.im}:
   Apply an affine transformation to a pixel image.

  \item \texttt{scalardilate}:
   Perform scalar dilation of a geometrical object 
   relative to a specified origin.

  \item \texttt{reflect}:
   Reflect a geometrical object through the origin.

  \item \verb![.lpp!, \verb![.ppx!:
   Subset operators for the classes \texttt{lpp} (point pattern on 
   linear network) and \texttt{ppx} (multidimensional space-time
   point pattern).
 
  \item \texttt{is.rectangle}, \texttt{is.polygonal}, \texttt{is.mask}:
   Determine whether a window w is a rectangle, a domain with polygonal 
   boundaries, or a binary pixel mask.

  \item \texttt{has.offset}:
   Determines whether a fitted model object (of any kind)
   has an offset.

 \item \texttt{lohboot}:
  Computes bootstrap confidence bands for pair correlation function
  and $K$ function using Loh's (2008) mark bootstrap.

  \item \texttt{rho2hat}:
   Bivariate extension of \texttt{rhohat} for estimating spatial residual risk, 
   or intensity as a function of two covariates.

  \item \texttt{rStraussHard}:
   Perfect simulation for Strauss-hardcore process (with $\gamma \le 1$)

  \item \texttt{simulate.slrm}:
   Method for \texttt{simulate} for spatial logistic regression models.

  \item \texttt{labels.ppm}, \texttt{labels.kppm}, \texttt{labels.slrm}:
   Methods for \texttt{labels} for fitted point process models.

  \item \texttt{commonGrid}:
   Determine a common spatial domain and pixel resolution
   for several pixel images and/or binary masks

  \item \texttt{as.matrix.owin}:
   Converts a window to a logical matrix.

  \item \texttt{rDiggleGratton}, \texttt{rDGS}, \texttt{rHardcore}:
   Perfect simulation for the Diggle-Gratton process,
   Diggle-Gates-Stibbard process, and Hardcore process.

  \item \texttt{bw.scott}:
   Scott's rule of thumb for bandwidth selection in
   multidimensional smoothing

  \item \texttt{valid.ppm}:
   Checks whether a fitted point process model is a valid point process

  \item \texttt{project.ppm}:
   Forces a fitted point process model to be a valid point process

  \item \texttt{leverage.ppm}, \texttt{influence.ppm}, \texttt{dfbetas.ppm}:
   Leverage and influence for point process models

  \item \texttt{ippm}:
   Experimental extension to 'ppm' which fits irregular parameters in trend
   by Fisher scoring algorithm.

  \item \texttt{Tstat}:
   Third order summary statistic for point patterns
   based on counting triangles.

  \item \texttt{rCauchy}, \texttt{rVarGamma}:
   simulation of a Neyman-Scott process with Cauchy clusters
   or Variance Gamma (Bessel) clusters.
   Contributed by Abdollah Jalilian.

  \item \texttt{rPoissonCluster}:
   simulation of a general Poisson cluster process

  \item \texttt{model.covariates}:
   Identify the covariates involved in a model (\texttt{lm}, \texttt{glm}, 
   \texttt{ppm} etc)

  \item \texttt{as.im.distfun}:
   Converts a 'distfun' to a pixel image.

  \item \texttt{cauchy.estK}, \texttt{cauchy.estpcf}, 
    \texttt{vargamma.estK}, \texttt{vargamma.estpcf}:
   Low-level model-fitting functions for the Neyman-Scott process 
   with Cauchy or Variance-Gamma cluster kernel.
   Contributed by Abdollah Jalilian.

  \item \texttt{Triplets}:
   Geyer's triplet interaction, for point process models

  \item \texttt{coef.summary.ppm}:
   You can now type \texttt{coef(summary(fit))} to extract a table
   of the fitted coefficients of the point process model \texttt{fit}

  \item \texttt{scan.test}:
     Spatial scan test of clustering

  \item \texttt{rat}:
   New class of 'ratio objects'

  \item \texttt{pool.rat}:
   New method for \texttt{pool}.
   Combines K function estimates for replicated point patterns (etc) 
   by computing ratio-of-sums 

  \item \texttt{unnormdensity}:
   Weighted kernel density with weights that do not sum to 1
   and may be negative.

  \item \texttt{compatible}:
   New generic function with methods for \texttt{fv}, \texttt{im}, 
   \texttt{fasp} and \texttt{units}.

  \item \texttt{imcov}:
   Spatial covariance function of pixel image
   or spatial cross-covariance function of two pixel images

  \item \texttt{harmonise.im}:
   Make several pixel images compatible 
   by converting them to the same pixel grid

  \item \texttt{contour.listof}, \texttt{image.listof}:
   Methods for \texttt{contour}() and \texttt{image}() for lists of objects

  \item \texttt{dummify}:
   Convert data to numeric values by constructing dummy variables.

  \item \texttt{pool}:
   Pool data from several objects of the same class

  \item \texttt{pool.envelope}
   Pool simulated data from several envelope objects and create a new envelope

  \item \texttt{pool.fasp}:
   Pool simulated data from several function arrays and create a new array

  \item \texttt{envelope.envelope}:
   Recalculate an envelope from simulated data using different parameters

  \item \texttt{bw.diggle}:
   Bandwidth selection for density.ppp by mean square error cross-validation.

  \item \texttt{bw.smoothppp}:
   Bandwidth selection for smooth.ppp by least-squares cross-validation.

  \item \texttt{layered}, \texttt{plot.layered}:
   A simple mechanism for controlling plots that consist of
   several successive layers of data.

  \item \texttt{model.depends}:
   Given a fitted model (of any kind), identify which of the covariates
   is involved in each term of the model.

  \item \texttt{model.is.additive}:
   Determine whether a fitted model  (of any kind) is additive, 
   in the sense that each term in the model involves at most one covariate.

   \item \texttt{sumouter}, \texttt{quadform}:
    Evaluate certain quadratic forms.

   \item \texttt{flipxy}:
    Exchange x and y coordinates.

   \item \texttt{idw}:
      Inverse-distance weighted smoothing.

   \item \texttt{localKinhom}, \texttt{localLinhom}, \texttt{localpcfinhom}:
      Inhomogeneous versions of \texttt{localK}, \texttt{localL}, 
      \texttt{localpcf}:

   \item \texttt{envelope.lpp}:
      Simulation envelopes for point patterns on a linear network

   \item \texttt{lineardisc}:
      Compute the 'disc' of radius $r$ in a linear network 

   \item \texttt{linearpcf}: 
      Pair correlation for point pattern on a linear network

   \item \texttt{linearKinhom}, \texttt{linearpcfinhom}:
      Inhomogeneous versions of the K function and pair correlation function
      for point patterns on a linear network

   \item \texttt{lppm}: 
      Fit point process models on a linear network.

   \item \texttt{anova.lppm}:
      Analysis of deviance for point process models on a linear network.

   \item \texttt{predict.lppm}:
      Prediction for point process models on a linear network.

   \item \texttt{envelope.lppm}:
      Simulation envelopes for point process models on a linear network.

   \item \texttt{linim}:
      Pixel image on a linear network

   \item \texttt{plot.linim}:
      Plot a pixel image on a linear network

   \item  \texttt{Gcom}, \texttt{Gres}, \texttt{Kcom}, \texttt{Kres}:
       New diagnostics for fitted Gibbs or Poisson point process models
       based on score residuals.
       \texttt{Gcom} is the compensator of the $G$ function;
       \texttt{Gres} is the residual of the $G$ function;
       \texttt{Kcom} is the compensator of the $K$ function;
       \texttt{Kres} is the residual of the $K$ function.

   \item  \texttt{psst}, \texttt{psstA}, \texttt{psstG}:
       New diagnostics for fitted Gibbs or Poisson point process models
       based on pseudoscore residuals.
       \texttt{psst} is the pseudoscore diagnostic for a general alternative;
       \texttt{psstA} is the pseudoscore diagnostic
       for an Area-interaction alternative;
       \texttt{psstG} is the pseudoscore diagnostic for
       a Geyer saturation alternative.

   \item  \texttt{compareFit}:
       Computes and compares several point process models
       fitted to the same dataset, using a chosen diagnostic.

   \item  \texttt{as.interact}:
       Extracts the interpoint interaction structure (without parameters)
       from a fitted point process model or similar object.

   \item  \texttt{is.stationary}, \texttt{is.poisson}:
       New generic functions for testing whether a point process model 
       is stationary and/or Poisson.
       Methods for \texttt{ppm}, \texttt{kppm}, \texttt{slrm} etc.

   \item  \texttt{raster.xy}:
       raster coordinates of a pixel mask

   \item  \texttt{zapsmall.im}:
       'zapsmall' for pixel images

   \item \texttt{linearK}:
      Computes the Okabe-Yamada network K-function 
      for a point pattern on a linear network.

   \item \texttt{pairdist.lpp}:
      Shortest-path distances between each pair of points 
      on a linear network.

   \item \texttt{vcov.kppm}:
      Asymptotic variance-covariance matrix for regression parameters
      in kppm object. 
      [Contributed by Abdollah Jalilian and Rasmus Waagepetersen]

   \item \texttt{rLGCP}:
      Simulation of log-Gaussian Cox processes
      [Contributed by Abdollah Jalilian and Rasmus Waagepetersen]

   \item \texttt{predict.rhohat}:
      Method for \texttt{predict} for objects of class \texttt{rhohat}.
      Computes a pixel image of the predicted intensity.

   \item \texttt{Kmodel}, \texttt{pcfmodel}:
      Generic functions that compute the K-function or pair correlation function
      of a point process \emph{model}. 
      There are methods for \texttt{kppm} and \texttt{ppm}.

   \item \texttt{as.function.fv}
      Converts a function value table (class \texttt{fv}) to a function in R

   \item \texttt{coef.kppm}:
      Method for \texttt{coef} for objects of class \texttt{kppm}

   \item \texttt{unitname}, \verb!unitname<-!:
      These generic functions now have methods for fitted model objects
      (classes \texttt{ppm}, \texttt{slrm}, \texttt{kppm}, \texttt{minconfit}) 
      and quadrature schemes (\texttt{quad}).

   \item \texttt{nobs.ppm}:
      Method for \texttt{nobs} for class \texttt{ppm}.
      Returns the number of points in the original data.

   \item \texttt{rgbim}, \texttt{hsvim}:
      Specify three colour channels.
      These functions convert three pixel images with numeric values
      into a single image whose pixel values are strings representing colours.

   \item \texttt{scaletointerval}:
      Generic utility function to rescale data (including spatial data)
      to a specified interval

   \item \texttt{runiflpp}:
      Uniformly distributed random points on a linear network

   \item \texttt{rpoislpp}:
      Poisson point process on a linear network

   \item \texttt{clickjoin}:
      Interactive graphics to create a linear network
    
   \item \texttt{superimpose}:
      The function 'superimpose' is now generic, with methods
      for ppp, psp and a default method.

   \item \texttt{as.ppp.psp}: 
      New method for \texttt{as.ppp} extracts the endpoints and marks
      from a line segment pattern

   \item \texttt{runiflpp}:
      Uniformly distributed random points on a linear network

   \item \texttt{rpoislpp}:
      Poisson point process on a linear network

   \item \texttt{clickjoin}:
      Interactive graphics to create a linear network
    
   \item \texttt{superimpose}:
      The function \texttt{superimpose} is now generic, with methods
      for \texttt{ppp}, \texttt{psp} and a default method.

   \item \texttt{nsegments}:
    	Number of segments in a line segment pattern

   \item \texttt{clarkevans.test}
    	Classical Clark-Evans test of randomness

   \item \texttt{msr}
	New class \texttt{msr} of signed measures and vector-valued measures
	supporting residual analysis.

   \item \texttt{quadrat.test.quadratcount}:
	Method for \texttt{quadrat.test} for objects of class 
        \texttt{quadratcount}
	(allows a $\chi^2$ test to be performed on quadrat counts
	rather than recomputing from the original data)

   \item \texttt{tile.areas}:
	Computes areas of tiles in a tessellation (efficiently)
      \end{itemize}

\section{Precis of all changes}

Here is the text from the `overview' sections of 
the News and Release Notes for each update. 

\begin{itemize}
   \item \spst\ now depends on the package \pkg{nlme}.

   \item \spst\ now depends on \texttt{R 3.2.2} or later.

   \item Simulation algorithms have been accelerated; simulation outcomes 
   are \emph{not} identical to those obtained from previous versions of \spst. 

   \item Determinantal point process models.

   \item Random-effects and mixed-effects models for replicated patterns.

   \item Dao-Genton test, and corresponding simulation envelopes.

   \item Simulated annealing and simulated tempering.

   \item spatstat colour tools now handle transparent colours.

   \item Improvements to \verb![! and \texttt{subset} methods

   \item Extensions to kernel smoothing on a linear network.

   \item Support for one-dimensional smoothing kernels.

   \item Bug fix in Metropolis-Hastings simulation.

   \item Mark correlation function may include weights.

   \item Cross-correlation version of the mark correlation function.

   \item Penttinen pairwise interaction model.

   \item New dataset: Australian states and territories.

   \item More support for multi-dimensional point patterns.

 \item Improvements to simulation of Neyman-Scott processes.

   \item Improvements to fitting of Neyman-Scott models.

   \item Extended functionality for pixel images.

   \item Fitted intensity on linear network

   \item Triangulation of windows.

   \item  Corrected an edge correction.
  
   \item Permutation test for difference between groups of point patterns.

   \item Variational Bayes estimation for point process models.

   \item Score test in \texttt{anova.ppm}

   \item ROC curve, and discrimination index AUC, for fitted models.
   
   \item Interactive text editor for spatial datasets.

   \item Tools for analysing data on a tree. 

   \item Kernel density/intensity estimation on a linear network.
     
   \item Random pixel noise.

   \item Improved behaviour of polygon geometry operations.

   \item Improved support for cluster and Cox models.

   \item Improved basic support for owin objects.

   \item Improved support for tessellations.

   \item More hierarchical interactions for Gibbs models.
     
   \item Modifications to \texttt{Kest}.

   \item summary method for Cox and cluster models.

   \item class \texttt{"listof"} is almost completely replaced by 
     \texttt{"anylist"} and \texttt{"solist"}.

   \item Improvements and bug fixes.

 \item Reorganised parametrisation of cluster models.

  \item Sparse matrix representation of linear networks.
    
  \item More support for data on linear networks.
  
  \item Tessellations may now have marks.

  \item Nested splitting.

   \item Standard errors for kernel estimates of intensity.

   \item  Test for segregation.

   \item \texttt{spatstat} now imports (rather than Suggests)
     the package \texttt{Matrix}.
 
   \item \texttt{spatstat} no longer uses Fortran.
 
   \item \texttt{spatstat} no longer depends on 
     the package \texttt{scatterplot3d}.
 
   \item  Mathematical operators now apply to images.

   \item  Parametric estimates of relative risk 
     from fitted point process models.

   \item  Standard errors for relative risk (parametric and non-parametric).

   \item  Kernel smoothing and rose diagrams for angular data.

   \item  Perceptually uniform colour maps. 

   \item  Hierarchical interactions for multitype patterns.

   \item  Hard core parameters in all interactions no longer need
     to be specified and will be estimated from data.

   \item  Improvements to analysis of deviance and model selection.

   \item  New datasets.

   \item  New vignette, summarising all datasets installed with spatstat.

   \item  Tests and diagnostics now include a Monte Carlo option.

   \item  Faster checking of large datasets.

   \item  Faster simulations.

   \item  Code for drawing diagrams (arrows, scale bars).

 \item Likelihood cross-validation for smoothing bandwidth.

  \item Faster computations for pairwise interaction models.

  \item More flexible models of intensity in cluster/Cox processes.

  \item New generic function for smoothing.

  \item Substantial acceleration of many functions

  \item New 'logistic likelihood' method for fitting Gibbs models.

  \item Nearest neighbours for point patterns in 3D

  \item Nearest-neighbour interpolation in 2D

  \item New 'progress plots' 

  \item Hard core thresholds can be estimated automatically.

  \item More support for colour maps

  \item More support for 'fv' objects

  \item More support for pooling of envelopes.

  \item More functionality for nearest neighbours

  \item More support for 'layered' objects.

  \item Find clumps in a point pattern.

  \item Connected component interaction model.

  \item Improvements to interactive plots.

  \item Visual debugger for Metropolis-Hastings algorithm.

  \item Rounding of spatial coordinates

  \item The spatstat manual now exceeds 1000 pages.

  \item Hybrids of Gibbs point process models.

  \item Second order composite likelihood method for kppm.

  \item Inhomogeneous F, G and J functions.

  \item Delaunay graph distance

  \item Pixel images can now be displayed with a logarithmic colour map.

  \item random sequential packing
 
  \item Allard-Fraley estimator

  \item method for pooling several quadrat tests

  \item better control over dummy points in ppm

  \item nearest neighbour map 

  \item changes to subsetting of images

  \item New code for Partial Residual Plots and Added Variable Plots.

  \item maximum profile pseudolikelihood computations vastly accelerated.

  \item now possible to capture every k-th state of Metropolis-Hastings algorithm.

  \item scope of 'intensity.ppm' extended.

  \item quadrat.test can now perform Monte Carlo tests and one/two-sided tests

  \item quadrat.test can now compute the Cressie-Read test statistic

  \item improvements to 'plot.fv'

  \item improvement to 'rescale'

  \item some datasets reorganised/corrected.

  \item New approximation to the intensity of a fitted Gibbs model.

  \item Improvements to 3D summary functions.

  \item A multidimensional point pattern (ppx) can now have 'local' coordinates
   as well as spatial and temporal coordinates and marks.

  \item More support for fitted cluster models (kppm).

  \item split method for multidimensional point patterns (ppx)
   and point patterns on a linear network (lpp).

  \item Variance estimates are now available for all Gibbs point process models.

  \item Cressie-Loosmore-Ford test implemented

  \item plot.fv now avoids collisions between the legend and the graphics.

  \item Extension to predict.ppm

  \item Improvements to envelopes and multitype summary functions. 

  \item Line transects of a pixel image.

  \item Changes to defaults in Metropolis-Hastings simulations.

  \item More geometrical operations

  \item Variance-covariance matrix for Gibbs point process models.

  \item Bootstrap confidence bands for pair correlation function and K function.

  \item Nearest neighbour distance computations accelerated.

  \item Improved support for fitted point process models.

  \item Improved mechanism for handling 'invalid' point processes

  \item New functions for perfect simulation 

  \item Code for ensuring a fitted point process model is a valid point process

  \item Leverage and influence for point process models

  \item New cluster models (support for model-fitting and simulation).

  \item Fit irregular parameters in trend of point process model

  \item Third order summary statistic.

  \item Geyer's triplet interaction

  \item more functionality for replicated point patterns

  \item changed default for simulation window in point process simulation

  \item changed default for edge correction in Kcom, Gcom
 
  \item data in spatstat is now lazy-loaded

  \item Spatial Scan Test

  \item Functionality for replicated point patterns

  \item Spatial covariance functions of windows and pixel images.

  \item Area-interaction models can now be fitted in non-rectangular windows

  \item New vignette on 'Getting Started with Spatstat'

  \item Functions to pool data from several objects of the same class.

   \item Bandwidth selection for density.ppp and smooth.ppp

   \item Layered plots. 

   \item Model-handling facilities.

   \item Inverse-distance weighted smoothing.

   \item Inhomogeneous versions of neighbourhood density functions.

   \item  changes to renormalisation of estimates in Kinhom and pcfinhom

   \item  new diagnostics based on score residuals

   \item  Fitting and simulation of log-Gaussian Cox processes
       with any covariance function

   \item  More support for 'kppm' and 'rhohat' objects

   \item  Metropolis-Hastings algorithm now saves its transition history

   \item  Easier control of dummy points in ppm

   \item  Convert an 'fv' object to an R function 

   \item  marked line segment patterns can now be plotted

   \item  multitype point process models are now 'self-starting'

   \item  new functions to manipulate colour images

   \item  \texttt{superimpose} is now generic

   \item  improved mathematical labels when plotting functions

   \item   A line segment pattern can now have a data frame of marks.

   \item  Increased numerical stability.
	
   \item  New 'self-starting' feature of interpoint interactions.
	
   \item Point process model covariates may now depend on additional parameters.

   \item New class of signed measures, for residual analysis.

  \item Spatstat now has version nicknames.

   \item Improved quadrature schemes in \code{ppm}

   \item More methods for \code{intensity}

   \item Counterpart of \code{apply} for lists of images.

   \item Hexagonal grids and tessellations.

   \item Extensions to scan test and Allard-Fraley cluster set estimator

   \item Extensions and improvements to plotting functions.

   \item Improvements to labelling of \code{fv} objects.

   \item Geometrical errors in polygons are now repaired automatically.

   \item Switch all plots from colour to greyscale using a single command.

   \item Change parameters of fitted model before simulating it.

   \item Improvements to layout of printed output.
     
   \item Plots using texture fill.

   \item Changed default behaviour of perfect simulation algorithms.

   \item New syntax for point process models (\texttt{ppm}, \texttt{kppm},
     \texttt{lppm}) equivalent to syntax of \texttt{lm}, \texttt{glm}, \ldots

   \item Covariates in \texttt{ppm}, \texttt{kppm} can be tessellations.

   \item One-sided tests and envelopes of summary functions

   \item Palm likelihood method for fitting cluster processes and Cox processes.

   \item Quasi-likelihood and weighted composite likelihood methods
     for estimating trend in cluster processes and Cox processes.

   \item Further extensions to model formulas in ppm and kppm.

   \item Faster variance calculations for ppm objects.

   \item One-sided tests and one-sided envelopes of summary functions.

   \item Cramer-Von Mises and Anderson-Darling tests of spatial distribution.

   \item Cressie-Read test statistic in quadrat counting tests.

   \item Spatial cumulative distribution functions.

   \item Faster algorithm for point pattern matching.

   \item Increased support for envelopes.

   \item New generic functions \texttt{Window}, 
     \texttt{Frame} and \texttt{domain}.

   \item Directional $K$-function and directional distribution.

   \item Raster calculations accelerated.

   \item Summary functions accelerated.
     
   \item \texttt{anova} extended to Gibbs models.

   \item Improved algorithm for locally-scaled K-function.

   \item Leave-one-out calculation of fitted values in ppm objects

   \item Geometrical operations with windows and images.

   \item More edge corrections for K-function.

   \item Improved handling and plotting of 'fv' objects.

   \item Utilities for perspective views of surfaces.

 \end{itemize}
  
\section{Alphabetical list of changes}

Here is a list of all changes made to existing functions,
listed alphabetically.

   \begin{itemize}
   \item \code{adaptive.density}:  
   Now accepts \texttt{f = 0} (uniform intensity estimate) and
   \texttt{f = 1} (Voronoi intensity estimatef) as well as \texttt{0 < f < 1}.
   Algorithm accelerated.
   Now has argument 'verbose'.
  
 \item \texttt{affine}:
   Argument \texttt{vec} can be in various formats.
   
 \item \texttt{as.function.fv}:
   Now allows multiple columns to be interpolated.

  \item \texttt{alltypes}:
   Now works for \texttt{"lpp"} objects.
   New argument \texttt{reuse} determines whether all simulation envelopes
   are based on the same set of simulated patterns, or on independent sets.

  \item \texttt{allstats}:
   Result is now of class \texttt{"anylist"}.
   New argument \texttt{reuse} determines whether all simulation envelopes
   are based on the same set of simulated patterns, or on independent sets.

   \item \texttt{anova.lppm}: outdated argument \texttt{override}
     has been removed.
     
   \item \texttt{anova.ppm}: 
     Now performs the Score Test, for Poisson models only,
     if argument \texttt{test="Rao"} or \texttt{test="score"}.
     
 \item \texttt{ants}:
  The function \verb!ants.extra$plot()! has been renamed plotit() 
  for conformity with other datasets.
      The auxiliary data \texttt{ants.extra} 
      now includes a function called \texttt{side}
      determining whether a given location is in the scrub or field region.
      Can be used as a covariate in \texttt{ppm}, \texttt{kppm}, \texttt{slrm}.

  \item \texttt{applynbd}
   The arguments \texttt{N}, \texttt{R} and \texttt{criterion} 
   may now be specified together.

  \item \texttt{areaGain}, \texttt{areaLoss}
   These now handle arbitrary windows \texttt{W}.
   They are now more accurate when \texttt{r} is very small.

  \item \texttt{AreaInter}
   Point process models with the \texttt{AreaInter} interaction
   can now be fitted to point pattern data in any window.

  \item \texttt{as.box3}:
   Now accepts objects of class \texttt{ppx} or \texttt{boxx}.

  \item \texttt{as.fv}:
      Now handles objects of class \texttt{kppm} or \texttt{minconfit}.

  \item \texttt{as.im.function}:
      New argument \texttt{strict}.

  \item \texttt{as.mask}:
   Argument \texttt{eps} can now be a 2-vector, specifying x and y resolutions.

  \item \texttt{as.owin}, \texttt{as.mask}:
   \texttt{as.owin(D)} or \texttt{as.mask(D)} or \texttt{owin(mask=D)}
   will produce a binary mask window
   if \texttt{D} is a data frame with two columns of \texttt{(x,y)} coordinates
   or a data frame with three columns containing \texttt{(x,y,logical)}.

  \item {as.owin.data.frame}:
   \texttt{W} can now be a data frame with only two columns,
   giving the spatial coordinates of the pixels that are inside the window.

  \item \texttt{as.owin.ppm}, \texttt{as.owin.kppm}:
   New argument \texttt{from} allows the user to extract the spatial window
   of the point data (\texttt{from="points"}) 
   or the covariate images (\texttt{from="covariates"})

 \item \texttt{betacells}:
  This dataset has been restructured. The vector of cell profile areas,
  formerly given by \verb!betacells.extra$area!, has now been included
  as a column of marks in the point pattern \texttt{betacells}.

  \item \texttt{bw.diggle}:
    New argument \texttt{nr} controls accuracy.
   
  \item \texttt{bw.relrisk}:
   Computation in large datasets accelerated.
   New arguments \texttt{hmin}, \texttt{hmax} 
   control the range of trial values of bandwidth.

 \item \texttt{by.ppp}:
   Result is now of class \texttt{"anylist"}.

   \item \texttt{clickpoly}, \texttt{clickbox}:
   These functions now handle graphical arguments to \texttt{polygon()}
   when drawing the resulting polygon or rectangle.

  \item \texttt{clusterset}:
   The argument \code{result} has been renamed \code{what}.
   It is now possible to give multiple values to \code{what}
   so that both types of result can be computed together.

 \item \texttt{collapse.fv}:
   Is now a method for the \pkg{nlme} generic \texttt{collapse}.
   Syntax adjusted slightly.
   
 \item \texttt{colourmap}:
	The argument \texttt{col} can now be any kind of colour data
  \item \texttt{compareFit}:
   Result is now of class \texttt{"anylist"}.
   
  \item \texttt{connected}:
   \texttt{connected} is now generic, with methods for 
   \texttt{im}, \texttt{owin} and \texttt{ppp}.

 \item \texttt{contour.im}: new argument \texttt{col} can be a colour map
   (to specify different colours for each contour level).

  \item \texttt{countends}:
    New argument \texttt{toler}.

  \item \texttt{crossdist.ppp}, \texttt{crossdist.pp3}, 
    \texttt{crossdist.default}:
   New argument \texttt{squared} allows the squared distances to be computed
   (saving computation time in some applications)

 \item \texttt{crossdist.psp}: 
   The option \texttt{method="Fortran"} is no longer supported.
   The default is now \texttt{method="C"}.

 \item \texttt{crossing.psp}:
   New argument \texttt{fatal} allows the user to handle empty intersections

  \item \texttt{dclf.test}, \texttt{mad.test}:
   The argument X can now be an object produced by a previous call
   to \texttt{dclf.test} or \texttt{mad.test}.

  \item \texttt{dclf.test}, \texttt{mad.test}:
    One-sided tests can be selected by argument \texttt{alternative}.

  \item \texttt{default.dummy}:
    Can now generate dummy points as a quasirandom sequence.

  \item \texttt{default.rmhcontrol}, \texttt{default.expand}:
    \begin{itemize}
    \item 
      These functions now work with models of class \texttt{rmhmodel} 
      as well as \texttt{ppm}.
    \item New argument \texttt{w}.
    \end{itemize}
   
   \item \texttt{density.lpp}:
     \begin{itemize}
     \item 
     Now supports both the 'equal-split continuous' and 
     'equal-split discontinuous' smoothers. New argument \texttt{continuous}
     determines the choice of smoother.
   \item 
     New argument \texttt{kernel} specifies the smoothing kernel.
     Any of the standard one-dimensional smoothing kernels can be used.
     \end{itemize}
  \item \texttt{density.ppp}:
    \begin{itemize}
    \item    New argument \texttt{se} allows calculation of standard errors.
    \item    The argument \texttt{weights} can now be a matrix
      or an \code{expression}.
    \item    Numerical underflow no longer occurs when \texttt{sigma} 
      is very small and \texttt{at="points"}. A warning is no longer issued.
   \item New argument \texttt{positive} allows the user to stipulate that
     density values must be positive (avoiding numerical errors
     which occasionally produce small negative values).
    \item 
      New argument \texttt{diggle} allows choice of edge correction.
    \item 
      New argument \texttt{adjust} makes it easy to adjust 
      the smoothing bandwidth.

    \end{itemize}

   \item \texttt{diagnose.ppm}:
     \begin{itemize}
     \item 
       Now computes and prints the null standard deviation of the
       smoothed Pearson residual field, when appropriate.
     \item 
       New arguments \texttt{col.neg}, \texttt{col.smooth} control the
       colour maps.
     \end{itemize}

   \item \texttt{disc}:
     Argument \texttt{centre} can be in various formats.

   \item \texttt{distcdf}:
    Arguments W and V can now be point patterns.
   New argument \texttt{regularise} determines whether values at short distances
   will be smoothed to avoid discretisation artefacts.

  \item \texttt{distfun}:
   The internal format of objects of class \texttt{distfun} has been changed.

  \item \texttt{duplicated.ppp}, \texttt{unique.ppp}   
   New argument \texttt{rule} allows behaviour 
   to be consistent with package \texttt{deldir}.

  \item \texttt{effectfun}:
   Now has argument \texttt{se.fit} allowing calculation of standard errors
   and confidence intervals.
   Now works for \texttt{"kppm"} and \texttt{"lppm"} objects as well.
   Argument \texttt{covname} is not needed if the model has only one covariate.

   \item \texttt{Emark}: 
     Now works with multiple columns.
     
   \item \texttt{envelope}: 
     \begin{itemize}
     \item One-sided envelopes can be selected
       by new argument \texttt{alternative}.
     \item 
       All methods for \texttt{envelope} now handle \texttt{fun=NULL}.
     \item 
       New argument \texttt{envir.simul} determines the environment
       in which to evaluate the expression \texttt{simulate}.
     \item 
       Can now calculate an estimate of the true significance level
       of the "wrong" test (which declares the observed summary function
       to be significant if it lies outside the pointwise critical boundary
       anywhere). Controlled by new argument \texttt{do.pwrong}.
     \item 
       Improved plot labels for envelopes that were generated using
       the \texttt{transform} argument.
     \item
       envelope methods now have argument \texttt{use.theory} specifying whether
       to use the ``theoretical'' value of the summary function
       when constructing simultaneous envelopes.
     \item 
       envelope methods have new argument \texttt{scale} specifying a 
       scaling function for global envelopes. The resulting global envelopes
       will have non-constant width, proportional to \code{scale(r)},
       instead of constant width.
     \item \texttt{envelope.envelope}:
       New argument \texttt{transform} allows the user to apply a transformation
       to previously-computed summary functions.
     \item \texttt{envelope.envelope}:
       In \texttt{envelope(E, fun=NULL)} 
       if \texttt{E} does not contain simulated
       summary functions, but does contain simulated point patterns, 
       then \texttt{fun} now defaults to \texttt{Kest}, 
       instead of flagging an error.
     \item \texttt{envelope.lpp}:
       Now handles multitype point patterns.
     \item \texttt{envelope.ppp}, \texttt{envelope.ppm}:
       New arguments \texttt{fix.n} and \texttt{fix.marks} make it easy to
       generate simulated patterns conditional on the total number of points
       or on the number of points of each type.
     \end{itemize}


  \item \texttt{erosion}, \texttt{dilation}, \texttt{opening}, \texttt{closing}:
   If the original set is a polygon, the result is a polygon.

   \item \texttt{eval.fv}, \texttt{eval.fasp}:
   Improved behaviour when plotted.
   Evaluation is now applied only to columns that contain
   values of the function itself (rather than values of the
   derivative, hazard rate, etc). This is controlled by the
   new argument \texttt{dotonly}.
   New argument \emph{equiv} can be used to declare that two columns
   with different names in different objects are equivalent.

  \item \texttt{eval.im}:
   Images with incompatible dimensions are now resampled 
   to make them compatible (if \texttt{harmonize=TRUE}).
   When the argument \texttt{envir} is used, \texttt{eval.im} now recognises
   functions as well as variables in \texttt{envir}

 \item \texttt{exactMPLEstrauss}:
  New argument \texttt{project} determines whether the parameter gamma
  is constrained to lie in $[0,1]$.

  \item \texttt{expand.owin}:
   Functionality extended to handle all types of expansion rule.

  \item \texttt{F3est}:
   Calculation of theoretical Poisson curve (\texttt{theo}) has changed,
   and is now controlled by the argument \texttt{sphere}.

 \item \texttt{fitted.ppm}, \texttt{predict.ppm}:
   Argument \texttt{new.coef} specifies a vector of parameter values
   to replace the fitted coefficients of the model.

  \item \texttt{fryplot}:
   Now has arguments \texttt{to} and \texttt{from}, allowing 
   selection of a subset of points.

  \item \texttt{fryplot}, \texttt{frypoints}:
   These functions now handle marked point patterns properly.

  \item \texttt{Hardcore}, \texttt{StraussHard}:
   The hard core distance \texttt{hc} can now be omitted; 
   it will be estimated from data.

  \item \texttt{harmonise.fv}:
   Now discards columns with names which do not match.

 \item \texttt{identify.ppp}: now handles multivariate marks.
    
  \item \texttt{im}, \texttt{as.im}:
   The pixel coordinates in an image object are now generated
   more accurately. This avoids a numerical error in \texttt{plot.im}.

  \item \texttt{image.listof}:
   New argument \texttt{equal.ribbon} allows several images to be plotted
   with the same colour map.
   If \texttt{equal.ribbon=TRUE}, the colour ribbon will no longer be 
   displayed repeatedly for each panel, 
   but will now be plotted only once, at the right hand side of the plot array.

  \item \texttt{inside.owin}:
   Now accepts the form \texttt{list(x,y)} for the first argument.

  \item \texttt{integral.im}, \texttt{integral.msr}:
   Argument \texttt{domain} can now be a tessellation;
   the integral over each tile of the tessellation is returned.

 \item \code{intensity.ppp}:
   Now has argument \code{weights}.
   
 \item \texttt{intensity.ppm}:
  Now works for stationary point process models with the interactions
  \texttt{DiggleGratton}, \texttt{DiggleGatesStibbard}, \texttt{Fiksel}, 
  \texttt{PairPiece} and \texttt{Softcore}.

  \item \texttt{intersect.owin}, \texttt{union.owin}, \texttt{setminus.owin}:
   Formal arguments \texttt{A} and \texttt{B} have been removed.
   Arguments may be lists of windows, of class \texttt{"solist"}.
   If inputs are polygons, the result is a polygon.
   New argument \texttt{p} controls resolution of polygon clipping algorithm.

 \item \texttt{intersect.tess}:
   Result now has the same 'unitname' as the input. 
   
  \item \texttt{intersect.tess}, \texttt{dirichlet}:
   The tiles of the resulting tessellation are polygons 
   if the input was polygonal.

  \item \texttt{iplot}:
   \texttt{iplot} is now generic, with methods for 
   \texttt{ppp}, \texttt{layered} and \texttt{default}.
   \texttt{iplot} methods now support zoom and pan navigation.

   \item \texttt{Kest}:
     \begin{itemize}
     \item 
    Now includes fast algorithm for \texttt{correction="none"}
    which will handle patterns containing millions of points.
  \item 
    New option: \texttt{correction = "good"} 
    selects the best edge correction that can be computed in reasonable time.
  \item 
    Options \texttt{correction='border'} and \texttt{correction='none'}
    now run about 4 times faster, thanks to Julian Gilbey.
  \item
    New argument \texttt{rmax} controls maximum value of argument \texttt{r}.
  \item 
    New argument \texttt{ratio} determines whether the numerator and denominator
    of the estimate of the K-function will be stored. 
    This enables analysis of replicated point patterns, 
    using \texttt{pool.rat} to pool the K function estimates.
     \end{itemize}

     
  \item \texttt{Kcross}, \texttt{Kdot}, \texttt{Kmulti}:
   New argument \texttt{ratio} determines whether the numerator and denominator
   of the estimate of the multitype K-function will be stored. 
   This enables analysis of replicated point patterns, 
   using \texttt{pool.rat} to pool the K function estimates.

 \item \texttt{Kcross}, \texttt{Kdot}, \texttt{Lcross}, \texttt{Ldot}:
   New argument \texttt{from} is an alternative for \texttt{i},
   and \texttt{to} is an alternative for \texttt{j}.
   
  \item \texttt{Kinhom}
    \begin{itemize}
    \item 
     New argument \texttt{normpower} allows different types of renormalisation.
   \item 
     Now accepts \texttt{correction="good"}.
   \item 
     New argument \texttt{update}.
     If \texttt{lambda} is a fitted model (class
     \texttt{"ppm"} or \texttt{"kppm"}) and \texttt{update=TRUE},
     the model is re-fitted to the data pattern, before the intensities
     are computed.
   \end{itemize}

  \item \texttt{Kmulti}, \texttt{Gmulti}, \texttt{Jmulti}:
   The arguments \texttt{I}, \texttt{J} can now be any kind of subset index
   or can be functions that yield a subset index.

  \item \texttt{Kcom}, \texttt{Gcom}:
   New argument \texttt{conditional} gives more explicit control
   over choice of edge correction in compensator.
   Simplified defaults for edge correction.  

  \item \texttt{Kcom}, \texttt{Gcom}:
   New argument \texttt{model} makes it easier to generate
   simulation envelopes.

  \item \texttt{Kscaled}, \texttt{Lscaled}:
    Argument \texttt{lambda} can now be a fitted model object
    (class \texttt{"ppm"}).

  \item \texttt{kppm}
     \begin{itemize}
   \item 
     now accepts syntax \verb!kppm(X ~ Z)! 
     similar to \texttt{lm} and \texttt{glm},
     as well as old syntax \verb!kppm(X, ~Z)!
   \item 
     Covariates no longer have to be passed in the argument 
     \texttt{covariates} but can be objects in the {\sf R} session;
     \item 
   Now has the option of fitting models using Guan's (2006)
   second order composite likelihood.
     \item 
   Now has the option of fitting models by Palm likelihood.
 \item 
    More flexible models of the intensity, and greater control over the
    intensity fitting procedure, are now possible using the arguments
    \texttt{covfunargs}, \texttt{use.gam}, \texttt{nd}, \texttt{eps} 
    passed to \texttt{ppm}.
  \item 
    Also the argument \texttt{X} may now be a quadrature scheme.
  \item 
    Error messages from the optimising function \texttt{optim} are now trapped
    and handled.
  \item 
   Confidence intervals for the fitted trend parameters
   can now be obtained using \texttt{confint}
 \item 
   Now accepts \texttt{clusters="Cauchy"} or \texttt{clusters="VarGamma"}
   for the Neyman-Scott process with Cauchy or Variance-Gamma cluster kernel.
 \item 
    Can now fit a log-Gaussian Cox process with any covariance function implemented by the \texttt{RandomFields} package.
  \item Covariates can now be tessellations.
  \item \texttt{AIC} and \texttt{step} now work for 
    \texttt{"kppm"} objects fitted by maximum Palm likelihood.
     \end{itemize}

  \item \texttt{latest.news}:
   The text is now displayed one page at a time.
   Can now be executed by typing the name of the function without parentheses.

   \item \texttt{layered}, \code{layerplotargs}, \code{plot.layered}:
     The plotting argument can now be a list of length 1,
     which will be replicated to the correct length.  

   \item \verb!layerplotargs<-!:
     Now handles any spatial object, converting it to a \texttt{layered} object.
     
   \item \texttt{Lest}:
   Now handles theoretical variance estimates (using delta method)
   if \texttt{var.approx=TRUE}

   \item \texttt{LennardJones}
	Increased numerical stability.
	New (optional) scaling argument \texttt{sigma0}.
	Interpoint distances are automatically rescaled
	using 'self-starting' feature. 

  \item \texttt{lgcp.estK}, \texttt{Kmodel}:
   Computation can be greatly accelerated 
   by setting \texttt{spatstat.options(fastK.lgcp=TRUE)}.

 \item \texttt{linnet}: linear networks can be built using a
   sparse matrix representation to save memory.
   
  \item \texttt{logLik.ppm}:
    New argument \texttt{new.coef} allows the user to evaluate
    the likelihood for a different value of the parameter.

\item \texttt{lohboot}:
   When the result is plotted, the confidence limits are now shaded.
   New argument \texttt{global} allows global (simultaneous) confidence bands
   instead of pointwise confidence intervals.

  \item \texttt{lppm}:
    \begin{itemize}
    \item The model-fitting function \texttt{lppm} now accepts 
      a syntax similar to \texttt{lm} or \texttt{glm}, 
      for example \verb!lppm(X ~ Z)!, 
      but still accepts the older syntax \verb!lppm(X, ~Z)!.
      To support both kinds of syntax, the function \texttt{lppm}
      is now generic, 
      with methods for the classes \texttt{formula} and
      \texttt{lppp}.
      The \texttt{formula} method handles a syntax like
      \verb!lppm(X ~ Z)! while the
      \texttt{lpp} method handles the old syntax \verb!lppm(X, ~Z)!.
    \item 
      Covariates no longer have to be passed in the argument 
      \texttt{covariates}:
      variable names appearing in the model formula can simply be the names
      of objects in the {\sf R} session.
    \item New arguments \texttt{eps} and \texttt{nd} control 
      the quadrature scheme.
    \item 
      Stepwise model selection using \texttt{step} now works 
      for \texttt{lppm} objects.       
    \end{itemize}

  \item \texttt{lurking}:   
    Now returns an object of class \texttt{"lurk"} which has a plot method.
    Two-standard-deviation limits are now plotted using grey shading.

  \item \texttt{markcorr}:
    \begin{itemize}
    \item   Result is now of class \texttt{"anylist"}.
    \item New argument \texttt{weights}
      allows computation of the weighted version
      of the mark correlation function.
    \end{itemize}

  \item \texttt{markstat}:
   The arguments \texttt{N} and \texttt{R} may now be specified together.

  \item \texttt{marktable}:
   New argument \texttt{N} for studying the N nearest neighbours.   
   New argument \texttt{collapse} for manipulating the contingency table.

  \item \texttt{marks.ppp}, \verb!marks<-.ppp!:
    New argument \texttt{drop} determines whether a 
    data frame of marks with only one column will be
    converted to a vector.

  \item \texttt{model.depends}:
   Now also recognises 'offset' terms.

  \item \texttt{mppm}:
    \begin{itemize}
    \item Now handles models with a random effect component.
      New argument \texttt{random} is a formula specifying the random effect.
       \end{itemize}
   
     \item \texttt{MultiStrauss}, \texttt{MultiHard}, \texttt{MultiStraussHard}:
     \begin{itemize}
     \item 
      The argument \texttt{types} can now be omitted or NULL;
      it will be inferred from the point pattern data.
    \item 
      The ordering of the arguments has changed. 
      (The old syntax will still work.)
    \item Zero values in the interaction radii are now treated as \texttt{NA}.
    \item Improved handling of missing arguments.
    \item Printed output now respects options('width').
     \end{itemize}

 \item \texttt{nbfires}:
  For conformity with other datasets, there is now an object 
  \texttt{nbfires.extra}.

    \item \texttt{nnclean}:
   Extra arguments are now passed to hist.default.
   The result now has attributes which give the fitted parameter values,
   information about the fitting procedure, and the histogram bar heights.
   
   \item \texttt{nncorr}, \texttt{nnmean}, \texttt{nnvario}:
   New argument \texttt{k} specifies $k$-th nearest neighbour.

  \item \texttt{nncross}:
   This function is now generic, with methods for \texttt{ppp} 
   and \texttt{default}.
   \texttt{nncross.ppp} can now find the $k$-th nearest neighbours, for any $k$.
   New arguments added to control the return value and the sorting of data.

  \item \texttt{nndist}, \texttt{nnwhich}:
   New argument \texttt{by} makes it possible to find nearest neighbours
   belonging to specified subsets in a point pattern, for example,
   the nearest neighbour of each type in a multitype point pattern.

 \item \texttt{nndist.psp}: 
   The option \texttt{method="Fortran"} is no longer supported.
   The default is now \texttt{method="C"}.

  \item \texttt{nncorr}, \texttt{nnmean}, \texttt{nnvario}:
   These functions now handle data frames of marks.


 \item \texttt{owin}: 
   Polygon data are no longer subjected to strict checks on their
   geometrical validity (self-intersections, overlaps, etc).
   Instead, geometrical inconsistencies in polygon data are automatically 
   repaired. 

  \item \texttt{owin}:
   \texttt{owin(mask=D)} or \texttt{as.owin(D)} or \texttt{as.mask(D)}
   will produce a binary mask window
   if \texttt{D} is a data frame with two columns of \texttt{(x,y)} coordinates
   or a data frame with three columns containing \texttt{(x,y,logical)}.
   
  \item pairwise interaction Gibbs models:
   Many calculations for these models have been accelerated.

 \item \texttt{pairdist.psp}: 
   The option \texttt{method="Fortran"} is no longer supported.
   The default is now \texttt{method="C"}.
   
\item \texttt{pcf.ppp}:
   New argument \texttt{domain} allows the computation to be 
   restricted to a subset of the window.
   
\item \texttt{pcf.ppp}, \texttt{pcfinhom}:
   New argument \texttt{divisor} enables better performance of the estimator
   of pair correlation function for distances close to zero.
   
  \item \texttt{pcfcross, pcfdot}:
   Algorithms have been reimplemented using a single-pass kernel smoother
   and now run much faster. Bandwidth selection rule improved.

  \item \texttt{pcfinhom}:
     Now performs renormalisation of estimate. 
     Default behaviour changed - estimates are now renormalised by default.

   \item \texttt{persp.im}:
     \begin{itemize}
     \item 
	The \texttt{colmap} argument can now be a \texttt{colourmap} object.
      \item 
        Option to draw a grey apron around the sides of the perspective plot.
      \item 
        The surface heights and colours can be controlled by
        two different pixel images.
      \item 
        Option to compute which pixels are visible in the perspective view
        and which are obscured.
      \item Now obeys \texttt{spatstat.options("unitname")}.
      \end{itemize}

  \item  pixel images and grids:
      The default size of a pixel grid, given by 
      \texttt{spatstat.options("npixel")},
      has been changed from 100 to 128. A power of 2 gives faster
      and more accurate results in many cases.

  \item \texttt{pixellate.psp}:
    Can now count the number of segments that intersect each pixel,
    instead of the total length of intersection.
    
  \item 
    \texttt{plot.fasp}, 
    \texttt{plot.fv}, 
    \texttt{plot.im}, 
    \texttt{plot.ppp}, 
    \texttt{plot.owin}, 
    \texttt{plot.im}:
    Can be switched from colour to greyscale by setting
    \texttt{spatstat.options(monochrome=TRUE)}.
    
  \item \texttt{plot.colourmap}:
   Now passes arguments to \texttt{axis} to control the plot.
   Appearance of plot improved.

   \item \texttt{plot.envelope}:
    	If the upper envelope is NA but the lower envelope is finite,
	the upper limit is now treated as +Infinity

\item \texttt{plot.hyperframe}: 
   The argument \texttt{e} now has a different format.
   Instead of \texttt{plot(h, plot(XYZ))}
   one must now type \texttt{plot(h, quote(plot(XYZ)))}
   This is necessary in order to avoid problems with 'S4 method dispatch'

  \item \texttt{plot.fasp}:
   New argument \texttt{samey} controls whether all panels 
   have the same $y$ limits.
   Changed default value of \texttt{samex}.

 \item \texttt{plot.fii}:
  Increased resolution of the plot obtained from 
  \texttt{plot(fitin(ppm(...)))} 

  \item \texttt{plot.fv}:
    \begin{itemize}
    \item 
   Improved collision-avoidance algorithm
   (for avoiding overlaps between curves and legend).
 \item 
   Labelling of plots has been improved in some cases.
 \item 
   New argument \texttt{log} allows plotting on logarithmic axes.
 \item 
   The formula can now include the symbols \texttt{.x} and \texttt{.y}
   as abbreviation for the function argument and the 
   recommended function value, respectively.
 \item 
   New argument \texttt{add}
 \item 
      Argument \texttt{legendmath} now defaults to TRUE.
    \item 
      New argument \texttt{legendargs} gives more control 
      over appearance of legend.
    \item 
      Increased default spacing between lines in legend.
    \item 
      Improved handling of argument \code{shade}.
    \end{itemize}

  \item \texttt{plot.fv}, \texttt{plot.envelope}:
   New argument \texttt{limitsonly} allows calculation of 
   a common x,y scale for several plots.

  \item \texttt{plot.im}:
    \begin{itemize}
    \item 
     Now handles many arguments recognised by plot.default
     such as \texttt{cex.main}. Also handles argument \texttt{box}.
   \item 
     New argument \texttt{ribargs} contains parameters controlling the
     ribbon plot only.
   \item 
     Now returns the colour map used.
   \item 
     Argument \texttt{col} can now be a function.
   \item 
     New argument \texttt{log} allows colour map 
     to be equally spaced on a log scale.
   \item 
    The colour ribbon can now be placed left, right, top or bottom 
    using new argument \texttt{ribside}.
  \item 
      Can now plot images whose pixel values are strings representing colours.
      New argument \texttt{valuesAreColours}
    \item  
      New arguments \code{add}, \code{do.plot}, \texttt{clipwin}.
    \item 
      More arguments recognised by \code{ribargs}
    \end{itemize}
  
  \item \texttt{plot.cdftest}:
   Can now perform P-P and Q-Q plots as well.

   \item \texttt{plot.imlist}:
    New argument \texttt{plotcommand} specifies how to plot each image.
    
   \item \texttt{plot.layered}:
     New arguments \code{add}, \code{main}.  
     Better argument handling.
     
  \item \texttt{plot.listof},\texttt{ plot.splitppp}, \texttt{contour.listof}, 
    \texttt{image.listof}:
    \begin{itemize}
    \item  
      Default behaviour has changed: panels are now plotted on different scales.
    \item 
      When \code{equal.scales=TRUE} the panels are plotted on
      exactly equal scales and are exactly aligned (under certain conditions).
    \item
      The arguments \texttt{panel.begin} and \texttt{panel.end} 
      can now be objects such as windows.
    \item 
      New arguments \texttt{hsep, vsep} allow increased spacing between plots
      without adding white space around the outer margin.
    \item 
      Argument \texttt{mar.panel} may have length 1, 2 or 4.
    \end{itemize}

  \item \texttt{plot.lpp}: New arguments.
    Automatically plots a legend.
    
  \item \texttt{plot.owin}:
    \begin{itemize}
    \item    Polygons with holes can now be plotted with filled colours
      on any device.
    \item The window can now be filled with one of 8 different textures.
    \end{itemize}
   
  \item \texttt{plot.ppp}:
    \begin{itemize}
    \item 
      Automatically plots a legend
    \item 
      Return value is now a graphics map object
    \item   
      The default colour for the points is now a transparent grey,
      if this is supported by the plot device.
    \item 
      Now behaves differently if there are multiple columns of marks.
      Each column of marks is plotted, in a series of separate plots
      arranged side-by-side.
    \item 
      An `empty' plot can now be generated by setting \texttt{type="n"}.
    \item 
      New arguments \code{show.window}, \code{show.all}, \texttt{do.plot},
      \texttt{clipwin}
   \end{itemize}

   \item \texttt{plot.psp}:
      Now handles marked line segment patterns 
      and plots the marks as colours.

  \item \code{plot.scan.test}, \code{as.im.scan.test}:
   These functions can now give the optimal value of circle radius \code{r}.

   \item \code{plot.tess}:
   For a tessellation represented by a pixel image, 
   \code{plot.tess} no longer treats the pixel labels as palette colours.
   New argument \texttt{do.plot}. 
   
   \item \code{plot.ppp}, \code{plot.owin}, \code{plot.im}, \code{plot.psp},
     \code{plot.tess}, \code{plot.layered}:
     New universal argument \code{show.all} determines what happens
   when a plot is added to an existing plot. If \code{show.all = TRUE}
   then everything is plotted, including the main title and colour ribbon.
 
   \item \code{plot.quadratcount}, \code{plot.quadrattest}:
   These functions have now been documented.

   \item \texttt{print.fv}: improved layout.
     
 \item \texttt{pool.envelope}:
   New arguments \texttt{savefuns} and \texttt{savepatterns}.
   Envelopes generated with \texttt{VARIANCE=TRUE} can now be pooled.
   The plot settings of the input data are now respected.

  \item \texttt{ppm}:
    \begin{itemize}
    \item 
      The model-fitting function \texttt{ppm} now accepts 
      a syntax similar to \texttt{lm} or \texttt{glm}, 
      for example \verb!ppm(X ~ Z)!, 
      but still accepts the older syntax \verb!ppm(X, ~Z)!.
      To support both kinds of syntax, the function \texttt{ppm}
      is now generic, 
      with methods for the classes \texttt{formula}, 
      \texttt{ppp} and \texttt{quad}. 
      The \texttt{formula} method handles a syntax like
      \verb!ppm(X ~ Z)! while the
      \texttt{ppp} method handles the old syntax \verb!ppm(X, ~Z)!.
    \item 
      Covariates no longer have to be passed in the argument 
      \texttt{covariates}:
      variable names appearing in the model formula can simply be the names
      of objects in the {\sf R} session.
   \item 
     A command like \verb!ppm(X ~ . , data=df)! 
     will fit the additive model involving all the covariates in 
     \texttt{data}.
   \item New argument \texttt{subset} makes it possible to fit the
     model in a subset of the spatial domain defined by an expression.
    \item 
   Can now fit models with 'hybrid' interactions.
 \item 
   New option: \texttt{method = "logi"} for the 'logistic likelihood' method.
 \item 
   New option: \texttt{method = "VBlogi"} for variational Bayes method.
 \item 
   New argument \texttt{nd} controls the number of dummy points.
 \item 
   New argument \texttt{eps} determines the spacing between dummy points.
   (also works for related functions \texttt{quadscheme}, 
   \texttt{default.dummy}, ...)
  \item 
    The default quadrature scheme for a point pattern
   has been improved (in the case of a non-rectangular window)
   to remove a possible source of bias.
 \item Improved calculation of Dirichlet weights.
 \item 
   Confidence intervals for the fitted trend parameters
   can now be obtained using \texttt{confint} .
 \item 
   New argument \texttt{project} determines whether the fitted model
   is forced to be a valid point process.
 \item 
        Interaction objects may now be 'self-starting'
    	i.e. initial parameter estimates can be computed
	from the point pattern dataset.
      \item 
   The spatial trend can now depend on additional parameters.
   This is done by allowing spatial covariate functions
   to have additional parameters: \texttt{function(x, y, ...)}
   where \texttt{...} is controlled by the new argument \texttt{covfunargs}
   to \texttt{ppm}.
 \item 
     The print and summary methods for \texttt{ppm} objects 
     now show standard errors for parameter estimates
     if the model is Poisson.
   \item Covariates can now be tessellations.
    \item
      New argument \texttt{emend} equivalent to \texttt{project}.
 \end{itemize}


\item \texttt{ppp}: 
    New argument \texttt{drop} determines whether a 
    data frame of marks with only one column will be
    converted to a vector.

  \item \texttt{ppx}:
   Arguments have changed.
   An object of class \texttt{ppx} may now include 'local' coordinates 
   as well as 'spatial' and 'temporal' coordinates, and marks.

  \item \texttt{predict.ppm}:
    \begin{itemize}
      \item
        Can now calculate the conditional intensity of a model
        relative to any point pattern \texttt{X} 
        (not just the original data pattern).
      \item 
        New argument \texttt{correction} allows choice of edge correction
        when calculating the conditional intensity.
      \item 
        New argument \texttt{interval} allows confidence intervals
        or prediction intervals
        to be calculated.
      \item 
        New argument \texttt{total} allows for prediction of the
        total number of points
        in a specified region.
      \end{itemize}

  \item \texttt{predict.slrm}:
   New argument \texttt{window} 

  \item \texttt{print.mppm}:
    Now respects \verb!options('width')! and 
    \verb!spatstat.options('terse')!.
    
   \item \texttt{print.ppp}, \texttt{print.summary.ppp}, 
     \texttt{print.owin}, \texttt{print.summary.owin},
     \texttt{print.im}, \texttt{print.summary.im}, \texttt{print.fv},
     \texttt{print.msr}:
   These functions now avoid over-running the text margin
   (i.e.\ they respect \texttt{options('width')} where possible).
   
  \item \texttt{print.ppp}, \texttt{summary.ppp}:
   If the point pattern x was generated by Metropolis-Hastings
   simulation using \texttt{rmh}, then \texttt{print(x)} and 
   \texttt{summary(x)} show 
   information about the simulation parameters.

  \item \texttt{print.ppm}:
   Standard errors for the parameter estimates,
   and confidence intervals for the parameters,
   can now be printed for all Gibbs models 
   (but are printed only for Poisson models by default).
   Now has argument \texttt{what}
   to allow only selected information to be printed.

  \item \texttt{print.summary.ppm}:
   Output gives a more precise description of the fitting method.

 \item \texttt{profilepl}:
   Accelerated (typically by a factor of 5).
   Does not generate warnings when some of the candidate models
   have zero likelihood - for example when fitting model with a hard core.
   Can now maximise over trend parameters as well as interaction parameters

  \item \texttt{progressreport}:
    \begin{itemize}
    \item 
      Improved output (also affects many functions which print progress reports)
    \item 
      New argument \texttt{state}
    \item 
      New option: \texttt{style="tk"}
    \end{itemize}

  \item \texttt{project.ppm}:
     Improved algorithm.
     Now handles terms in the trend formula as well as the interaction.
     The projected point process is now obtained by re-fitting the model,
     and is guaranteed to be the maximum pseudolikelihood fit.

   \item \texttt{psp}: 
        A line segment pattern (object of class 'psp') can now have a 
	data frame of marks. 

  \item \texttt{psst}, \texttt{psstA}, \texttt{psstG}:
   New argument \texttt{model} makes it easier to generate
   simulation envelopes.

 \item \texttt{psst}:
   Argument \texttt{funcorrection} changed to 
   \texttt{funargs} allowing greater flexibility.

  \item \texttt{quad.ppm}: Now accepts \texttt{kppm} objects.
    New argument \texttt{clip}.

  \item \texttt{quadscheme}: 
    Can now generate dummy points from a quasirandom sequence.

  \item \texttt{quadratcount}:
  Argument \texttt{tess} can now be anything acceptable to as.tess.
    
  \item \texttt{quadrat.test.splitppp}:
   The result is now a single object of class \texttt{quadrattest}
   
  \item \texttt{quadrat.test.ppp}, \texttt{quadrat.test.quadratcount}:
   New argument \texttt{lambda} supports a test of the Poisson process 
   with given intensity \texttt{lambda}.

   \item \texttt{quadrat.test}:
     Can now compute the Cressie-Read test statistic $2nI^\lambda$
     instead of the Pearson $X^2$ statistic.
     
   \item \texttt{quadrat.test}:
       Can now perform Monte Carlo test as well 
       (for use in small samples where the $\chi^2$ approximation is inaccurate)
        New argument \texttt{alternative} 
        allows choice of alternative hypothesis
        and returns one-sided or two-sided $p$-values as appropriate.
	The print method for \texttt{quadrattest} objects
	now displays information about the quadrats.

   \item \texttt{quadrats}:
     Result has the same unitname as the input.
     

   \item \texttt{quantile.ewcdf}:
     New argument \texttt{type} controls the type of quantile.
     
  \item \texttt{raster.x}, \texttt{raster.y}, \texttt{raster.xy}:
   These functions have a new argument \texttt{drop}.
   They can now handle images as well as masks.

  \item \texttt{rDiggleGratton}, \texttt{rDGS}, \texttt{rHardcore},
        \texttt{rStrauss}, \texttt{rStraussHard}:
        By default the point pattern is now generated on
	a larger window, and trimmed to the original window.
	New argument \texttt{expand=TRUE}.
        
  \item \texttt{redwoodfull} (Full redwood data):
    The function \verb!redwoodfull.extra$plot()! has been renamed 
    \texttt{plotit} 
    for conformity with other datasets, and improved.

  \item \texttt{relrisk}:
    \begin{itemize}
    \item 
       This function is now generic, with methods for 
       point patterns and point process models.
     \item 
       New argument \texttt{casecontrol} determines whether a bivariate
       point pattern should be treated as case-control data.
     \item 
       New arguments \texttt{case} and \texttt{control} allow
       the user to specify which mark values
       corresponds to the cases or the controls, in a case-control dataset.
     \item 
       New argument \code{relative} determines whether to compute
       probabilities or relative risks.
    \end{itemize}
       
 \item \texttt{rescale}:
   \begin{itemize}
   \item 
  If scale argument \texttt{s} is missing, then the data are rescaled
  to native units. For example if the current unit is 0.1 metres, 
  coordinates will be re-expressed in metres.
\item New argument \texttt{unitname} makes it possible to change the name of
  the unit of length.
   \end{itemize}

  \item \texttt{residuals.ppm}:
       New arguments \texttt{new.coef} and \texttt{quad} for advanced use
       (make it possible to compute residuals from a
        modified version of the fitted model.)
    	The value returned by \texttt{residuals.ppm} is now an object 
	of class \texttt{msr}. It can be plotted directly.
        
       \item \texttt{rgb2hex}:
         New argument \texttt{maxColorValue}.
         
      \item \texttt{rgb2hex}, \texttt{col2hex}, \texttt{paletteindex},
        \texttt{is.colour}, \texttt{samecolour}, \texttt{complementarycolour},
        \texttt{is.grey}, \texttt{to.grey}:
        Now handle transparent colours.
        
      \item \texttt{rgbim}, \texttt{hsvim}:
        new argument \texttt{A} controls the alpha (transparency) channel.
        
   \item \texttt{rhohat}:
      Now has arguments \texttt{eps}, \texttt{dimyx} 
      to control pixel resolution.
      If \texttt{covariate = "x"} or \texttt{"y"}, 
      the resulting object has the same
      \texttt{unitname} as the original point pattern data.
      Estimation can now be performed using local likelihood fitting
      with the \texttt{locfit} package, or using kernel smoothing.

  \item \texttt{rlabel}:
   Now works for \texttt{lpp}, \texttt{pp3}, \texttt{ppx} objects.

  \item \texttt{rlinegrid}, \texttt{rpoisline}:
    These functions now handle binary mask windows.
    
  \item \texttt{rmh}:
      If \texttt{track=TRUE}, 
      the history of transitions of the Metropolis-Hastings
      algorithm is saved and returned.

  \item \texttt{rmh}, \texttt{rmhstart}:
   The initial state ('\texttt{start}') can now be missing or null.

 \item \texttt{rmh}, \texttt{rmhcontrol}:
  It is now possible to save every $k$-th iteration of the Metropolis-Hastings
  algorithm. The arguments \texttt{nsave} and \texttt{nburn} 
  may be given to \texttt{rmh} or to \texttt{rmhcontrol}. 
  They specify that the point pattern will be saved
  every \texttt{nsave} iterations, after an initial burn-in of 
  \texttt{nburn} iterations.

  \item \texttt{rmh.default}:
   New argument \texttt{snoop} allows the user to activate a visual debugger
   for the Metropolis-Hastings algorithm.

 \item \texttt{rmh.default}:
  \texttt{track} is no longer a formal argument of \texttt{rmh.default}; 
  it is now a parameter of \texttt{rmhcontrol}. 
  However there is no change in usage: 
  the argument \texttt{track} can still be given to \texttt{rmh.default}.

  \item \texttt{rmh.ppm}, \texttt{simulate.ppm}, \texttt{default.expand}:
   For point process models which have a trend depending only on x and y,
   the simulation window is now taken to be the same as the original 
   window containing the data (by default). 
   That is, `expansion' does not take place, by default.
   (In previous versions of spatstat the simulation window was larger
   than the original data window.)
   
  \item \texttt{rmh.ppm}, \texttt{simulate.ppm}:
   The argument sequence for these functions has changed.
   New argument \texttt{expand} allows more explicit control 
   over simulation domain.

  \item \texttt{rmh.ppm}, \texttt{simulate.ppm}, \texttt{rmhmodel.ppm}:
    New argument \texttt{new.coef} allows the user to change the 
    parameters of a fitted model before it is simulated.
   
  \item \texttt{rmhcontrol}:
   The default value of the parameters \texttt{periodic} and \texttt{expand}
   has changed.

  \item \texttt{rmhcontrol}:
   The parameter \texttt{expand} can now be in any format 
   acceptable to \texttt{rmhexpand}.

  \item \texttt{rmh.ppm}, \texttt{rmh.default}, \texttt{simulate.ppm}:
   Any \texttt{rmhcontrol} parameter can now be given directly 
   as an argument to \texttt{rmh.ppm}, \texttt{rmh.default} or 
   \texttt{simulate.ppm}.

  \item \texttt{rNeymanScott}:
   Argument \texttt{rcluster} may now take a different format.

   \item \texttt{rLGCP}:
     \begin{itemize}
     \item 
       No longer requires \pkg{RandomFields} to be loaded explicitly.
     \item 
     New argument \texttt{nsim} allows multiple patterns to be generated.
   \end{itemize}



   \item \texttt{rotate}: 
     The user can specify the centre of rotation.

   \item \texttt{rotate.owin}, \texttt{affine.owin}:
       These functions now handle binary pixel masks.
       New argument \texttt{rescue} determines whether 
       rectangles will be preserved.

   \item \texttt{rpoislinetess}:
     Return value now has an attribute \texttt{lines} giving the 
     realisation of the Poisson line process.

   \item \texttt{rpoispp}:
     \begin{itemize}
     \item 
    New argument \texttt{ex} makes it possible to generate a random pattern
    similar to an example point pattern.
  \item Accelerated when \texttt{lambda} is an image.
     \end{itemize}

  \item \texttt{rSSI}:
   Performs 'Random Sequential Packing' if \texttt{n=Inf}.
   Can now generate inhomogeneous patterns.

   \item \texttt{rthin}:
     Accelerated when \texttt{P} is a single number.
     
   \item \texttt{rThomas}, \texttt{rMatClust}, 
     \texttt{rCauchy}, \texttt{rVarGamma}:
   When the model is approximately Poisson, it is simulated using 
   \texttt{rpoispp}. 
   This avoids computations which would require huge amounts of memory. 
   New argument \texttt{poisthresh} controls this behaviour.

   \item \texttt{runifpoint}:
    New argument \texttt{ex} makes it possible to generate a random pattern
    similar to an example point pattern.

  \item \texttt{runifpointOnLines}, \texttt{rpoisppOnLines}, 
    \texttt{runiflpp}, \texttt{rpoislpp}:
   Can now generate multitype point patterns.

  \item \texttt{rVarGamma}, \texttt{kppm}, \texttt{vargamma.estK}, 
    \texttt{vargamma.estpcf}:
   New argument \texttt{nu.pcf} provides an alternative way to specify
   the kernel shape in the VarGamma model, instead of the existing
   argument \texttt{nu.ker}. Function calls that use the ambiguous argument
   name \texttt{nu} will no longer be accepted.

  \item \texttt{rVarGamma}: Accelerated.
    
  \item second order summary functions
   (\texttt{Kest}, \texttt{Lest}, \texttt{Kinhom}, \texttt{pcf.ppp}, 
   \texttt{Kdot}, \texttt{Kcross}, \texttt{Ldot} etc etc)
   These functions now accept \texttt{correction="translation"} as an 
   alternative to \texttt{correction = "translate"}, for consistency.

 \item \code{scan.test}:
   Now handles multiple values of circle radius 'r'.

 \item \texttt{setcov}:
   Can now compute the `cross-covariance' between two regions

 \item \texttt{shift}:
   Argument \texttt{vec} can be in various formats.
   
 \item \texttt{simulate.ppm}:
   \begin{itemize}
   \item 
     New argument \texttt{singlerun} determines whether the simulated patterns
     are generated using independent runs of the Metropolis-Hastings algorithm
     or are obtained by performing one long run of the algorithm and saving
     every k-th iteration.
   \item 
     New argument \texttt{w} controls the window of the simulated patterns.
   \end{itemize}

  \item \texttt{simulate.ppm}, \texttt{simulate.kppm}:
   The total computation time is also returned.

  \item \texttt{simulate.kppm}:
   Now catches errors (such as 'insufficient memory').

  \item \texttt{slrm}:
   Confidence intervals for the fitted trend parameters
   can now be obtained using \texttt{confint} 
   
  \item \texttt{smooth.fv}:
   Further options added.

  \item \texttt{smooth.ppp}:
   Accelerated, when there are several columns of marks.
   Bandwidth \texttt{sigma} is now selected by least-squares cross-validation.

  \item \texttt{smooth.ppp}:
   Now handles bandwidths equal to zero (by invoking \texttt{nnmark})

   \item \texttt{smooth.ppp}, \texttt{smooth.fv}, \texttt{smooth.msr}:
    These functions are now 'Deprecated' in favour of
    the methods \texttt{Smooth.ppp}, \texttt{Smooth.fv}, 
    \texttt{Smooth.msr} respectively.

    \item \texttt{Smooth.ppp}: 
      \code{sigma} is now a formal argument of \code{Smooth.ppp}
      
 \item \texttt{Softcore}:
  Improved numerical stability.
  New argument \texttt{sigma0} for manual control over rescaling.

  \item \texttt{solutionset}:
    The expression will be evaluated using pixel arithmetic (Math.im)
   if it cannot be evaluated using \texttt{eval.im}. 
   
  \item \texttt{spatstat.options}:
    \begin{itemize}
    \item New options \texttt{fastthin} and \texttt{fastpois}.
    \item New option \texttt{nvoxel}.
    \item New option \texttt{print.ppm.SE} controls whether standard errors 
   and confidence intervals are printed for all Gibbs models,
   for Poisson models only, or are never printed.
 \item 
   New option \texttt{project.fast} allows a faster shortcut for \texttt{project.ppm}.
 \item 
     New options \texttt{rmh.p}, \texttt{rmh.q}, \texttt{rmh.nrep} 
     determine the default values
     of the parameters \texttt{p}, \texttt{q} and \texttt{nrep} 
     of the Metropolis-Hastings algorithm.
     See \texttt{rmhcontrol}.
   \item 
     New parameter \texttt{n.bandwidth}
   \item New parameter \texttt{monochrome} switches all plots
     from colour to greyscale.
    \end{itemize}

 \item \verb!split<-.ppp!: 
   Preserves the original ordering of the data, if possible.
   
 \item \texttt{split.ppp}: 
   \begin{itemize}
   \item The splitting variable \texttt{f} can now be a logical vector.
   \item 
   New argument \texttt{reduce}.
   \item
   Result now inherits class \texttt{"ppplist"} and \texttt{"solist"}, 
   as well as \texttt{"splitppp"}.
   \end{itemize}
   
 \item \texttt{split.ppx}:   Result is now of class 'anylist'.
   
 \item \texttt{square}
  Now accepts vectors of length 2.

  \item \texttt{str}
   This generic function (for inspecting the internal structure of an object)
   now produces sensible output for objects of class 
   \texttt{hyperframe}, \texttt{ppx}, \texttt{lpp}.

   \item \texttt{stratrand}, \texttt{overlap.owin}, 
     \texttt{update.slrm}, \texttt{edge.Trans}, \texttt{edge.Ripley}:
    These already-existing functions are now documented.

  \item \texttt{summary.mppm}:
    Now respects \verb!options('width')! and 
    \verb!spatstat.options('terse')!.
    
  \item \texttt{summary.ppm}:
   Now reports whether the spatial coordinates have been rounded.
   Improved behaviour when the model covariates are a data frame.

   \item \texttt{superimpose}:
   Now handles lists of point patterns 
   (objects of class \texttt{"ppplist"} or \texttt{"splitppp"})
   
   \item \texttt{superimposePSP}: 
      This function is now deprecated in favour of \texttt{superimpose}

   \item \texttt{superimpose}:
      Now handles data frames of marks.

   \item \texttt{tess}:
    New argument \texttt{unitname} specifies the name of the unit of length.
    If it is missing, unitname information will be extracted from the
    other data.
    
   \item \texttt{to.grey}:
     \begin{itemize}
     \item 
        Now uses better weights for the \texttt{R, G, B} channels. 
     \item 
        New argument \texttt{transparent}.
     \end{itemize}
     
  \item \texttt{union.owin}:
   It is now guaranteed that if \texttt{A} is a subset of \texttt{B}, 
   then \texttt{union.owin(A,B)=B}.
   Now handles a single argument: \texttt{union.owin(A)} returns \texttt{A}.

 \item \texttt{update.kppm}: Now handles additional arguments in any order, 
   with or without names. Changed arguments. Improved behaviour. 

   \item \code{varblock}:
      Ugly legends have been repaired.
      
  \item \texttt{vcov.ppm}:
   This function now handles all Gibbs point process models.
   New argument \texttt{matrix.action} controls what happens when
   the matrix is ill-conditioned.

  \item \texttt{vcov.slrm}:
   Can now calculate correlation matrix or Fisher information matrix
   as well as variance-covariance matrix.

   \item \texttt{Vmark}: 
     Now works with multiple columns.
     
  \item \texttt{with.fv}:
   Argument \texttt{drop} replaced by new argument \texttt{fun}
   (with different interpretation).
   New argument \texttt{enclos} allows evaluation in other environments.

 \item \verb![.fv!
   Now handles the argument 'drop'.
   Improved behaviour when plotted.

  \item \verb![.hyperframe!: 
    When a row of data is extracted with \texttt{drop=TRUE}, the result
   belongs to class \texttt{"anylist"}.

  \item \verb![.im!
   Default behaviour changed in the case of a rectangular subset.
   New argument 'rescue' can be set to TRUE to reinstate previous behaviour.

  \item \verb![.im! and \verb![<-.im!
   New argument 'j' allows any type of matrix indexing to be used.

  \item \verb![<-.im!
    Accepts an array for \texttt{value}.

  \item \verb![.lpp!
   Subset index may now be a window (class 'owin')

  \item \verb![.msr!
   Now handles character-valued indices. 

  \item \verb![.ppp!
    New argument \texttt{clip} determines whether the window is clipped.
    The previously-unused argument \texttt{drop} now determines whether 
   to remove unused levels of a factor.
   
  \item \verb![.pp3!, \verb![.lpp!, \verb![.ppx!, 
    \texttt{subset.ppp}, \texttt{subset.pp3}, \texttt{subset.lpp}, 
    \texttt{subset.ppx}:
   These methods now have an argument \texttt{drop} which determines
   whether to remove unused levels of a factor.

 \item \verb![.psp!
   Now handles binary mask windows.

  \item \verb![.tess!
    Subset index can now be a window.

 \end{itemize}

\section{Serious Bugs Fixed}

<<echo=FALSE,results=hide>>=
nbugs <- nrow(news(grepl("^BUG", Category), 
                   package="spatstat"))
nbugssince <- nrow(news(Version > "1.21-2" & grepl("^BUG", Category), 
                   package="spatstat"))
@ 

Hundreds of bugs have been detected and fixed in \spst\ 
since the version covered by the workshop notes \cite{badd10wshop}. 
Bugs that may have affected the user are listed in the 
package \texttt{NEWS} file. To read all these bug reports, type
<<eval=FALSE>>=
news(grepl("^BUG", Category), package="spatstat")
@ 
which currently produces a list of \Sexpr{nbugs} bugs,
of which \Sexpr{nbugssince} were detected after publication of the
workshop notes.

Following is a list of the {\bf most serious bugs} only, in order
of potential impact.

\newcommand\bugger[4]{%
  \\  {} %
  {\small (Bug introduced in \texttt{spatstat {#1}}, {#2}; %
    fixed in \texttt{spatstat {#3}}, {#4})}%
}
  
\begin{itemize}
\item \texttt{nncross.ppp}:

  Results were completely incorrect if $k > 1$.
  \bugger{1.31-2}{april 2013}{1.35-0}{december 2013}

\item \texttt{nncross.pp3}:
  Results were completely incorrect in some cases.
  \bugger{1.32-0}{august 2013}{1.34-0}{october 2013}

\item \texttt{rmh}:
  
   \begin{itemize}
   \item Simulation was completely incorrect in the case of 
     a multitype point process with an interaction that does not depend
     on the marks, such as \verb!ppm(betacells, ~marks, Strauss(60))!
     due to a coding error in the \texttt{C} interface.
     \bugger{1.22-3}{march 2010}{1.22-3}{june 2011}
   \item 
     Simulation of the Area-Interaction model was completely incorrect.
     \bugger{1.23-6}{october 2011}{1.31-0}{january 2013}
   \item 
     Simulation of the Geyer saturation process was completely incorrect.
     \bugger{1.31-0}{january 2013}{1.31-1}{march 2013}
   \item 
     Simulation of the Strauss-Hard Core process was partially incorrect,
     giving point patterns with a slightly lower intensity.
     \bugger{1.31-0}{january 2013}{1.37-0}{may 2014}
   \item
   The result of simulating a model with a hard core
   did not necessarily respect the hard core constraint,
   and simulation of a model with strong inhibition
   did not necessarily converge. 
   This only happened if the first order trend was large,
   the starting state (\texttt{n.start} or \texttt{x.start}) was not given,
   and the number of iterations \texttt{nrep} was not very large.
   It occurred because of a poor choice for the default starting state.
   {\small (Bug was present since about 2010.  
     Fixed in \texttt{spatstat 1.40-0}, december 2014)}
   \item 
     Simulation was incorrect in the case of an inhomogeneous multitype model
     with \texttt{fixall=TRUE} (i.e.\ with a fixed number of points 
     of each type) if the model was segregated (i.e.\ if different types
     of points had different first order trend). 
     The effect of the error was that all types of points
     had the same first order trend.
     {\small (Bug was present since about 2010.
       Fixed in \texttt{spatstat 1.43-0}, september 2015)}
  \item 
     Simulation of the Geyer saturation process was 
     incorrectly initialised, so that the results of a short run 
     (i.e. small value of \texttt{nrep}) were incorrect, 
     while long runs were correct.
     \bugger{1.17-0}{october 2009}{1.31-1}{march 2013}
   \end{itemize}
   
\item \texttt{nncross}, \texttt{distfun}, \texttt{AreaInter}:
  Results of \texttt{nncross} were possibly incorrect 
  when \code{X} and \code{Y} did not have the same window. 
  This bug affected values of \texttt{distfun} and may also 
  have affected ppm objects with interaction \texttt{AreaInter}.
  \bugger{1.9-4}{june 2006}{1.25-2}{january 2012}

 \item \texttt{update.ppm}:
   If the argument \texttt{Q} was given,
   the results were usually incorrect, or an error was generated.
   \bugger{1.38-0}{august 2014}{1.38-1}{august 2014}
     
\item \texttt{envelope.ppm}:
   If the model was an inhomogeneous Poisson process, 
   the resulting envelope object was incorrect
   (the simulations were correct, but the envelopes were calculated
   assuming the model was CSR). 
   \bugger{1.23-5}{september 2011}{1.23-6}{october 2011}

 \item \texttt{leverage.ppm}, \texttt{influence.ppm}, \texttt{dfbetas.ppm}:
   Results were incorrect for non-Poisson processes.  
   \bugger{1.25-0}{december 2011}{1.34-0}{october 2013}
   
\item \texttt{rVarGamma}:
   Simulations were incorrect; they were generated using the wrong value
   of the parameter \texttt{nu.ker}.  
   \bugger{1.25-0}{december 2011}{1.35-0}{december 2013}

 \item \texttt{rCauchy}:
   Simulations were incorrect; they were generated using the wrong value
   of the parameter \texttt{omega}.
   \bugger{1.25-0}{december 2011}{1.25-2}{january 2012}

 \item \texttt{kppm}, \texttt{matclust.estpcf}, \texttt{pcfmodel}:
    The pair correlation function of the M\'atern Cluster Process
    was evaluated incorrectly at distances close to 0.
    This could have affected the fitted parameters 
    in \texttt{matclust.estpcf()} or \texttt{kppm(clusters="MatClust")}.
    \bugger{1.20-2}{august 2010}{1.33-0}{september 2013}
    
 \item \texttt{ppm}:
   Results were incorrect for the Geyer saturation model
   with a non-integer value of the saturation parameter \texttt{sat}.
   \bugger{1.20-0}{july 2010}{1.31-2}{april 2013}
   
 \item \texttt{lppm}:
   For multitype patterns, the fitted model was completely incorrect
   due to an error in constructing the quadrature scheme.
   \bugger{1.23-0}{july 2011}{1.30-0}{december 2012}
   
 \item \texttt{Geyer}:
   For point process models with the \texttt{Geyer} interaction, 
   \texttt{vcov.ppm} and \texttt{suffstat} sometimes gave incorrect answers.
   \bugger{1.27-0}{may 2012}{1.30-0}{december 2012}
   
 \item \texttt{vcov.ppm}, \texttt{suffstat}:
   These functions sometimes gave incorrect values 
   for marked point process models.   
   \bugger{1.27-0}{may 2012}{1.29-0}{october 2012}
   
 \item \texttt{linearK}, \texttt{linearKinhom}:
   If any data points were located exactly at a vertex of the 
   linear network, the weights for Ang's correction were incorrect, 
   due to numerical error. This sometimes produced infinite 
   or NA values of the linear $K$ function.  
   \bugger{1.23-0}{july 2011}{1.27-0}{may 2012}

 \item \texttt{Kinhom}, \texttt{Linhom}:
   the results were not renormalised (even if \texttt{renormalise=TRUE})
   in some cases.
   \bugger{1.21-0}{december 2010}{1.37-0}{may 2014}
     
 \item \texttt{Kinhom}, \texttt{Linhom}:
   Ignored argument \texttt{reciplambda2} in some cases.
   \bugger{1.39-0}{october 2014}{1.40-0}{december 2014}

  \item \texttt{markcorrint}:
   Results were completely incorrect.
   \bugger{1.39-0}{october 2014}{1.40-0}{december 2014}

 \item \texttt{Kinhom}, \texttt{Linhom}:
   Calculations were incorrect if \texttt{lambda} was a fitted point
   process model.
   \bugger{1.38-0}{august 2014}{1.38-1}{august 2014}
     
 \item \texttt{predict.ppm}:
   Calculation of the conditional intensity omitted the edge correction
   if \texttt{correction='translate'} or \texttt{correction='periodic'}. 
   \bugger{1.17-0}{october 2009}{1.31-3}{may 2013}

 \item \texttt{varblock}:
   Calculations were incorrect if more than one column of 
   edge corrections was computed. 
   \bugger{1.21-1}{november 2010}{1.39-0}{october 2014}
   
 \item \texttt{scan.test}
   Results were sometimes incorrect due to numerical instability
   (a 'Gibbs phenomenon').    
   \bugger{1.24-1}{october 2011}{1.26-1}{april 2012}

 \item \texttt{relrisk}:
   When \verb!at="pixels"!, a small fraction of pixel values were sometimes
   wildly inaccurate, due to numerical errors. This affected the 
   range of values in the result, and therefore the appearance of plots.
   {\small (Bug fixed in \texttt{spatstat 1.40-0}, december 2014)}

 \item \texttt{selfcrossing.psp}:
   $y$ coordinate values were incorrect.   
   \bugger{1.23-2}{august 2011}{1.25-3}{february 2012}
     
 \item \texttt{predict.slrm}:
   Results of \texttt{predict(object, newdata)} were incorrect 
   if the spatial domain of \texttt{newdata}
   was larger than the original domain.
   \bugger{1.21-0}{november 2010}{1.25-3}{february 2012}
   
 \item \texttt{Lest}:
   The variance approximations (Lotwick-Silverman and Ripley)
   obtained with \texttt{var.approx=TRUE} were incorrect for \texttt{Lest}
   (although they were correct for \texttt{Kest}) due to a coding error.
   \bugger{1.24-1}{october 2011}{1.24-2}{november 2011}
 
 \item \texttt{bw.diggle}:
   Bandwidth was too large by a factor of 2.
   \bugger{1.23-4}{september 2011}{1.23-5}{september 2011}
 
 \item pair correlation functions (\texttt{pcf.ppp}, \texttt{pcfdot}, 
    \texttt{pcfcross} etc:)
    The result had a negative bias at the maximum $r$ value,
    because contributions to the pcf estimate from interpoint distances
    greater than \texttt{max(r)} were mistakenly omitted. 
    {\small (Bugs fixed in \texttt{spatstat 1.35-0}, december 2013)}
    
 \item \texttt{Kest}, \texttt{Lest}:
   Gave incorrect values in very large datasets, due to numerical overflow.
   `Very large' typically means about 1 million points in a random pattern, 
   or 100,000 points in a tightly clustered pattern.
   [Overflow cannot occur unless there are at least 46,341 points.]
   
 \item \texttt{bw.relrisk}:
    Implementation of \texttt{method="weightedleastsquares"} was incorrect
    and was equivalent to \texttt{method="leastsquares"}.
    \bugger{1.21-0}{november 2010}{1.23-4}{september 2011}
  
\item \texttt{bdist.tiles}:
   Values were incorrect in some cases due to numerical error.
    {\small (Bug fixed in \texttt{spatstat 1.29-0}, october 2012)}
   
\item \texttt{crossdist.ppp}:
  Ignored argument \texttt{squared} if \texttt{periodic=FALSE}.
    {\small (Bug fixed in \texttt{spatstat 1.38-0}, july 2014)}
   
\item polygon geometry:
    The point-in-polygon test gave the wrong answer in some boundary cases.
    {\small (Bug fixed in \texttt{spatstat 1.23-2}, august 2011)}

\item \texttt{MultiStraussHard}:
    If a fitted model with \texttt{MultiStraussHard} interaction was invalid,
    \texttt{project.ppm} sometimes yielded a model that was still invalid.
    {\small (Bug fixed in \texttt{spatstat 1.42-0}, may 2015)}
    
\item \texttt{pool.envelope}:  
  Did not always respect the value of \texttt{use.theory}.
    \bugger{1.23-5}{september 2011}{1.43-0}{september 2015}
\end{itemize}


\begin{thebibliography}{1}
\bibitem{badd10wshop}
A.~Baddeley.
\newblock Analysing spatial point patterns in {{R}}.
\newblock Technical report, CSIRO, 2010.
\newblock Version 4.
\newblock URL \texttt{https://research.csiro.au/software/r-workshop-notes/}

\bibitem{baddrubaturn15}
A. Baddeley, E. Rubak, and R. Turner.
\newblock {\em Spatial Point Patterns: Methodology and Applications with {{R}}}.
\newblock Chapman \& Hall/CRC Press, 2015.

\end{thebibliography}
 
\end{document}
