1#ifndef DIRAC_TO_DIRAC_SHORT_FUNCTION_H
2#define DIRAC_TO_DIRAC_SHORT_FUNCTION_H
4#include <gtest/gtest.h>
6#include "dirac_to_dirac_approx_function_i.h"
13 typename dirac_to_dirac_approx_function_i<T>::GSLVectorType;
14 using GSLVectorViewType =
15 typename dirac_to_dirac_approx_function_i<T>::GSLVectorViewType;
17 typename dirac_to_dirac_approx_function_i<T>::GSLMatrixType;
18 using wXf =
typename dirac_to_dirac_approx_function_i<T>::wXf;
19 using wXd =
typename dirac_to_dirac_approx_function_i<T>::wXd;
43 wXd wXDcallback)
override;
55 wXd wXDcallback)
override;
71 const GSLVectorType *y,
77 wXd wXDcallback)
override;
82 const GSLVectorType *y,
88 wXd wXDcallback)
override;
109 wXd wXDcallback)
override;
119 wXd wXDcallback)
override;
123 static double c_b(
size_t bMax);
129 static void combined_distance_metric(
const gsl_vector* x,
void* params,
130 double* f, gsl_vector* grad);
133 dirac_to_dirac_approx_short_function_test_modified_van_mises_distance_sq_derivative,
134 parameterized_test_modified_van_mises_distance_sq_derivative);
139 const gsl_vector* y,
size_t L,
size_t N,
size_t bMax, gsl_vector* x,
145 double>::modified_van_mises_distance_sq(
double* distance,
146 const gsl_vector* y,
size_t L,
147 size_t N,
size_t bMax,
148 gsl_vector* x, wXf wXcallback,
153 double>::modified_van_mises_distance_sq_derivative(gsl_matrix* gradient,
interface for the gausian mixture to dirac approximation with a custom weight function
Definition dirac_to_dirac_approx_function_i.h:21
Definition dirac_to_dirac_approx_short_function.h:10
void modified_van_mises_distance_sq(T *distance, const T *y, size_t M, size_t L, size_t N, size_t bMax, T *x, wXf wXcallback, wXd wXDcallback) override
calculate modified van mises distance based on x and y
Definition dirac_to_dirac_approx_short_function.cpp:34
void modified_van_mises_distance_sq_derivative(GSLMatrixType *gradient, const GSLVectorType *y, size_t L, size_t N, size_t bMax, GSLVectorType *x, wXf wXcallback, wXd wXDcallback) override
calculate modified van mises distance based on x and y
bool approximate(const GSLVectorType *y, size_t L, size_t N, size_t bMax, GSLVectorType *x, wXf wXcallback, wXd wXDcallback, GslminimizerResult *result=nullptr, const ApproximateOptions &options=ApproximateOptions{}) override
reduce the data points using gsl vectors
void modified_van_mises_distance_sq(T *distance, const GSLVectorType *y, size_t L, size_t N, size_t bMax, GSLVectorType *x, wXf wXcallback, wXd wXDcallback) override
calculate modified van mises distance based on x and y
bool approximate(const T *y, size_t M, size_t L, size_t N, size_t bMax, T *x, wXf wXcallback, wXd wXDcallback, GslminimizerResult *result=nullptr, const ApproximateOptions &options=ApproximateOptions{}) override
reduce the data points using raw pointers
Definition dirac_to_dirac_approx_short_function.cpp:20
void modified_van_mises_distance_sq_derivative(T *gradient, const T *y, size_t M, size_t L, size_t N, size_t bMax, T *x, wXf wXcallback, wXd wXDcallback) override
calculate modified van mises distance based on x and y
Definition dirac_to_dirac_approx_short_function.cpp:48
Definition approximate_options.h:6
struct to hold the result of the minimization
Definition gsl_minimizer.h:32