Deterministic Gaussian Sampling
Loading...
Searching...
No Matches
gm_to_dirac_short_standard_normal_deviation

Gaussian-to-Dirac approximation (standard normal deviation variant).

Overview

gm_to_dirac_short_standard_normal_deviation<T> approximates a multivariate Gaussian distribution by a Dirac mixture with L components in N dimensions.

This implementation assumes a standardized Gaussian structure (standard normal deviation scaling) and performs gradient-based optimization using a GSL minimizer backend.

It is a single-threaded implementation.

Interface

Inherits:

  • gm_to_dirac_approx_standard_normal_distribution_i<T>

Template parameter:

  • T ∈ {float, double}

Provides overloads of:

  • approximate(...)
  • modified_van_mises_distance_sq(...)
  • modified_van_mises_distance_sq_derivative(...)

Parameters

Common parameters:

  • L → number of Dirac components
  • N → dimension
  • bMax → integration bound
  • x → initial guess and output locations (L × N)
  • wX → weights of the Dirac mixture (optional)

If wX is nullptr:

  • Uniform weights are assumed

Supported Input Formats

Three overload families are available:

  • Raw pointer interface (T*)
  • GSL vector interface (gsl_vector / gsl_vector_float)
  • GSL matrix interface (gsl_matrix / gsl_matrix_float)

Memory layout:

  • x represents L × N Dirac locations

Example (Raw Pointer)

L,
N,
bMax,
x, // initial guess / output (L × N)
wX, // weights (optional)
);
Definition dirac_to_dirac_approx_short.h:9
bool approximate(const T *y, size_t M, size_t L, size_t N, size_t bMax, T *x, const T *wX=nullptr, const T *wY=nullptr, GslminimizerResult *result=nullptr, const ApproximateOptions &options=ApproximateOptions{}) override
reduce the data points using raw pointers
Definition dirac_to_dirac_approx_short.cpp:24

Example (GSL Vector)

Example (GSL Matrix)

Notes

  • Single-threaded implementation
  • Uses analytical gradient evaluation
  • Specialized for standardized Gaussian structures
  • Interface-compatible with other Gaussian-to-Dirac variants