Newer
Older
// KernelDensity.h
#pragma once
#include "AbstractRandom.h"
#include <vector>
#include <map>
namespace math1d_cl {
class KernelDensity : public AbstractRandom {
public:
KernelDensity(UncertainityOptions options);
virtual void fillRandom(math1d_cl::precipitationsVector &prec, double deviation);
std::vector<double> test(int num, int limitIdx); // For testing purposes, generate [num] random samples
private:
double getRandom(int limitIdx);
int getLimitIdx(double precipValue);
// Members
//std::vector<std::vector<std::map<double,double>>> m_kernelEst; // Hold kernel estimate curves for each offset and each limit
std::vector<std::map<double,double>> m_kernelEst; // Hold kernel estimate curves for each limit
std::mt19937_64 m_uRand;
std::uniform_real_distribution<double> m_randProb;
};
}