This function generates a Q-Q plot of the residuals from a
  fitted point process model. It is an addendum to the suite of
  diagnostic plots produced by the function diagnose.ppm,
  kept separate because it is computationally intensive. The
  quantiles of the theoretical distribution are estimated by simulation.  In classical statistics, a Q-Q plot of residuals is a useful
  diagnostic for checking the distributional assumptions. Analogously,
  in spatial statistics, a Q-Q plot of the (smoothed) residuals from a
  fitted point process model is a useful way
  to check the interpoint interaction part of the model
  (Baddeley et al, 2005). The systematic part of the model
  (spatial trend, covariate effects, etc) is assessed using
  other plots made by diagnose.ppm.
  The argument fit represents the fitted point process
  model. It must be an object of class "ppm" (typically produced
  by the maximum pseudolikelihood fitting algorithm ppm).
  Residuals will be computed for this fitted model using
  residuals.ppm,
  and the residuals will be kernel-smoothed to produce a ``residual
  field''. The values of this residual field will provide the
  ``data'' quantiles for the Q-Q plot.
  The argument expr is not usually specified.
  It provides a way to modify the ``theoretical'' or ``reference''
  quantiles for the Q-Q plot.
  In normal usage we set expr=NULL. The default
  is to generate nsim simulated realisations
  of the fitted model fit, re-fit this model to
  each of the simulated patterns,
  evaluate the residuals from
  these fitted models, and use the kernel-smoothed residual field
  from these fitted models as a sample from the reference distribution
  for the Q-Q plot.
  In advanced use, expr may be an expression.
  It will be re-evaluated nsim times, and should include
  random computations so that the results are not identical
  each time. The result of evaluating expr
  should be either a point pattern (object of class
  "ppp") or a fitted point process model (object of class
  "ppm"). If the value is a point pattern, then the
  original fitted model fit will be fitted to this new point
  pattern using update.ppm, to yield another fitted
  model. Smoothed residuals obtained from these
  nsim fitted models will yield the ``theoretical'' quantiles for the
  Q-Q plot.
  Simulation is performed (if expr=NULL)
  using the Metropolis-Hastings algorithm rmh.
  Each simulated realisation is the result of
  running the Metropolis-Hastings algorithm
  from an independent random starting state each time.
  The iterative and termination behaviour of the Metropolis-Hastings
  algorithm are governed by the argument control.
  See rmhcontrol for information about this argument.
  As a shortcut, the argument nrep determines
  the number of Metropolis-Hastings iterations used to generate
  each simulated realisation, if control is absent.
  By default, simulations are generated in an expanded
  window. Use the argument control to change this,
  as explained in the section on Warning messages.
  
  The argument type selects the type of residual or weight
  that will be computed. For options, see diagnose.ppm.
  The argument style determines the type of Q-Q plot. It is
  highly recommended to use the default, style="mean".
  [object Object],[object Object]
  The argument fast is a simple way to control
  the accuracy and speed of computation.
  If fast=FALSE, the residual field is computed on
  a fine grid of pixels (by default 100 by 100 pixels, see below)
  and the Q-Q plot is based on the complete set of order statistics
  (usually 10,000 quantiles).
  If fast=TRUE, the residual field is computed on a coarse
  grid (at most 40 by 40 pixels) and the Q-Q plot is based on the
  percentiles only. This is about 7 times faster.
  It is recommended to use fast=TRUE for interactive data
  analysis and fast=FALSE for definitive plots for
  publication.
  The argument dimyx gives full control over the resolution of the
  pixel grid used to calculate the smoothed residuals.
  Its interpretation is the same as the argument dimyx
  to the function as.mask.
  Note that dimyx[1] is the number of
  pixels in the $y$ direction, and dimyx[2] is the number
  in the $x$ direction. 
  If dimyx is not present, then the default pixel grid dimensions
  are controlled by spatstat.options("npixel").
  Since the computation is so time-consuming, qqplot.ppm returns
  a list containing all the data necessary to re-display the Q-Q plot.
  It is advisable to assign the result of qqplot.ppm to something
  (or use .Last.value if you forgot to.)
  The return value is an object of class "qqppm". There are methods for
  plot.qqppm and print.qqppm. See the
  Examples.
  The argument saveall is usually set to FALSE.
  If saveall=TRUE, then the intermediate results of calculation for each
  simulated realisation are saved and returned. The return value
  includes a 3-dimensional array sim containing the
  smoothed residual field images for each of the nsim 
  realisations. When saveall=TRUE, the return value is an object of very
  large size, and should not be saved on disk.
  Errors may occur during the simulation process, because
  random data are generated. For example:
  
- one of the simulated patterns may be empty.
- one of the simulated patterns may 
    cause an error in the code that fits the point process model.
- the user-supplied argumentexprmay have a bug.
Empty point patterns do not cause a problem for the code,
  but they are reported.
  Other problems that would lead to a crash are trapped; 
  the offending simulated data are discarded, and the simulation is
  retried. The argumentmaxerr determines the maximum number of
  times that such errors will be tolerated (mainly as a
  safeguard against an infinite loop).