DistributionMultiVariateNormal::DistributionMultiVariateNormal(F32 mux,F32 muy,F32 sigmax,F32 sigmay,F32 rho) :DistributionMultiVariate(),_sigma(2,2),_mean(2),_standard_normal(0,1) { _mean(0)=mux; _mean(1)=muy; _sigma(0,0)=sigmax*sigmax; _sigma(0,1)=sigmax*sigmay*rho; _sigma(1,0)=sigmax*sigmay*rho;_sigma(1,1)=sigmay*sigmay; _sigma_minus_one=LinearAlgebra::inverseGaussianElimination(_sigma); _determinant_sigma = _sigma.determinant(); _a = LinearAlgebra::AATransposeEqualMDecomposition(_sigma); }
EXPORT char *meanRating(void) { return _char_rating(_mean()); }
void petabricks::PetabricksRuntime::runGraphTemplate(){ int i=0; for(; _main!=NULL; _main=_main->nextTemplateMain(),++i){ double avg = runTrial(GRAPH_MAX_SEC, ACCTRAIN); if(theAccuracies.empty()){ printf("%d %.6f\n", i, avg); }else{ printf("%d %.6f %.6f %.6f\n", i, avg, _main->accuracyTarget(), _mean(theAccuracies)); theAccuracies.clear(); } } }
void petabricks::PetabricksRuntime::runGraphMode(){ for(int n=GRAPH_MIN; n<=GRAPH_MAX; n=_incN(n)){ setSize(n); double avg = runTrial(GRAPH_MAX_SEC, ACCTRAIN); if(avg<std::numeric_limits<double>::max()){ if(theAccuracies.empty()){ printf("%d %.6f\n", n, avg); }else{ printf("%d %.6f %.6f\n", n, avg, _mean(theAccuracies)); theAccuracies.clear(); } } fflush(stdout); if(avg > GRAPH_MAX_SEC) break; } }
void petabricks::PetabricksRuntime::runGraphParamMode(const std::string& param){ jalib::JTunable* tunable = jalib::JTunableManager::instance().getReverseMap()[param]; JASSERT(tunable!=0)(param).Text("parameter not found"); GRAPH_MIN = std::max(GRAPH_MIN, tunable->min().i()); GRAPH_MAX = std::min(GRAPH_MAX, tunable->max().i()); for(int n=GRAPH_MIN; n<=GRAPH_MAX; n=_incN(n)){ tunable->setValue(n); double avg = runTrial(GRAPH_MAX_SEC, ACCTRAIN); if(avg<std::numeric_limits<double>::max()){ if(theAccuracies.empty()){ printf("%d %.6f\n", n, avg); }else{ printf("%d %.6f %.6f\n", n, avg, _mean(theAccuracies)); theAccuracies.clear(); } } fflush(stdout); if(avg > GRAPH_MAX_SEC) break; } }