From Rembert.DeBlander at econ.kuleuven.ac.be  Thu Jul  8 17:31:10 2004
From: Rembert.DeBlander at econ.kuleuven.ac.be (Rembert.DeBlander@econ.kuleuven.ac.be)
Date: Thu Jul  8 17:31:12 2004
Subject: [Rd] (PR#7070)
Message-ID: <20040708153110.679E1108E6@slim.kubism.ku.dk>

> version
         _
platform i686-pc-linux-gnu
arch     i686
os       linux-gnu
system   i686, linux-gnu
status
major    1
minor    7.1
year     2003
month    06
day      16
language R

Bug:

integrate(f,lower,upper,extra_args)

where

f <- function(x,extra_args)
{
body
}

integrate doesn't pass the extra arguments when calling f.
As a first check of this finding I integrated dnorm from minus infinity =
to 1, with mu =3D -1 and sd =3D 7. As shown below the result is not =
equal to pnorm(1,-1,7), but it is equal to pnorm(1,0,1) where the =
default values for mu and sd are taken.
As a second check I debugged integrate see example 2 below.
Since the function I need to integrate doesn't make sense with default =
values for the extra parameters, I do not find a way to work around this =
problem.
I have not found any relevant existing bug reports.

Rembert.DeBlander@econ.kuleuven.ac.be

Example 1
*********
> integrate(dnorm,lower=3D"-INF",upper=3D1,-1,7)
Error in integrate(dnorm, lower =3D "-INF", upper =3D 1, -1, 7) :
        invalid parameter values

> integrate(dnorm,lower=3D"-INF",upper=3D1,subdivisions=3D100,-1,7)
0.841331 with absolute error < 0.16=20

>integrate(dnorm,lower=3D"-INF",upper=3D1,subdivisions=3D100,rel.tol=3D.M=
achine$double.eps^0.25,abs.tol=3D.Machine$double.eps^0.25,-1,7)
0.8413448 with absolute error < 1.5e-05

> pnorm(1,-1,7)
[1] 0.6124515

> pnorm(1,0,1)
[1] 0.8413447

Example 2
*********
fex <- function(x, v, M)
{
(x - t(v) %*% M %*% v)^2
}
debug(integrate)
integrate(fex,lower=3D-3,upper=3D7,subdivisions=3D100,c(1,2,3),matrix(2,3=
,3))

results in
.
.
.
debug: wk <- .External("call_dqags", ff, rho =3D environment(), =
as.double(lower),
    as.double(upper), as.double(abs.tol), as.double(rel.tol),
    limit =3D limit, PACKAGE =3D "base")
Browse[1]>
Error in t(v) : Argument "v" is missing, with no default


[Rd] (PR#7070)
Rembert.DeBlander@econ.kuleuven.ac.be