allequal {spam}R Documentation

Test if Two 'spam' Objects are (Nearly) Equal

Description

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.

Usage

all.equal.spam(target, current, tolerance = .Machine$double.eps^0.5,
    scale = NULL, check.attributes = FALSE,...)

Arguments

target a spam object.
current another spam object to be compared with target.
tolerance numeric >= 0. Differences smaller than tolerance are not considered.
scale numeric scalar > 0 (or NULL). See 'Details'.
check.attributes currently not yet implemented.
... Further arguments for different methods.

Details

Numerical comparisons for scale = NULL (the default) are done by first computing the mean absolute difference of the two numerical vectors. If this is smaller than tolerance or not finite, absolute differences are used, otherwise relative differences scaled by the mean absolute difference.

If scale is positive, absolute comparisons are made after scaling (dividing) by scale.

Don't 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.

Value

Either TRUE or a vector of 'mode' "character" describing the differences between target and current.

Author(s)

Reinhard Furrer

Examples

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))

[Package spam version 0.15-3 Index]