# spam {spam}

### Description

This group of functions evaluates and coerces changes in class structure.

### Usage

spam(x, nrow = 1, ncol = 1, eps = .Spam$eps) as.spam(x, eps = .Spam$eps) is.spam(x)

### Arguments

- x
- is a matrix (of either dense or sparse form), a list, vector object or a distance object
- nrow
- number of rows of matrix
- ncol
- number of columns of matrix
- eps
- A tolerance parameter: elements of
`x`

such that`abs(x) < eps`

set to zero. Defaults to`eps = .Spam$eps`

### Details

The functions `spam`

and `as.spam`

act like `matrix`

and `as.matrix`

to coerce an object to a sparse matrix object of class `spam`

.

If `x`

is a list, it should contain either two or three elements. In case of the former, the list should contain a `n`

by two matrix of indicies (called `ind`

) and the values. In case of the latter, the list should contain three vectors containing the row, column indices (called `i`

and `j`

) and the values. In both cases partial matching is done. In case there are several triplets with the same `i`

, `j`

, the values are added. `eps`

should be at least as large as `.Machine$double.eps`

.

### Values

A valid `spam`

object.

`is.spam`

returns `TRUE`

if `x`

is a `spam`

object.

### References

http://en.wikipedia.org/wiki/Sparse_matrix as a start.

### Note

The zero matrix has the element zero stored in (1,1).

The functions do not test the presence of `NA/NaN/Inf`

. Virtually all call a Fortran routine with the `NAOK=!.Spam$safemode[3]`

argument, which defaults to `FALSE`

resulting in an error. Hence, the `NaN`

do not always properly propagate through (i.e. `spam`

is not IEEE-754 compliant).

### See Also

`SPAM`

for a general overview of the package; `spam.options`

for details about the `safemode`

flag; `read.MM`

and `foreign`

to create `spam`

matrices from MatrixMarket files and from certain Matrix or SparseM formats.

### Examples

Documentation reproduced from package spam, version 0.40-0. License: GPL | file LICENSE