____________________
intgfun<- function(a,b,c,mu,alpha,xi,upper, ...,subdivisions = 100, rel.tol
= .Machine$double.eps^0.25,
abs.tol = rel.tol, stop.on.error = TRUE, keep.xy = FALSE,
aux = NULL)
{
x<-vector()
fs<-function(x){
temp<-(-xi^(-1))*log(1-xi*(x-mu)/alpha)
(((alpha^(-1))*(exp((-(1-xi)*temp)-exp(-temp))))*((a*(x-c)^0.5)+(b*(x-c))))
}
return(fs)
intgrt<-function(lower)
{
call(fs)
fs <- match.fun(f)
ff <- function(x) f(x, ...)
limit <- as.integer(subdivisions)
if (limit < 1 || (abs.tol <= 0 && rel.tol < max(50 *
.Machine$double.eps,
5e-29)))
stop("invalid parameter values")
if (is.finite(lower) && is.finite(upper)) {
wk <- .External("call_dqags", ff, rho = environment(),
as.double(lower), as.double(upper), as.double(abs.tol),
as.double(rel.tol), limit = limit, PACKAGE = "base")
}
else {
if (is.na(lower) || is.na(upper))
stop("a limit is missing")
if (is.finite(lower)) {
inf <- 1
bound <- lower
}
else if (is.finite(upper)) {
inf <- -1
bound <- upper
}
else {
inf <- 2
bound <- 0
}
wk <- .External("call_dqagi", ff, rho = environment(),
as.double(bound), as.integer(inf), as.double(abs.tol),
as.double(rel.tol), limit = limit, PACKAGE = "base")
}
res <- wk[c("value", "abs.error", "subdivisions")]
res$message <- switch(wk$ierr + 1, "OK", "maximum number of
subdivisions reached",
"roundoff error was detected", "extremely bad integrand behaviour",
"roundoff error is detected in the extrapolation table",
"the integral is probably divergent", "the input is invalid")
if (wk$ierr == 6 || (wk$ierr > 0 && stop.on.error))
stop(res$message)
res$call <- match.call()
class(res) <- "integrate"
res
}
return (intgrt)}
[[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.