CHANGES IN spatstat.model VERSION 3.2-8
OVERVIEW
o spatstat.model no longer suggests package 'maptools' or 'RandomFields'.
o code for fitting log-Gaussian Cox models has changed.
o minor improvements to help files.
SIGNIFICANT USER-VISIBLE CHANGES
o kppm
The code for fitting log-Gaussian Cox process models (clusters="LGCP")
has been re-implemented without using the package 'RandomFields'.
The current code supports the 'exponential', 'gauss', 'stable',
'gencauchy' and 'matern' covariance models.
o lgcp.estK, lgcp.estpcf
This code for fitting log-Gaussian Cox process models
has been re-implemented without using the package 'RandomFields'.
The current code supports the 'exponential', 'gauss', 'stable',
'gencauchy' and 'matern' covariance models.
o simulate.kppm
For log-Gaussian Cox process models (clusters='LGCP') the simulation
algorithm has been completely re-implemented to avoid dependence
on the defunct package 'RandomFields'. For details, see the help
for 'rLGCP' in the package 'spatstat.random'.
CHANGES IN spatstat.model VERSION 3.2-6
OVERVIEW
o Internal improvements.
SIGNIFICANT USER-VISIBLE CHANGES
o ppm
Internal changes to support improvements in spatstat.linnet::lppm.
CHANGES IN spatstat.model VERSION 3.2-4
OVERVIEW
o Minor improvements.
SIGNIFICANT USER-VISIBLE CHANGES
o cdf.test.ppm
Recognises argument 'rule.eps' passed to 'as.mask'.
o dfbetas.ppm
Recognises argument 'rule.eps' passed to 'as.mask'.
o leverage.ppm
Recognises argument 'rule.eps' passed to 'as.mask'.
o rhohat.ppm
New argument 'rule.eps' passed to 'as.mask'.
CHANGES IN spatstat.model VERSION 3.2-3
OVERVIEW
o Tweak to satisfy package checker.
CHANGES IN spatstat.model VERSION 3.2-2
OVERVIEW
o Accelerated some code.
o Standard errors are now available for 'ppm' models fitted using 'gam'.
o Internal reorganisation.
o Minor changes to documentation.
o Bug fixes.
SIGNIFICANT USER-VISIBLE CHANGES
o plot.mppm
New argument 'main'.
BUG FIXES
o predict.ppm
Standard error calculation ('se=TRUE') crashed if the fitted model
was a generalised additive model (fitted with 'use.gam=TRUE').
Fixed.
o effectfun
Standard error calculation ('se.fit=TRUE') crashed if the fitted model
was a generalised additive model (fitted with 'use.gam=TRUE').
Fixed.
o parres
If 'model' was a large object, computation was extremely slow
or terminated with a message about 'deparse'.
Fixed.
o plot.mppm
If the fitted model 'x' was a large object, computation was extremely slow
or terminated with a message about 'deparse'.
Fixed.
o predict.ppm
If 'new.coef' was given and the fitted model 'object' was a large object,
computation was extremely slow, or terminated with message about 'deparse'.
Fixed.
CHANGES IN spatstat.model VERSION 3.2-1
OVERVIEW
o Minor changes to citation file, to satisfy CRAN.
CHANGES IN spatstat.model VERSION 3.2-0
OVERVIEW
o Improvements to 'update' methods for point process models.
o New 'update' methods for classes 'dppm' and 'rppm'.
o Minor improvements and bug fixes.
NEW FUNCTIONS
o update.dppm
Update method for determinantal point process models.
o update.rppm
Update method for recursively partitioned point process models.
SIGNIFICANT USER-VISIBLE CHANGES
o update.slrm
Now accepts the idiom 'update(object, X)' where X is a point pattern.
o update.ppm, update.kppm, update.dppm, update.slrm, update.rppm
All of these methods now accept the idiom 'update(object, X)'
where X is a point pattern.
o print.ppm, summary.ppm
Prints the name of the point pattern dataset to which the model was fitted.
o update.ppm
Internal improvements.
CHANGES IN spatstat.model VERSION 3.1-2
OVERVIEW
o Minor changes to satisfy CRAN package checker.
CHANGES IN spatstat.model VERSION 3.1-1
OVERVIEW
o We thank Bethany Macdonald for contributions.
o kppm has been accelerated when method='palm' or 'clik2'
o kppm can save the history of the optimisation algorithm.
o Bug fixes and internal tweaks.
SIGNIFICANT USER-VISIBLE CHANGES
o kppm
New argument 'trajectory' specifies whether to save the history
of function evaluations performed by the optimization algorithm.
o kppm
Computation accelerated when 'method="palm"' or 'method='clik2'".
[Kindly contributed by Bethany Macdonald.]
BUG FIXES
o simulate.kppm
If the model was very close to a Poisson process, and if saveLambda=TRUE was selected,
the attribute "Lambda" was incorrectly labelled "lambda".
Fixed.
o simulate.kppm
Simulation of the variance-gamma model terminated with an error about the value of 'nu'
(with recent versions of spatstat.random).
Fixed.
o kppm
Terminated with an error about missing argument 'A', if penalised=TRUE.
Fixed.
o summary.kppm
Did not correctly recognise when a model was fitted using a penalty.
Fixed.
CHANGES IN spatstat.model VERSION 3.1-0
OVERVIEW
o We thank Tilman Davies and Martin Hazelton for contributions.
o Penalised model-fitting for Neyman-Scott cluster process models.
o Index of the strength of clustering in a Neyman-Scott cluster process model.
o Probability of having any siblings.
o More information is printed about Neyman-Scott cluster process models.
o Minor improvements.
NEW CLASSES
o traj
Trajectory (history of function evaluations) in a model
that was fitted by optimisation.
NEW FUNCTIONS
o panysib
Probability that a point in a cluster process has any siblings.
o is.poissonclusterprocess
Detects whether a given model is a Poisson cluster process
(which includes Neyman-Scott processes).
o traj, print.traj, plot.traj, lines.traj
Extract, print and plot the trajectory of function evaluations.
SIGNIFICANT USER-VISIBLE CHANGES
o kppm
New argument 'penalised' supports penalised model-fitting with a penalty against
extremely large or small values of the cluster scale.
o print.kppm, summary.kppm
Additional characteristics of the fitted model are reported,
including the cluster strength 'phi' and the sibling probability.
o varcount
New argument 'relative' (supports calculation of the overdispersion index).
o plot.palmdiag
Improved calculation of y axis limits.
CHANGES IN spatstat.model VERSION 3.0-3
OVERVIEW
o Palm intensity diagnostic.
NEW FUNCTIONS
o palmdiagnose, plot.palmdiag
Palm intensity diagnostic plot for cluster process models
proposed by Tanaka, Ogata and Stoyan.
CHANGES IN spatstat.model VERSION 3.0-2
OVERVIEW
o Minor changes to placate the package checker.
CHANGES IN spatstat.model VERSION 3.0-1
OVERVIEW
o Minor changes to placate the package checker.
CHANGES IN spatstat.model VERSION 3.0-0
OVERVIEW
o New package
o We thank Achmad Choiruddin and Suman Rakshit for contributions.
o Regularized model-fitting in 'ppm' and 'kppm'.
o integral.msr accepts a weight function.
o Weighted version of a measure.
o Residuals for recursively-partitioned models.
o Residuals for any estimate of intensity.
o U-shaped curves in 'rhohat'.
o Bug fixes and minor improvements.
NEW FUNCTIONS
o measureWeighted
Weighted version of a measure.
o residuals.rppm
Residual measure for a recursively-partitioned point process model.
o residualMeasure
Residual measure given an observed point pattern
and an estimate of its intensity.
SIGNIFICANT USER-VISIBLE CHANGES
o Package structure
The package 'spatstat.core' has been split into two packages called
'spatstat.explore' (for exploratory data analysis)
and 'spatstat.model' (for modelling and formal inference).
o spatstat.model
The new package 'spatstat.model' contains the code for model-fitting,
model diagnostics, and formal inference. Examples include 'ppm',
'kppm', 'mppm', 'dppm', 'slrm', 'simulate.ppm', 'anova.ppm',
'diagnose.ppm', 'residuals.ppm', 'leverage.ppm', 'addvar', 'parres',
o NEWS
The NEWS file for the new package 'spatstat.model'
contains older news items from the defunct package 'spatstat.core'
(for functions which are now in 'spatstat.model').
o ppm
New argument 'improve.type'.
o ppm
Now supports regularized model-fitting when 'improve.type="enet"'.
o ppm
Option 'method="ho"' is replaced by 'improve.type="ho"'.
o ppm
Huang-Ogata approximate maximum likelihood can be applied to logistic fits
by setting 'method="logi"' and 'improve.type="ho"'.
o kppm
New argument 'ppm.improve.type'.
o kppm
Now supports regularized model-fitting of the first order trend
when 'ppm.improve.type="enet"'.
o integral.msr
New argument 'weight' specifies a weight (integrand) for the integration.
o rhohat.ppm, rhohat.slrm
New options 'smoother="mountain"' and 'smoother="valley"'
for estimating a unimodal function (U-shaped curve).
o rhohat.ppm, rhohat.slrm
If the unit of length is a 'distfun', the name of the unit of length
is saved and displayed on the plot.
o rhohat.ppm, rhohat.slrm
New arguments 'jitter', 'jitterfactor', 'interpolate' allow greater
control over the calculation.
o rhohat.ppm, rhohat.slrm
New argument 'do.CI' specifies whether to calculate confidence bands.
BUG FIXES
o predict.ppm
Argument 'new.coef' was ignored in the calculation of the standard error
when 'se=TRUE'.
Fixed.
o predict.ppm
Argument 'new.coef' was ignored in calculating the standard error
(and therefore the width of the interval) when 'type="count"'
and 'interval="confidence"' or 'interval="prediction"'.
Fixed.
o vcov.mppm
Crashed with a message about 'subscript out of bounds', for some models.
Fixed.
CHANGES IN spatstat.core VERSION 2.4-4.010
OVERVIEW
o Internal improvements.
CHANGES IN spatstat.core VERSION 2.4-4
OVERVIEW
o Bug fixes and minor improvements.
CHANGES IN spatstat.core VERSION 2.4-3
OVERVIEW
o We thank Art Stock for contributions.
o Bug fixes and minor improvements.
CHANGES IN spatstat.core VERSION 2.4-2
OVERVIEW
o Internal bug fixes.
CHANGES IN spatstat.core VERSION 2.4-1
OVERVIEW
o We thank Frederic Lavancier, Sebastian Meyer and Sven Wagner
for contributions.
o Improved approximation of intensity of Gibbs models.
o Experimental code to represent (theoretical) point process models
o Extract more information about a point process model.
o Internal improvements and bug fixes.
NEW CLASSES
o zgibbsmodel
Experimental. An object of class 'zgibbsmodel' represents a
Gibbs point process model with specified parameter values
(whereas 'ppm' represents a model fitted to data).
NEW FUNCTIONS
o hardcoredist
Extract the hard core distance of a point process model.
o interactionorder
Extract the order of interpoint interaction of a point process model.
o zgibbsmodel
Experimental. Create an object of class 'zgibbsmodel'.
o print.zgibbsmodel
Experimental. Print an object of class 'zgibbsmodel'.
o is.poisson.zgibbsmodel, is.stationary.zgibbsmodel
Experimental. Methods for class 'zgibbsmodel'
SIGNIFICANT USER-VISIBLE CHANGES
o intensity.ppm
Can now calculate the Coeurjolly-Lavancier DPP approximation of intensity.
[Code kindly contributed by Frederic Lavancier]
New argument 'approx' specifies the choice of approximation.
BUG FIXES
o vcov.ppm
Crashed in some cases, with message 'object lamdel not found'.
[Spotted by Sven Wagner.]
Fixed.
CHANGES IN spatstat.core VERSION 2.4-0
OVERVIEW
o We thank Sriram Ramamurthy for contributions.
o spatstat.core now depends on the new package 'spatstat.random'.
o Functions for generating random patterns have been removed.
o Important bug fixes in anova.mppm and vcov.mppm.
o Minor improvements and bug fixes
SIGNIFICANT USER-VISIBLE CHANGES
o package structure
The code for generating random spatial patterns (including 'rpoispp',
'rMatClust', 'rThomas', 'rNeymanScott', 'rStrauss', 'rmh')
has been removed from 'spatstat.core' and placed in a new package
'spatstat.random'. This new package is required by 'spatstat.core'.
o anova.mppm
Improved labelling of models in output.
o qqplot.ppm, plot.qqppm
Improved the text label indicating the type of residuals.
BUG FIXES
o vcov.mppm
For Gibbs (non-Poisson) models, the variance matrix was
calculated incorrectly in some cases.
Fixed.
o anova.mppm
Results were sometimes incorrect if the two models
had different interactions (e.g. Strauss vs Poisson).
Fixed.
o anova.mppm
Crashed for some models with a message about 'coefficient missing
from new.coef'.
Fixed.
o anova.mppm
Gave a warning for some models about "Internal error:
unable to map submodels to full model".
Fixed.
o addvar
If the covariate contained NA, NaN or Infinite values,
the calculations were sometimes incorrect.
Fixed.
o pcfmodel.ppm
Refused to handle an inhomogeneous Poisson process.
Fixed.
o fitted.ppm
Crashed if leaveoneout=TRUE and the model had no fitted coefficients.
Fixed.
CHANGES IN spatstat.core VERSION 2.3-2
OVERVIEW
o More diagnostics for spatial logistic regression models.
o Important bug fix in kppm.
o Increased numerical stability in kppm.
o Minor improvements and bug fixes.
o We thank Jonas Brehmer for contributions.
NEW FUNCTIONS
o lurking.slrm
Lurking variable plot for spatial logistic regression models.
o eem.slrm
Exponential energy marks for spatial logistic regression models.
o eem.ppm
Exponential energy marks for Gibbs and Poisson point process models
(this function was previously called 'eem').
SIGNIFICANT USER-VISIBLE CHANGES
o eem
The function 'eem' is now generic, with methods for 'ppm' and 'slrm'.
The function previously named 'eem' is now called 'eem.ppm'.
o objsurf.dppm, objsurf.kppm, objsurf.mincontrast
New arguments 'xlim', 'ylim' determine the range of parameter values
to be considered.
o Hybrid
Printed output from hybrid models has been improved slightly.
o kppm
New default settings ensure greater numerical stability of the
optimization algorithm against the effects of the scale of the
spatial coordinates. New argument 'stabilize' specifies whether
the optimization algorithm should be numerically stabilized.
o pcf
Improved error message
BUG FIXES
o kppm
Results were sometimes incorrect for method='clik2' and method='palm'
because the log composite likelihood was erroneously truncated to
positive values. Any fitted model for which logLik(model) = 2.2e-16
should be suspected of being incorrect.
Fixed.
o MultiHard
A hybrid of 'MultiHard' with another multitype interaction caused an error.
Fixed.
o simulate.dppm, simulate.detpointprocfamily
Crashed, rarely, with error message 'The dimension differs from
the number of columns in index'.
Fixed.
o as.fv.kppm, as.fv.dppm
The default plot labels in 'as.fv(x)' implied that the model 'x'
was inhomogeneous.
Fixed.
CHANGES IN spatstat.core VERSION 2.3-1
OVERVIEW
o Covariates in ppm and mppm may be functions that depend on the marks
as well as the spatial coordinates.
o Automatic selection of threshold for defining a binary predictor.
o Random perturbation of line segments.
o Minor extensions, performance improvements, and bug fixes.
NEW FUNCTIONS
o coef<-.fii
Changes the coefficients of a fitted interaction object
(a method for the generic "coef<-")
SIGNIFICANT USER-VISIBLE CHANGES
o ppm
Covariates which are functions may now depend on the marks
as well as the spatial coordinates: function(x,y,marks).
o mppm
Covariates which are functions may now depend on the marks
as well as the spatial coordinates: function(x,y,marks).
o reach.kppm
Now returns a result for LGCP models as well as cluster models.
o update.kppm
New argument 'envir'.
o clusterfit
Minor changes to the argument list.
o mincontrast
Minor changes to the argument list.
o mincontrast
Improved algorithm for handling NA, NaN or infinite values.
o varcount
Argument B has a sensible default.
BUG FIXES
o subfits
The fitted interaction coefficients were garbled.
If 'mfit' is the mppm object and 'a <- subfits(mfit)[[i]]' is one of the
sub-models, then coef(a) was correct, but coef(fitin(a)) was incorrect.
The fitted interaction was shown correctly by printing 'mfit'
but incorrectly by printing 'a'.
Fixed.
o varcount
The result was very inaccurate if the cluster radius was small
compared to the size of the window 'B', due to discretisation error.
Fixed.
CHANGES IN spatstat.core VERSION 2.3-0
OVERVIEW
o We thank Chiara Fend for contributions.
o Extensive support for spatial logistic regression models.
o New fitting method in kppm and dppm.
o Summary method for 'objsurf'.
o Minor bug fixes.
NEW FUNCTIONS
o response
Generic function which extracts the values of the response
in a fitted model. There are methods for lm, glm (which extract the
numeric vector of responses), and ppm, kppm, slrm, lppm and mppm
(which extract the original data point pattern).
o summary.objsurf, print.summary.objsurf
Summary method for 'objsurf'
o residuals.slrm
Residuals for spatial logistic regression models.
o leverage.slrm, influence.slrm, dfbetas.slrm, dffit.slrm
Leverage and influence diagnostics for spatial logistic regression models.
o rhohat.slrm
Method for 'rhohat' for spatial logistic regression models.
o envelope.slrm
Method for 'envelope' for spatial logistic regression models.
o intensity.slrm
Method for 'intensity' for spatial logistic regression models.
o deviance.slrm
Method for 'deviance' for spatial logistic regression models.
o pseudoR2.slrm
Method for 'pseudoR2' for spatial logistic regression models.
o quadrat.test.slrm
Method for 'quadrat.test' for spatial logistic regression models.
o parameters.slrm
Method for 'parameters' for spatial logistic regression models.
o valid.slrm
Method for 'valid' for spatial logistic regression models.
o emend.slrm
Method for 'emend' for spatial logistic regression models.
o roc.slrm
Method for 'roc' for spatial logistic regression models.
o auc.slrm
Method for 'auc' for spatial logistic regression models.
o Window.slrm, as.owin.slrm
Methods for 'Window' and 'as.owin' for spatial logistic regression models.
SIGNIFICANT USER-VISIBLE CHANGES
o kppm, dppm
New option 'method="adapcl"' performs adaptive composite likelihood fitting.
[Contributed by Chiara Fend.]
BUG FIXES
o clusterfield
Values of the cluster field were slightly incorrect (slightly higher
than the correct values) near the edge of the window,
because an 'edge correction' was mistakenly applied.
Fixed.
CHANGES IN spatstat.core VERSION 2.2-0
OVERVIEW
o summary method for spatial logistic regression models
NEW FUNCTIONS
o summary.slrm, print.summary.slrm
Summary method for spatial logistic regression models
o coef.summary.slrm
Print the fitted coefficients, confidence interval and p-values
for a spatial logistic regression model.
CHANGES IN spatstat.core VERSION 2.1-2
OVERVIEW
o Reduced CRAN check time.
CHANGES IN spatstat.core VERSION 2.1-1
OVERVIEW
o Minor bug fix
BUG FIXES
o simulate.kppm
Conditional simulation crashed on rare occasions,
with an error about negative probabilities.
Fixed.
CHANGES IN spatstat.core VERSION 2.1-0
OVERVIEW
o We thank Achmad Choiruddin, Jean-Francois Coeurjolly
and Rasmus Waagepetersen for contributions.
o Conditional simulation in kppm
o Information criteria for model selection in kppm
o Modified handling of covariates in slrm
o Improved output in summary.mppm
o Minor improvements and bug fixes.
NEW FUNCTIONS
o ic
Information criteria for model selection in ppm and kppm.
Kindly contributed by Achmad Choiruddin, Jean-Francois Coeurjolly
and Rasmus Waagepetersen.
SIGNIFICANT USER-VISIBLE CHANGES
o simulate.kppm
Conditional simulation of the model, given a fixed number of points,
is now supported using the new arguments 'n.cond' and 'w.cond'.
o slrm
In the default case (where dataAtPoints is not given)
all spatial covariates, including the spatial coordinates x and y,
are now evaluated at the centre of each pixel. This improves
consistency with other implementations of spatial logistic regression.
o slrm
Silently ignores any arguments '...' that are not recognised by 'as.mask'
o summary.mppm
Improved summary of the dependence of the
interpoint interaction on the covariates.
o pairs.im
New argument 'drop'.
BUG FIXES
o model.matrix.mppm
If the model was fitted using 'gam', the resulting matrix
did not have an 'assign' attribute.
Fixed.
o model.depends
Crashed for models fitted using 'gam'.
Fixed.
o predict.slrm, fitted.slrm
Crashed if the model was fitted using split pixels (argument 'splitby').
Fixed.
o predict.slrm, fitted.slrm
Crashed in some cases when 'window' was given.
Fixed.
o update.slrm
Failed to find covariates that were provided in 'env'.
Fixed.
CHANGES IN spatstat.core VERSION 2.0-0
OVERVIEW
o We thank Corey Anderson, Michael Chirico, Andy Craig,
Marcelino de la Cruz, Tilman Davies, Pavel Fibich,
Kurt Hornik, Gopalan Nair, Yonatan Rosen and Rasmus Waagepetersen
for contributions.
o More support for spatial logistic regression models.
o predict.mppm now works for multitype point process models.
o Improved handling of 'newdata' in predict.mppm.
o More support for multi-dimensional patterns.
SIGNIFICANT USER-VISIBLE CHANGES
o slrm
'step' can now be applied to models fitted using 'slrm'.
o predict.mppm
Now supports multitype point process models.
o predict.mppm
Improved handling of argument 'newdata'
o simulate.ppm
Now recognises the argument 'window' as an alternative to 'w'.
o kppm
Improved numerical robustness.
o anova.mppm
Issues a warning when applied to random-effects models
(models fitted using the argument 'random').
o mincontrast
New argument 'action.bad.values' specifies what action is taken
when the summary function produces NA or NaN or infinite values.
BUG FIXES
o rMatClust, rThomas, rCauchy, rVarGamma
If the fitted model was effectively a Poisson process,
the result did not have attributes 'Lambda' and 'parents'
even when the user requested them.
Fixed.
o model.matrix.mppm
Crashed with random-effects models.
Fixed.
o anova.mppm
Crashed with random-effects models.
Fixed.
o objsurf.kppm
Crashed if the model was fitted by Palm likelihood (method="palm")
or second order composite likelihood (method="clik2").
Fixed.
CHANGES IN spatstat.core VERSION 1.65-11
OVERVIEW
o Internal tweaks.
CHANGES IN spatstat.core VERSION 1.65-10
OVERVIEW
o Minor corrections to documentation.
CHANGES IN spatstat.core VERSION 1.65-9
OVERVIEW
o We thank Ian Buller for a suggestion.
CHANGES IN spatstat.core VERSION 1.65-8
OVERVIEW
o Minor changes to appease the compiler.
CHANGES IN spatstat.core VERSION 1.65-7
OVERVIEW
o We thank Michael Chirico for a contribution.
o Minor changes to appease the compiler.
CHANGES IN spatstat.core VERSION 1.65-6
OVERVIEW
o We thank Tilman Davies and Pavel Fibich for contributions.
o Important bug fix in simulation of log-Gaussian Cox processes.
o Increased speed for large datasets.
o variance calculations handle larger datasets.
SIGNIFICANT USER-VISIBLE CHANGES
o vcov.ppm, summary.ppm
Variance calculations now handle larger datasets
(using sparse arrays).
o overall speed
Changes have been made to the internal code of spatstat
which should accelerate computations involving large datasets.
o localpcf, localpcfinhom
New argument 'rvalue'.
BUG FIXES
o simulate.kppm
Simulation results for log-Gaussian Cox processes were incorrect
unless the pixel dimensions and pixel spacings were identical
on the horizontal and vertical axes. (If pixel dimensions were not
specified, then the results were incorrect whenever the Frame of the
simulation window was not a square.)
[Spotted by Tilman Davies.]
Fixed.
o print.ppm
Crashed sometimes when applied to the result of subfits().
Fixed.
CHANGES IN spatstat.core VERSION 1.65-5
OVERVIEW
o Minor changes required by CRAN.
CHANGES IN spatstat.core VERSION 1.65-1
OVERVIEW
o Added NEWS file.
CHANGES IN spatstat.core VERSION 1.65-0
OVERVIEW
o Package initialised at version 1.65-0
SIGNIFICANT USER-VISIBLE CHANGES
o spatstat.core
The package 'spatstat.core' has been created from a subset
of the code in the original 'spatstat' package version 1.65-0.
It contains the core functionality for statistical analysis of
spatial data. For an overview, see help("spatstat.core-package")
o Execution
The 'spatstat.core' package is slightly faster than the corresponding
code in the 'spatstat' package, because the procedure for calling
internal C functions has been streamlined.