bool DoTestGauss(double m, double s) { std::map<std::string, std::string> params; params["type"] = "gauss"; params["m"] = FtoA(m); params["s"] = FtoA(s); std::unique_ptr<TRandomNumberGenerator> rand(TRandomFactory::Instance().MakeGenerator(params)); if (!rand) { std::cout << "gauss generator didn't created" << std::endl; return false; } double me, se; CalculateMeanSigma(*rand, me, se); std::cout << "gauss, m=" << m << ", s=" << s << ", me=" << me << ", se=" << se << std::endl; return true; }
bool DoTestLogistic(double m, double s) { std::map<std::string, std::string> params; params["type"] = "logistic"; params["m"] = FtoA(m); params["s"] = FtoA(s); std::unique_ptr<TRandomNumberGenerator> rand(TRandomFactory::Instance().MakeGenerator(params)); if (!rand) { std::cout << "logistic generator didn't created" << std::endl; return false; } double me, se; CalculateMeanSigma(*rand, me, se); static constexpr double pi3 = M_PI / sqrt(3.0); std::cout << "logistic, m=" << m << ", s*pi/3^0.5=" << s * pi3 << ", me=" << me << ", se=" << se << std::endl; return true; }
bool DoTestBernoulli(double p) { std::map<std::string, std::string> params; params["type"] = "bernoulli"; params["p"] = FtoA(p); std::unique_ptr<TRandomNumberGenerator> rand(TRandomFactory::Instance().MakeGenerator(params)); if (!rand) { std::cout << "bernoulli generator didn't created" << std::endl; return false; } double me, se; CalculateMeanSigma(*rand, me, se); std::cout << "bernoulli, p=" << p << ", pq=" << p * (1 - p) << ", me=" << me << ", se=" << se * se << std::endl; return true; }
virtual Pint GtoA(const Pint& _gpos,const dxO& _dxo)const{return FtoA(GtoF(_gpos,_dxo),_dxo);}