SPARSE_GRID_GL_DATASET 
 Create Gauss-Legendre Sparse Grid Dataset
    
    
    
      SPARSE_GRID_GL_DATASET
      is a C++ program which
      creates a Gauss-Legendre sparse grid dataset.
    
    
      Usage:
    
    
      
        sparse_grid_gl_dataset dim_num level_max
      
      where
      
        - 
          dim_num is the spatial dimension, typically between 2 and 10;
        
 
        - 
          level_max is the sparse grid level, typically between 0 and 6,
          which controls the number of points
          in the grid.  The 1D rules used will have order 2^(level_max)+1.
        
 
      
    
    
      Licensing:
    
    
      The code described and made available on this web page is distributed
      under the
      GNU LGPL license.
    
    
      Languages:
    
    
      SPARSE_GRID_GL_DATASET is available in
      a C++ version and
      a FORTRAN90 version and
      a MATLAB version.
    
    
      Related Data and Programs:
    
    
      
      CC_DISPLAY,
      a MATLAB library which
      can compute and display Clenshaw Curtis grids in two dimensions,
      as well as sparse grids formed from sums of Clenshaw Curtis grids.
    
    
      
      QUADRATURE_RULES,
      a dataset directory which
      defines quadrature rules;
      a number of examples of sparse grid quadrature rules are included.
    
    
      
      QUADRULE,
      a C++ library which
      defines quadrature rules for
      various intervals and weight functions.
    
    
      
      SGMGA,
      a C++ library which
      creates sparse grids based on a mixture of 1D quadrature rules,
      allowing anisotropic weights for each dimension.
    
    
      
      SMOLPACK,
      a C library which
      implements Novak and Ritter's method for estimating the integral
      of a function over a multidimensional hypercube using sparse grids.
    
    
      
      SPARSE_GRID_CC,
      a dataset directory which
      contains the abscissas of sparse
      grids based on a Clenshaw Curtis rule.
    
    
      
      SPARSE_GRID_CC_DATASET,
      a C++ program which
      creates a sparse grid dataset based on Clenshaw-Curtis rules.
    
    
      
      SPARSE_GRID_F2,
      a dataset directory which
      contains the abscissas of sparse
      grids based on a Fejer Type 2 rule.
    
    
      
      SPARSE_GRID_GL,
      a C++ library which
      can create a Gauss-Legendre sparse grid.
    
    
      
      SPARSE_GRID_GL,
      a dataset directory which
      contains Gauss-Legendre sparse grids.
    
    
      
      SPARSE_GRID_GP,
      a dataset directory which
      contains the abscissas of sparse
      grids based on a Gauss Patterson rule.
    
    
      
      SPARSE_GRID_HERMITE_DATASET,
      a C++ program which
      creates a sparse grid dataset based on Gauss-Hermite rules.
    
    
      
      SPARSE_GRID_LAGUERRE_DATASET,
      a C++ program which
      creates a sparse grid dataset based on Gauss-Laguerrre rules.
    
    
      
      SPARSE_GRID_MIXED_DATASET,
      a C++ program which
      creates a sparse grid dataset based on a mixture of 1D rules.
    
    
      
      SPARSE_GRID_NCC,
      a dataset directory which
      contains the abscissas of sparse
      grids based on a Newton Cotes closed rule.
    
    
      
      SPARSE_GRID_NCO,
      a dataset directory which
      contains the abscissas of sparse
      grids based on a Newton Cotes open rule.
    
    
      
      SPARSE_GRID_OPEN_DATASET,
      a C++ program which
      creates a sparse grid dataset based on
      open rules (Fejer 2, Gauss-Patterson, Newton-Cotes-Open).
    
    
      
      TOMS847,
      a MATLAB program which
      uses sparse grids to carry out multilinear hierarchical interpolation.
      It is commonly known as SPINTERP, and is by Andreas Klimke.
    
    
      Reference:
    
    
      
        - 
          Volker Barthelmann, Erich Novak, Klaus Ritter,
          High Dimensional Polynomial Interpolation on Sparse Grids,
          Advances in Computational Mathematics,
          Volume 12, Number 4, 2000, pages 273-288.
         
        - 
          Thomas Gerstner, Michael Griebel,
          Numerical Integration Using Sparse Grids,
          Numerical Algorithms,
          Volume 18, Number 3-4, 1998, pages 209-232.
         
        - 
          Albert Nijenhuis, Herbert Wilf,
          Combinatorial Algorithms for Computers and Calculators,
          Second Edition,
          Academic Press, 1978,
          ISBN: 0-12-519260-6,
          LC: QA164.N54.
         
        - 
          Fabio Nobile, Raul Tempone, Clayton Webster,
          A Sparse Grid Stochastic Collocation Method for Partial Differential
          Equations with Random Input Data,
          SIAM Journal on Numerical Analysis,
          Volume 46, Number 5, 2008, pages 2309-2345.
         
        - 
          Sergey Smolyak,
          Quadrature and Interpolation Formulas for Tensor Products of
          Certain Classes of Functions,
          Doklady Akademii Nauk SSSR,
          Volume 4, 1963, pages 240-243.
         
        - 
          Dennis Stanton, Dennis White,
          Constructive Combinatorics,
          Springer, 1986,
          ISBN: 0387963472,
          LC: QA164.S79.
         
      
    
    
      Source Code:
    
    
      
    
    
      Examples and Tests:
    
    
      Here are the three quadrature files created by the command
      
        sparse_grid_gl_dataset 2 3
      
      
    
    
      List of Routines:
    
    
      
        - 
          MAIN is the main program for SPARSE_GRID_GL_DATASET.
        
 
        - 
          CHOOSE computes the binomial coefficient C(N,K).
        
 
        - 
          COMP_NEXT computes the compositions of the integer N into K parts.
        
 
        - 
          GL_ABSCISSA sets abscissas for multidimensional Gauss-Legendre quadrature.
        
 
        - 
          GL_WEIGHTS returns weights for certain Gauss-Legendre quadrature rules.
        
 
        - 
          I4_LOG_2 returns the integer part of the logarithm base 2 of an I4.
        
 
        - 
          I4_MAX returns the maximum of two I4's.
        
 
        - 
          I4_MIN returns the smaller of two I4's.
        
 
        - 
          I4_MODP returns the nonnegative remainder of I4 division.
        
 
        - 
          I4_POWER returns the value of I^J.
        
 
        - 
          I4_TO_STRING converts an I4 to a C++ string.
        
 
        - 
          I4VEC_PRODUCT multiplies the entries of an I4VEC.
        
 
        - 
          INDEX_LEVEL_GL: determine first level at which given index is generated.
        
 
        - 
          LEVEL_TO_ORDER_OPEN converts a level to an order for open rules.
        
 
        - 
          MULTIGRID_INDEX_Z returns an indexed multidimensional grid.
        
 
        - 
          PRODUCT_WEIGHT_GL: weights for a product Gauss-Legendre rule.
        
 
        - 
          R8_EPSILON returns the R8 roundoff unit.
        
 
        - 
          R8_HUGE returns a "huge" R8.
        
 
        - 
          R8MAT_TRANSPOSE_PRINT_SOME prints some of an R8MAT, transposed.
        
 
        - 
          R8MAT_WRITE writes an R8MAT file.
        
 
        - 
          R8VEC_DIRECT_PRODUCT2 creates a direct product of R8VEC's.
        
 
        - 
          R8VEC_PRINT_SOME prints "some" of an R8VEC.
        
 
        - 
          S_LEN_TRIM returns the length of a string to the last nonblank.
        
 
        - 
          SPARSE_GRID_GL computes a sparse grid of Gauss-Legendre points.
        
 
        - 
          SPARSE_GRID_GL_INDEX indexes the points forming a sparse grid of GL points.
        
 
        - 
          SPARSE_GRID_GL_SIZE sizes a sparse grid of Gauss-Legendre points.
        
 
        - 
          TIMESTAMP prints the current YMDHMS date as a time stamp.
        
 
        - 
          VEC_COLEX_NEXT2 generates vectors in colex order.
        
 
      
    
    
      You can go up one level to 
      the C++ source codes.
    
    
    
      Last revised on 07 November 2009.