allequal | R Documentation |
Utility to compare two spam
objects
testing 'near equality'. Depending on the type of difference, comparison is
still made to some extent, and a report of the differences is
returned.
## S3 method for class 'spam'
all.equal(target, current, tolerance = .Machine$double.eps^0.5,
scale = NULL, check.attributes = FALSE,...)
target |
a |
current |
another |
tolerance |
numeric >= 0. Differences smaller than
|
scale |
numeric scalar > 0 (or |
check.attributes |
currently not yet implemented. |
... |
Further arguments for different methods. |
Numerical comparisons for scale = NULL
(the default) are
typically on a relative difference scale unless the
target
values are close to zero or infinite. Specifically,
the scale is computed as the average absolute value of target
.
If this scale is finite and exceeds tolerance
, differences
are expressed relative to it; otherwise, absolute differences are used.
If scale
is numeric (and positive), absolute comparisons are
made after scaling (dividing) by scale
. Note that if all of
scale is sufficiently close to 1 (specifically, within tolerance
),
the difference is still reported as being on an absolute scale.
Do not use all.equal.spam
directly in if
expressions: either use isTRUE( all.equal.spam(...))
or
identical
if appropriate.
Cholesky decomposition routines use this function to test for symmetry.
A method for matrix-spam
objects is defined as well.
There is the additional catch of a zero matrix being represented by one zero element, see ‘Examples’ below.
Either TRUE
or a vector of 'mode' "character"
describing the
differences between target
and current
.
Reinhard Furrer
isSymmetric.spam
and cleanup
.
obj <- diag.spam(2)
obj[1,2] <- .Machine$double.eps
all.equal( diag.spam(2), obj)
all.equal( t(obj), obj)
all.equal( t(obj), obj*1.1)
# We can compare a spam to a matrix
all.equal(diag(2),diag.spam(2))
# the opposite does often not make sense,
# hence, it is not implemented.
all.equal(diag.spam(2),diag(2))
# A zero matrix contains one element:
str(spam(0))
# hence
all.equal.spam(spam(0,3,3), diag.spam(0,3) )
norm(spam(0,3,3) - diag.spam(0,3) )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.