sparse_grid_hw
sparse_grid_hw,
a C code which
can compute sparse grids for multidimensional integration,
based on 1D rules for the unit interval with unit weight function,
or for the real line with the GaussHermite weight function.
The original MATLAB code is by Florian Heiss and Viktor Winschel.
The original version of this software, and other information,
is available at
https://sparsegrids.de .
Four builtin 1D families of quadrature rules are supplied, and the
user can extend the package by supplying any family of 1D quadrature
rules.
The builtin families are identified by a 3letter key which is also
the name of the function that returns members of the family:

gqu, standard GaussLegendre quadrature rules, for
the unit interval [0,1], with weight function w(x) = 1.

gqn, standard GaussHermite quadrature rules, for
the infinite interval (oo,+oo), with weight function
w(x) = exp(x*x/2)/sqrt(2*pi).

kpu, KronrodPatterson quadrature rules, for
the unit interval [0,1], with weight function w(x) = 1.
These sacrifice some of the precision of gqu in
order to provide a family of nested rules.

kpn, KronrodPatterson quadrature rules, for
the infinite interval (oo,+oo), with weight function
w(x) = exp(x*x/2)/sqrt(2*pi).
These sacrifice some of the precision of gqn in
order to provide a family of nested rules.
The user can build new sparse grids by supplying a 1D quadrature family.
Examples provided include:

cce_order, ClenshawCurtis Exponential quadrature rules, for
the unit interval [0,1], with weight function w(x) = 1.
The Kth call returns the rule of order 1
if K is 1, and 2*(K1)+1 otherwise.

ccl_order, ClenshawCurtis Linear quadrature rules, for
the unit interval [0,1], with weight function w(x) = 1.
The Kth call returns the rule of order 2*K1.

ccs_order, slow ClenshawCurtis Slow quadrature rules, for
the unit interval [0,1], with weight function w(x) = 1.
The Kth call returns the rule of order 1
if K is 1, and otherwise a rule whose order N has the
form 2^E+1 and is the lowest such order with precision at least 2*K1.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the MIT license
Languages:
sparse_grid_hw is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version
Related Data and Programs:
QUADRULE,
a C code which
defines quadrature rules for various intervals and weight functions.
SANDIA_RULES,
a C code which
generates Gauss quadrature rules of various orders and types.
SGMGA,
a C code which
creates sparse grids based on a mixture of 1D quadrature rules,
allowing anisotropic weights for each dimension.
sparse_grid_hw_test
Author:
Original MATLAB code by Florian Heiss and Viktor Winschel.
C version by John Burkardt.
Reference:

Alan Genz, Bradley Keister,
Fully symmetric interpolatory rules for multiple integrals
over infinite regions with Gaussian weight,
Journal of Computational and Applied Mathematics,
Volume 71, 1996, pages 299309.

Florian Heiss, Viktor Winschel,
Likelihood approximation by numerical integration on sparse grids,
Journal of Econometrics,
Volume 144, Number 1, May 2008, pages 6280.

Thomas Patterson,
The optimal addition of points to quadrature formulae,
Mathematics of Computation,
Volume 22, Number 104, October 1968, pages 847856.

Knut Petras,
Smolyak Cubature of Given Polynomial Degree with Few Nodes
for Increasing Dimension,
Numerische Mathematik,
Volume 93, Number 4, February 2003, pages 729753.
Source Code:
Last revised on 07 August 2019.