Description Usage Arguments Details Value Examples

Evaluate a function on a Chebyshev grid, or on a user-specified grid.

1 2 3 | ```
evalongrid(fun, dims, intervals = NULL, ..., grid = NULL)
evalongridV(fun, dims, intervals = NULL, ..., grid = NULL)
``` |

`fun` |
Multivariate real-valued function to be evaluated. Must be
defined on the hypercube described by |

`dims` |
A vector of integers. The number of grid-points in each dimension. |

`intervals` |
A list. Each entry is a vector of length 2 with the lower and upper end of the interval in each dimension. |

`...` |
Further arguments to fun. |

`grid` |
Rather than specifying dims and intervals to get a Chebyshev
grid, you may specify your own |

The function `fun`

should be a `function(x,...)`

, where
`length(x)`

equals `length(dims)`

(or `length(grid)`

).

If `grid`

is provided, `fun`

is evaluated on each point in the
Cartesian product of the vectors in `grid`

.

If `intervals`

is not provided, it is assumed that the domain of the
function is the hypercube [-1,1] x [-1,1] x ... x [-1,1]. Thus, the
function is evaluated on a standard Chebyshev grid.

If `intervals`

is provided, it should be a `list`

with elements of
length 2, providing minimum and maximum for each dimension.

The grid itself may be produced by
`expand.grid(chebknots(dims,intervals))`

, or
`expand.grid(grid)`

.

This function does the same as `apply(expand.grid(grid),1,fun)`

, but
it's faster and more memory-efficient for large grids because it does not
actually expand the grid.

The function `evalongridV`

is for vectorized functions, i.e. those that
can take a matrix of column vectors as argument. It's equivalent to
`fun(t(expand.grid(grid)))`

.

An array with the value of `fun`

on each grid point. The
`dim`

attribute has been appropriately set for the grid. If `fun`

returns a vector, this will be the first dimension of the returned array.

1 2 3 4 5 6 7 8 9 10 11 12 13 | ```
f <- function(x) {a <- sum(x^2); ifelse(a == 0,0,exp(-1/a))}
## Standard Chebyshev grid
evalongrid(f,dims=c(3,5))
## Then Chebyshev on [0,1] x [2,3]
evalongrid(f,dims=c(3,5),intervals=list(c(0,1),c(2,3)))
## And on my own grid
grid <- list(sort(rnorm(3)),sort(rnorm(5)))
evalongrid(f,grid=grid)
g <- ipol(f,grid=grid,method='fh')
evalongridV(g, grid=grid, threads=2)
## vector valued function
f <- function(x) c(prod(x),sum(x^2))
evalongrid(f,grid=grid)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.