Rev 4371 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
%%----- Docu for *all* sparse vector classes ----------\name{sparseVector-class}\docType{class}\title{Sparse Vector Classes}\alias{sparseVector-class}% sub classes\alias{dsparseVector-class}\alias{isparseVector-class}\alias{lsparseVector-class}\alias{nsparseVector-class}\alias{zsparseVector-class}\alias{xsparseVector-class}% the class union%% Group methods% \alias{Math,sparseVector-method}% %\alias{Math2,sparseVector,numeric-method}\alias{Arith,sparseVector,sparseVector-method}\alias{Arith,dsparseVector,dsparseVector-method}\alias{-,dsparseVector,missing-method}\alias{Logic,sparseVector,sparseVector-method}\alias{Logic,lsparseVector,lsparseVector-method}\alias{Ops,ANY,sparseVector-method}\alias{Ops,sparseVector,ANY-method}\alias{Ops,sparseVector,atomicVector-method}\alias{Ops,atomicVector,sparseVector-method}%\alias{coerce,ANY,sparseVector-method}\alias{coerce,TsparseMatrix,sparseVector-method}\alias{coerce,diagonalMatrix,sparseVector-method}\alias{coerce,sparseMatrix,sparseVector-method}\alias{coerce,atomicVector,sparseVector-method}\alias{coerce,triangularVector,sparseVector-method}\alias{coerce,sparseVector,vector-method}\alias{coerce,xsparseVector,dsparseVector-method}\alias{coerce,xsparseVector,isparseVector-method}\alias{coerce,xsparseVector,lsparseVector-method}\alias{coerce,xsparseVector,zsparseVector-method}\alias{coerce,sparseVector,nsparseVector-method}%\alias{as.numeric,sparseVector-method}\alias{as.vector,sparseVector,missing-method}\alias{as.vector,sparseVector,character-method}\alias{length,sparseVector-method}\alias{show,sparseVector-method}%\alias{[,sparseVector,index,ANY,ANY-method}\alias{[<-,sparseVector,index,missing,replValue-method}%\description{Sparse Vector Classes: The virtual mother class\code{"sparseVector"} has the five actual daughter classes\code{"dsparseVector"}, \code{"isparseVector"},\code{"lsparseVector"}, \code{"nsparseVector"}, and\code{"zsparseVector"}, where we've mainly implemented methods forthe \code{d*}, \code{l*} and \code{n*} ones.}\section{Slots}{\describe{\item{\code{length}:}{class \code{"integer"} - the \code{\link{length}}of the sparse vector.}\item{\code{i}:}{class \code{"integer"} - the (1-based) indices ofthe non-zero entries.}\item{\code{x}:}{(for all but \code{"nsparseVector"}):the non-zero entries. This is of class \code{"numeric"} for class\code{"dsparseVector"}, \code{"logical"} for class\code{"lsparseVector"}, etc.Note that \code{"nsparseVector"}s have no \code{x} slot.Further, mainly for ease of method definitions, we've defined theclass union (see \code{\link{setClassUnion}}) of all sparse vectorclasses which \emph{have} an \code{x} slot, as class \code{"xsparseVector"}.}}}\section{Methods}{\describe{\item{length}{\code{signature(x = "sparseVector")}: simply extractsthe \code{length} slot.}\item{show}{\code{signature(object = "sparseVector")}: The\code{\link{show}} method for sparse vectors prints\emph{\dQuote{structural}} zeroes as \code{"."} using thenon-exported \code{prSpVector} function which allows furthercustomization such as replacing \code{"."} by \code{" "} (blank).Note that \code{\link{options}(max.print)} will influence how manyentries of large sparse vectors are printed at all.}\item{as.vector}{\code{signature(x = "sparseVector", mode = "character")}coerces sparse vectors to \dQuote{regular}, i.e., atomic vectors.This is the same as \code{as(x, "vector")}.}}}%\author{Martin}\examples{showClass("sparseVector")showClass("dsparseVector")showClass("xsparseVector")# those with an 'x' slotsx <- c(0,0,3, 3.2, 0,0,0,-3:1,0,0,2,0,0,5,0,0)(ss <- as(sx, "sparseVector"))ix <- as.integer(round(sx))(is <- as(ix, "sparseVector"))%% FIXME: I'd want isparseVector%%as(is, "isparseVector") %% ERROR ## FIXME%% FIXME: Explain and show spV2M() or its successor}\keyword{classes}