# Question:Integrating numerically-defined function

## Question:Integrating numerically-defined function

Maple

I have several functions that cannot be integrated analytically but are to be used (repeatedly!) in further integrations. I have created a table of values of these integrals for a mesh of parameter values.   If I then use the ArrayInterpolation function to compute just one value at one point - it's very inefficient - takes lot's of time...

What is the optimal way of defining "InterpolatingFunction"  (in the language of Mathematica)?  Are there any fast functions that create an interpolating function with 2 or more arguments?

I really do not understand WHY is ArrayInterpolation so SLOW!!!!!!!!!!????

I have [20,20,200] data (3D array) - not so big table

using ArrayInterpolation(chiTableX, chiTable, Array([[.1, .1, .1]]), method = nearest)

takes 1 second!!!!  I used the most efficient (recommended) data formats.

It's a computation in one line to extract one value out of 6 neighbors!  Why it takes a second on my fast machine???

Shall I write a code for arrayinterpolation myself?

I added options degree=1, uniform=true, verify=false,

but still the performance has not improved! So, the problem is in something else, probably, in argument passing.  What is the optimal form of the data to pass:  Array, list ?  Or what?   I did it with Array, now try list

With list argument passing the performance has improved a bit, but is still poor!  with 10 x 20 x 100 data and linear interpolation it was 0.016 seconds for one point!!!  Very bad!

﻿