% File src/library/methods/man/nonStructure-class.Rd
% Part of the R package, https://www.R-project.org
% Copyright 2009-12 R Core Team
% Distributed under GPL 2 or later

\name{nonStructure-class}
\docType{class}
\alias{nonStructure-class}
\alias{Math,nonStructure-method}
\alias{Math2,nonStructure-method}
\alias{Ops,vector,nonStructure-method}
\alias{Ops,nonStructure,vector-method}
\alias{Ops,nonStructure,nonStructure-method}

\title{A non-structure S4 Class for basic types }
\description{ S4 classes that are defined to extend one of the basic
  vector classes should contain the class
  \code{\linkS4class{structure}} if they behave like structures; that
  is, if they should retain their class behavior under math functions
  or operators, so long as their length is unchanged.
  On the other hand, if their class depends on the values in the
  object, not just its structure, then they should lose that class
  under any such transformations.  In the latter case, they should be
  defined to contain \code{nonStructure}.

 If neither of these strategies applies, the class likely needs some
 methods of its own for \code{\link{Ops}}, \code{\link{Math}}, and/or
 other generic functions. What is not usually a good idea is to allow
 such computations to drop down to the default, base code.  This is
 inconsistent with most definitions of such classes.}

\section{Methods}{
 Methods are defined for operators and math functions (groups
 \code{\link{Ops}}, \code{\link{Math}} and  \code{\link{Math2}}).  In
 all cases the result is an ordinary vector of the appropriate type.
}
\references{
 Chambers, John M. (2008)
 \emph{Software for Data Analysis: Programming with R}
  Springer.
}
\seealso{
         \code{\linkS4class{structure}}
}
\examples{
setClass("NumericNotStructure", contains = c("numeric","nonStructure"))
xx <- new("NumericNotStructure", 1:10)
xx + 1 # vector
log(xx) # vector
sample(xx) # vector
\dontshow{removeClass("NumericNotStructure")
}
}
\keyword{classes}
