Properties of SG⁺⁺

  • Permissive license: SG⁺⁺ is free and open-source. Its permissive BSD-like license enables integration into existing software without worrying about license issues.
  • Portability: SG⁺⁺ runs on Linux, Mac OS, and Windows.
  • Rapid prototyping: Bindings to Python, Java, MATLAB, and C++ are available. SG⁺⁺ itself is written in C++ and Python.
  • Efficiency: All performance-critical parts are written in C++ to ensure maximum performance.
  • Parallelism: SG⁺⁺ supports OpenMP and MPI.
  • Modularity: SG⁺⁺ consists of different modules which can be switched off, which helps to reduce binary size and compile time.

Selected Features and Examples

The following list contains only the most important features of SG⁺⁺ and only selected examples.

Function Interpolation

Examples: Quick start example (C++), quick start example (Python)

  • Regular sparse grids
  • Spatial adaptivity
  • Numerous types of sparse grid bases (piecewise linear, B-splines, etc.)
  • Dimensional adaptivity with the sparse grid combination technique
  • Sophisticated interpolation (hierarchization) methods or via solution of the corresponding linear system

Data Mining & Machine Learning

Examples: Classification example (C++), regression example (C++)

  • Clustering of data points
  • Sparse grid regression
  • Classification
  • Support vector machines

Uncertainty Quantification & Quadrature

Example: Density estimation example (C++)

  • Sparse grid density estimation
  • Quadrature of sparse grid functions with various basis types
  • Estimation of expected values and variances
  • Built-in probability distributions
  • Propagation of fuzzy uncertainties with the fuzzy extension principle

Partial Differential Equations (PDEs)

  • Solvers for various PDEs (heat equation, Poisson equation, etc.)
  • Usage of external solvers with the sparse grid combination technique

Function Optimization

Examples: Optimization example (C++), optimization example (Python)

  • Gradient-based optimization methods (steepest descent, Newton, etc.)
  • Gradient-free optimization methods (Nelder-Mead, Differential Evolution, etc.)
  • Constrained optimization methods (Augmented Lagrangian)
  • Adaptivity criteria tailored to optimization (Ritter-Novak)