Deterministic Gaussian Sampling
Loading...
Searching...
No Matches
gradient_van_mises_distance.h
1#ifndef GRADIENT_VAN_MISES_DISTANCE_H
2#define GRADIENT_VAN_MISES_DISTANCE_H
3
4#include "gsl_minimizer.h"
5#include "gsl_multivariative_gradient_template.h"
6
9 public:
10 static double scalarFunctionWrapper(double xI, void* params) {
11 GradientParams* gradientParams = (GradientParams*)params;
15 double fValue = gradientParams->f(xCopy, gradientParams->params);
17 return fValue;
18 }
19
20 void multivariativeGradient(const gsl_vector* x, gsl_vector* grad,
21 VectorFunc f, void* params,
22 double h = 1e-6) override {
23 GradientParams gp;
24 gp.xOriginal = (gsl_vector*)x; // Non-const because we make a copy inside
25 gp.params = params;
26 gp.f = f;
28 F.function = gradient_van_mises_distance::scalarFunctionWrapper;
29 F.params = &gp;
30
31 for (size_t i = 0; i < x->size; ++i) {
32 gp.index = i;
33
34 double result, error;
37 }
38 }
39};
40
41#endif // GRADIENT_VAN_MISES_DISTANCE_H
Definition dirac_to_dirac_approx_short.h:9
Definition gradient_van_mises_distance.h:8
Definition gsl_multivariative_gradient_template.h:10