On 6 Aug 2014, at 16:26, Jeremy Whitton <
address@hidden> wrote:
> C.,
>
> While I agree that the integral functions are very similar to pre-existing octave functions, they do have some functionality which other functions do not (at least as far as I know; do correct me if I am wrong).
>
> For instance, the integral function supports an "ArrayValued" option, which quadgk does not (though this probably wouldn't be terribly hard to implement). Further, integral2 and integral3 support both a 'tiled' integration
method as well as an 'iterated' integration method. dblquad only implements an iterated method (but again, if this tiled functionality exists elsewhere in octave, please tell me). Implementing a tiled method would probably be harder, which is why I was thinking of using the cubature code that I found.
At first sight it looks to me like most of those functionalities could indeed be implemented as
extensions built on top of existing quadrature code in Octave, is this not the case?
> I could alternatively attempt to implement it myself in octave code as opposed to C code.
Octave uses C++, no plain C.
In general, when possible, it is actually preferred to implement algorithms in Octave language
rather than C++ as it makes code easier to maintain.
> I will also say that dblquad only allows for rectangular integration limits, while integral2 allows for limits of the form c(x) < y < d(x),
> for arbitrary functions c and d (and the trplquad vs integral3 situation is analogous), but that should be trivial to implement.
yes, it takes just a simple change of variables to switch from one to the other, I actally have code around that
allows integration on any 2D or 3D domain of the form
W = F (W'), W' = (0, 1)^d, d=2,3
F denoting a smooth invertible mapping with non-singular inverse.
> Jeremy Whitton
c.