Skip to content

Latest commit

 

History

History
231 lines (192 loc) · 10.5 KB

sandia_rules2.md

File metadata and controls

231 lines (192 loc) · 10.5 KB

SANDIA_RULES2
Interface Functions for SANDIA_RULES {#sandia_rules2-interface-functions-for-sandia_rules align="center"}


SANDIA_RULES2 is a C++ library which contains a special set of interface functions to be used when SANDIA_SGMG or SANDIA_SGMGA wish to call SANDIA_RULES for quadrature rules.

The environment in which SANDIA_SGMG and SANDIA_SGMGA are used means that it is inconvenient to pass extra parameters that might be needed to define a particular quadrature rule; in particular, the generalized Hermite, generalized Laguerre, and Jacobi quadrature rules require one or two parameters for a complete definition.

These two libraries arrange for the parameters to be available through class mechanisms, so that they do not appear in the parameter list. In an attempt to reproduce that environment, SANDIA_RULES2 supplies the corresponding "parameter free" calling sequences for the quadrature rules. In order to make this scheme actually work, we declare (but do not produce) a function called parameter ( ) which is presumed to be able to return the necessary information.

If a user wishes to test the SANDIA_RULES2 code, it is then necessary to supply a version of the parameter function. An example is exhibited in the test code. It is of little importance that this interface is awkward. We are simply emulating the way the system works elsewhere because we need to make sure that the results are computed correctly!

Index Name Abbreviation Default Growth Rule Interval Weight function


1 Clenshaw-Curtis CC Moderate Exponential [-1,+1] 1 2 Fejer Type 2 F2 Moderate Exponential [-1,+1] 1 3 Gauss Patterson GP Moderate Exponential [-1,+1] 1 4 Gauss-Legendre GL Moderate Linear [-1,+1] 1 5 Gauss-Hermite GH Moderate Linear (-oo,+oo) e^-x*x^ 6 Generalized Gauss-Hermite GGH Moderate Linear (-oo,+oo) |x|^alpha^ e^-x*x^ 7 Gauss-Laguerre LG Moderate Linear [0,+oo) e^-x^ 8 Generalized Gauss-Laguerre GLG Moderate Linear [0,+oo) x^alpha^ e^-x^ 9 Gauss-Jacobi GJ Moderate Linear [-1,+1] (1-x)^alpha^ (1+x)^beta^ 10 Hermite Genz-Keister HGK Moderate Exponential (-oo,+oo) e^-x*x^ 11 User-supplied Open Rule UO Moderate Linear ? ? 12 User-supplied Closed Rule UC Moderate Linear ? ?

Also included in this library are functions for Newton-Cotes Open ("NCO") and Newton-Cotes Closed ("NCC") rules, which can be used as "User Supplied" rules.

Licensing: {#licensing align="center"}

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages: {#languages align="center"}

SANDIA_RULES2 is available in a C++ version.

Related Data and Programs: {#related-data-and-programs align="center"}

CHEBYSHEV1_RULE, a C++ program which can compute and print a Gauss-Chebyshev type 1 quadrature rule.

CHEBYSHEV2_RULE, a C++ program which can compute and print a Gauss-Chebyshev type 2 quadrature rule.

GEGENBAUER_RULE, a C++ program which can compute and print a Gauss-Gegenbauer quadrature rule.

GEN_HERMITE_RULE, a C++ program which can compute and print a generalized Gauss-Hermite quadrature rule.

GEN_LAGUERRE_RULE, a C++ program which can compute and print a generalized Gauss-Laguerre quadrature rule.

HERMITE_RULE, a C++ program which can compute and print a Gauss-Hermite quadrature rule.

JACOBI_RULE, a C++ program which can compute and print a Gauss-Jacobi quadrature rule.

LAGUERRE_RULE, a C++ program which can compute and print a Gauss-Laguerre quadrature rule.

LEGENDRE_RULE, a C++ program which can compute and print a Gauss-Legendre quadrature rule.

QUADRULE, a C++ library which defines 1-dimensional quadrature rules.

SANDIA_RULES, a C++ library which produces 1D quadrature rules of Chebyshev, Clenshaw Curtis, Fejer 2, Gegenbauer, generalized Hermite, generalized Laguerre, Hermite, Jacobi, Laguerre, Legendre and Patterson types.

SANDIA_SGMG, a C++ library which creates a sparse grid dataset based on a mixed set of 1D factor rules, and experiments with the use of a linear growth rate for the quadrature rules. This is a version of SPARSE_GRID_MIXED_GROWTH that uses a different procedure for supplying the parameters needed to evaluate certain quadrature rules.

SANDIA_SGMGA, a C++ library which creates sparse grids based on a mixture of 1D quadrature rules, allowing anisotropic weights for each dimension. This is a version of SGMGA that uses a different procedure for supplying the parameters needed to evaluate certain quadrature rules.

SGMGA, a C++ library which creates sparse grids based on a mixture of 1D quadrature rules, allowing anisotropic weights for each dimension.

SPARSE_GRID_MIXED, a C++ library which creates a sparse grid dataset based on a mixed set of 1D factor rules.

SPARSE_GRID_MIXED_GROWTH, a C++ library which creates a sparse grid dataset based on a mixed set of 1D factor rules, and experiments with the use of a linear growth rate for the quadrature rules.

Reference: {#reference align="center"}

  1. Milton Abramowitz, Irene Stegun,
    Handbook of Mathematical Functions,
    National Bureau of Standards, 1964,
    ISBN: 0-486-61272-4,
    LC: QA47.A34.
  2. William Cody,
    An Overview of Software Development for Special Functions,
    in Numerical Analysis Dundee, 1975,
    edited by GA Watson,
    Lecture Notes in Mathematics 506,
    Springer, 1976.
  3. Philip Davis, Philip Rabinowitz,
    Methods of Numerical Integration,
    Second Edition,
    Dover, 2007,
    ISBN: 0486453391,
    LC: QA299.3.D28.
  4. 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 299-309.
  5. John Hart, Ward Cheney, Charles Lawson, Hans Maehly, Charles Mesztenyi, John Rice, Henry Thatcher, Christoph Witzgall,
    Computer Approximations,
    Wiley, 1968,
    LC: QA297.C64.
  6. Knut Petras,
    Smolyak Cubature of Given Polynomial Degree with Few Nodes for Increasing Dimension,
    Numerische Mathematik,
    Volume 93, Number 4, February 2003, pages 729-753.
  7. Arthur Stroud, Don Secrest,
    Gaussian Quadrature Formulas,
    Prentice Hall, 1966,
    LC: QA299.4G3S7.
  8. Shanjie Zhang, Jianming Jin,
    Computation of Special Functions,
    Wiley, 1996,
    ISBN: 0-471-11963-6,
    LC: QA351.C45

Source Code: {#source-code align="center"}

Examples and Tests: {#examples-and-tests align="center"}

List of Routines: {#list-of-routines align="center"}

  • CCN_POINTS computes nested Clenshaw Curtis quadrature points.
  • CCN_WEIGHTS computes nested Clenshaw Curtis quadrature weights.
  • CLENSHAW_CURTIS_POINTS computes Clenshaw Curtis quadrature points.
  • CLENSHAW_CURTIS_WEIGHTS computes Clenshaw Curtis quadrature weights.
  • FEJER2_POINTS computes Fejer type 2 quadrature points.
  • FEJER2_WEIGHTS computes Fejer type 2 quadrature weights.
  • GEN_HERMITE_POINTS: Generalized Hermite quadrature points.
  • GEN_HERMITE_WEIGHTS: Generalized Hermite quadrature weights.
  • GEN_LAGUERRE_POINTS: Generalized Laguerre quadrature points.
  • GEN_LAGUERRE_WEIGHTS: Generalized Laguerre quadrature weights.
  • HCC_POINTS computes Hermite-Cubic-Chebyshev-Spacing quadrature points.
  • HCC_WEIGHTS computes Hermite-Cubic-Chebyshev-Spacing quadrature weights.
  • HCE_POINTS computes Hermite-Cubic-Equal-Spacing quadrature points.
  • HCE_WEIGHTS computes Hermite-Cubic-Equal-Spacing quadrature weights.
  • HERMITE_GENZ_KEISTER_POINTS looks up Genz-Keister Hermite abscissas.
  • HERMITE_GENZ_KEISTER_WEIGHTS looks up Genz-Keister Hermite weights.
  • HERMITE_POINTS computes Hermite quadrature points.
  • HERMITE_WEIGHTS computes Hermite quadrature weights.
  • JACOBI_POINTS computes Jacobi quadrature points.
  • JACOBI_WEIGHTS computes Jacobi quadrature weights.
  • LAGUERRE_POINTS computes Laguerre quadrature points.
  • LAGUERRE_WEIGHTS computes Laguerre quadrature weights.
  • LEGENDRE_POINTS computes Legendre quadrature points.
  • LEGENDRE_WEIGHTS computes Legendre quadrature weights.
  • NCC_POINTS computes Newton Cotes Closed quadrature points.
  • NCC_WEIGHTS computes Newton Cotes Closed quadrature weights.
  • NCO_POINTS computes Newton Cotes Open quadrature points.
  • NCO_WEIGHTS computes Newton Cotes Open quadrature weights.
  • PATTERSON_POINTS looks up Patterson quadrature points.
  • PATTERSON_WEIGHTS looks up Patterson quadrature weights.

You can go up one level to the C++ source codes.


Last revised on 03 August 2011.