added kernel density wrapper
added general kld solution fixed minor bugs added tests
This commit is contained in:
35
math/distribution/KernelDensity.h
Normal file
35
math/distribution/KernelDensity.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#ifndef KERNELDENSITY_H
|
||||
#define KERNELDENSITY_H
|
||||
|
||||
#include <cmath>
|
||||
#include <random>
|
||||
#include <functional>
|
||||
|
||||
#include <eigen3/Eigen/Dense>
|
||||
|
||||
#include "../../Assertions.h"
|
||||
#include "../Random.h"
|
||||
|
||||
|
||||
namespace Distribution {
|
||||
|
||||
template <typename T, typename Sample> class KernelDensity{
|
||||
|
||||
private:
|
||||
const std::function<T(Sample)> probabilityFunction;
|
||||
|
||||
|
||||
public:
|
||||
KernelDensity(const std::function<T(Sample)> probabilityFunction) : probabilityFunction(probabilityFunction){
|
||||
|
||||
}
|
||||
|
||||
T getProbability(Sample sample){
|
||||
return probabilityFunction(sample);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // KERNELDENSITY_H
|
||||
Reference in New Issue
Block a user