1#ifndef GM_TO_DIRAC_EVEN_OPTIMIZATION_PARAMS_H
2#define GM_TO_DIRAC_EVEN_OPTIMIZATION_PARAMS_H
4#include <gsl/gsl_matrix.h>
5#include <gsl/gsl_vector.h>
10#include "gsl_minimizer.h"
12#include "squared_euclidean_distance_utils.h"
48 squaredEuclideanDistanceUtilLL =
56 if (squaredEuclideanDistanceUtilLL)
delete squaredEuclideanDistanceUtilLL;
70 for (
size_t i = 0;
i < L; ++
i) {
72 for (
size_t d = 0;
d < N; ++
d) {
73 const double xid = x->data[
i * N +
d];
79 if (!squaredEuclideanDistanceUtilLL)
return;
93 if (!squaredEuclideanDistanceUtilLL)
return 0.00;
94 return squaredEuclideanDistanceUtilLL->getDistance(
i,
j);
114 static double weightSumOf(
const gsl_vector* wX,
size_t L) {
116 for (
size_t i = 0;
i < L; ++
i)
sum += wX->data[
i];
base class for implementations calculating squared euclidean distances with just one set of vectors
Definition squared_euclidean_distance_utils.h:64
virtual void calculateDistance(const gsl_matrix *x, const gsl_matrix *y)=0
calculate all squared euclidean distance between vectors contained as columns in x and y
implements a vectorized version of calculating squared euclidean distances store in a vector
Definition squared_euclidean_distance_utils.h:202
Definition dirac_to_dirac_approx_short.h:9
optimization parameters for the closed-form even-N Gaussian-to-Dirac approximation
Definition gm_to_dirac_even_optimization_params.h:18
const size_t k
N / 2.
Definition gm_to_dirac_even_optimization_params.h:99
double distanceSq(size_t i, size_t j) const
cached squared distance T_ij between samples i and j
Definition gm_to_dirac_even_optimization_params.h:92
std::vector< double > cSqrdNorm
c_i = ||s_i||^2, size L
Definition gm_to_dirac_even_optimization_params.h:110
const double objectiveOffset
Definition gm_to_dirac_even_optimization_params.h:108
GMToDiracEvenOptimizationParams(const gsl_vector *wX, size_t N, size_t L, double bMax, bool includeD1)
Construct a new GMToDiracEvenOptimizationParams object.
Definition gm_to_dirac_even_optimization_params.h:30
void update(const gsl_vector *x)
refresh the per-evaluation caches for a new x
Definition gm_to_dirac_even_optimization_params.h:67
const double reportedOffset
Definition gm_to_dirac_even_optimization_params.h:103
~GMToDiracEvenOptimizationParams()
Destroy the GMToDiracEvenOptimizationParams object.
Definition gm_to_dirac_even_optimization_params.h:55
base struct minimizer needs to be setup with
Definition gsl_minimizer.h:18