\HeaderA{numericDeriv}{Evaluate derivatives numerically}{numericDeriv}
\keyword{models}{numericDeriv}
\begin{Description}\relax
\code{numericDeriv} numerically evaluates the gradient of an expression.
\end{Description}
\begin{Usage}
\begin{verbatim}
numericDeriv(expr, theta, rho = parent.frame(), dir = 1.0)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{expr}] The expression to be differentiated.  The value of this
expression should be a numeric vector.
\item[\code{theta}] A character vector of names of numeric variables
used in \code{expr}.
\item[\code{rho}] An environment containing all the variables needed to
evaluate \code{expr}.
\item[\code{dir}] A numeric vector of directions to use for the finite
differences.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
This is a front end to the C function \code{numeric\_deriv}, which is
described in \emph{Writing R Extensions}.

The numeric variables must be of type \code{real} and not \code{integer}.
\end{Details}
\begin{Value}
The value of \code{eval(expr, envir = rho)} plus a matrix
attribute called \code{gradient}.  The columns of this matrix are
the derivatives of the value with respect to the variables listed in
\code{theta}.
\end{Value}
\begin{Author}\relax
Saikat DebRoy \email{saikat@stat.wisc.edu}
\end{Author}
\begin{Examples}
\begin{ExampleCode}
myenv <- new.env()
assign("mean", 0., envir = myenv)
assign("sd", 1., envir = myenv)
assign("x", seq(-3., 3., len = 31), envir = myenv)
numericDeriv(quote(pnorm(x, mean, sd)), c("mean", "sd"), myenv)
\end{ExampleCode}
\end{Examples}

