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;
40 virtual bool approximate(
const T* covDiag,
size_t L,
size_t N,
size_t bMax,
58 size_t L,
size_t N,
size_t bMax,
59 T* x,
const T* wX) = 0;
76 size_t N,
size_t bMax,
77 T* x,
const T* wX) = 0;
92 virtual bool approximate(
const GSLVectorType* covDiag,
size_t L,
size_t N,
93 size_t bMax, GSLVectorType* x,
112 size_t bMax, GSLVectorType* x,
113 const GSLVectorType* wX) = 0;
129 const GSLVectorType* covDiag, GSLVectorType*
gradient,
size_t L,
size_t N,
130 size_t bMax, GSLVectorType* x,
const GSLVectorType* wX) = 0;
145 virtual bool approximate(
const GSLVectorType* covDiag,
size_t L,
size_t N,
146 size_t bMax, GSLMatrixType* x,
165 size_t bMax, GSLMatrixType* x,
166 const GSLVectorType* wX) = 0;
182 const GSLVectorType* covDiag, GSLMatrixType*
gradient,
size_t L,
size_t N,
183 size_t bMax, 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_i.h:20
virtual void modified_van_mises_distance_sq_derivative(const GSLVectorType *covDiag, 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
virtual void modified_van_mises_distance_sq_derivative(const T *covDiag, 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 void modified_van_mises_distance_sq(const T *covDiag, 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 bool approximate(const T *covDiag, 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 bool approximate(const GSLVectorType *covDiag, 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(const GSLVectorType *covDiag, 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_derivative(const GSLVectorType *covDiag, 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 bool approximate(const GSLVectorType *covDiag, 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 void modified_van_mises_distance_sq(const GSLVectorType *covDiag, 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
Definition approximate_options.h:6
struct to hold the result of the minimization
Definition gsl_minimizer.h:32