Skip to content
Snippets Groups Projects
KernelDensity.h 835 B
Newer Older
  • Learn to ignore specific revisions
  • Radim Vavřík's avatar
    Radim Vavřík committed
    // 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;
    	};
    
    }