1#ifndef GM_TO_DIRAC_APPROX_STANDARD_NORMAL_DISTRIBUTION_I_H
2#define GM_TO_DIRAC_APPROX_STANDARD_NORMAL_DISTRIBUTION_I_H
4#include <gsl/gsl_matrix.h>
5#include <gsl/gsl_matrix_float.h>
6#include <gsl/gsl_matrix_long_double.h>
10#include "approximate_options.h"
11#include "gsl_minimizer.h"
12#include "gsl_vector_matrix_types.h"
22 using GSLVectorType =
typename GSLTemplateTypeAlias<T>::VectorType;
23 using GSLVectorViewType =
typename GSLTemplateTypeAlias<T>::VectorViewType;
24 using GSLMatrixType =
typename GSLTemplateTypeAlias<T>::MatrixType;
39 virtual bool approximate(
size_t L,
size_t N,
size_t bMax,
T* x,
const T* wX,
74 size_t N,
size_t bMax,
75 T* x,
const T* wX) = 0;
89 virtual bool approximate(
size_t L,
size_t N,
size_t bMax, GSLVectorType* x,
107 size_t bMax, GSLVectorType* x,
108 const GSLVectorType* wX) = 0;
124 size_t N,
size_t bMax,
125 GSLVectorType* x,
const GSLVectorType* wX) = 0;
139 virtual bool approximate(
size_t L,
size_t N,
size_t bMax, GSLMatrixType* x,
157 size_t bMax, GSLMatrixType* x,
158 const GSLVectorType* wX) = 0;
174 size_t N,
size_t bMax,
175 GSLMatrixType* x,
const GSLVectorType* wX) = 0;
Definition dirac_to_dirac_approx_short.h:9
interface for the gausian mixture to dirac approximation
Definition gm_to_dirac_approx_standard_normal_distribution_i.h:20
virtual bool approximate(size_t L, size_t N, size_t bMax, GSLMatrixType *x, const GSLVectorType *wX, GslminimizerResult *result, const ApproximateOptions &options)=0
approximate using gsl matricies where possible
virtual bool approximate(size_t L, size_t N, size_t bMax, GSLVectorType *x, const GSLVectorType *wX, GslminimizerResult *result, const ApproximateOptions &options)=0
approximate using gsl vectors
virtual void modified_van_mises_distance_sq(T *distance, size_t L, size_t N, size_t bMax, GSLVectorType *x, const GSLVectorType *wX)=0
calculate modified van mises distance based on standard normal deviation and x
virtual void modified_van_mises_distance_sq(T *distance, size_t L, size_t N, size_t bMax, T *x, const T *wX)=0
calculate modified van mises distance based on standard normal deviation and x
virtual void modified_van_mises_distance_sq(T *distance, size_t L, size_t N, size_t bMax, GSLMatrixType *x, const GSLVectorType *wX)=0
calculate modified van mises distance based on standard normal deviation and x
virtual void modified_van_mises_distance_sq_derivative(GSLMatrixType *gradient, size_t L, size_t N, size_t bMax, GSLMatrixType *x, const GSLVectorType *wX)=0
calculate modified van mises distance based on standard normal deviation and x
virtual void modified_van_mises_distance_sq_derivative(T *gradient, size_t L, size_t N, size_t bMax, T *x, const T *wX)=0
calculate modified van mises distance based on standard normal deviation and x
virtual bool approximate(size_t L, size_t N, size_t bMax, T *x, const T *wX, GslminimizerResult *result, const ApproximateOptions &options)=0
approximate using raw pointers
virtual void modified_van_mises_distance_sq_derivative(GSLVectorType *gradient, size_t L, size_t N, size_t bMax, GSLVectorType *x, const GSLVectorType *wX)=0
calculate modified van mises distance based on standard normal deviation and x
Definition approximate_options.h:6
struct to hold the result of the minimization
Definition gsl_minimizer.h:32