Deterministic Gaussian Sampling
Loading...
Searching...
No Matches
gradient_van_mises_distance_sq_dynamic_weight.h
1#ifndef GRADIENT_VAN_MISES_DISTANCE_SQ_DYNAMIC_WEIGHT_H
2#define GRADIENT_VAN_MISES_DISTANCE_SQ_DYNAMIC_WEIGHT_H
3
4#include "dirac_to_dirac_optimization_params.h"
5#include "gsl_minimizer.h"
6#include "gsl_multivariative_gradient_template.h"
7
10 DiracToDiracVariableWeightOptimizationParams> {
11 public:
12 static double scalarFunctionWrapper(double xI, void* params) {
13 GradientParams* gradientParams = (GradientParams*)params;
17 double fValue = gradientParams->f(xCopy, gradientParams->params);
19 return fValue;
20 }
21
22 void multivariativeGradient(
23 const gsl_vector* x, gsl_vector* grad, VectorFunc f,
25 double h = 1e-6) override {
26 GradientParams gp;
27 gp.xOriginal = (gsl_vector*)x; // Non-const because we make a copy inside
28 gp.params = params;
29 gp.f = f;
31 F.function =
32 gradient_van_mises_distance_sq_dynamic_weight::scalarFunctionWrapper;
33 F.params = &gp;
34
35 for (size_t i = 0; i < x->size; ++i) {
36 gp.index = i;
37
38 double result, error;
41 }
42 }
43};
44
45#endif // GRADIENT_VAN_MISES_DISTANCE_SQ_DYNAMIC_WEIGHT_H
Definition dirac_to_dirac_approx_short.h:9
Definition gradient_van_mises_distance_sq_dynamic_weight.h:10
Definition gsl_multivariative_gradient_template.h:10
optimization parameters for the GMToDirac approximation with variable weights
Definition dirac_to_dirac_optimization_params.h:211