mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-21 08:00:25 +00:00
122 lines
3.0 KiB
C++
122 lines
3.0 KiB
C++
|
|
// $(VARIANT) -nogui -dhrg embedded-graphs/facebook_combined_result -contll -iterate 99 -contll -esave > $@
|
|
|
|
namespace dhrg {
|
|
|
|
bool is(char *where, const char *what) {
|
|
while(*where && *what && *where == *what) where++, what++;
|
|
return !*what;
|
|
}
|
|
|
|
void ground_truth_test(string s) {
|
|
|
|
logistic cont;
|
|
|
|
vector<ld> logliks;
|
|
vector<string> reps;
|
|
|
|
auto report = [&] (string s, ld val) {
|
|
logliks.push_back(val);
|
|
reps.push_back(s);
|
|
println(hlog, "REPORT ", s, " = ", val);
|
|
};
|
|
|
|
if(1) {
|
|
FILE *f = fopen(("embout/" + s).c_str(), "rb");
|
|
char buf[999999];
|
|
int siz = fread(buf, 1, 999999, f);
|
|
|
|
for(int i=0; i<siz; i++) if(is(buf+i, "Embedded Log-likelihood: "))
|
|
report("bfkl", atof(buf+i+25));
|
|
|
|
fclose(f);
|
|
}
|
|
if(1) {
|
|
dhrg_init(); read_graph_full("data/simg-" + s);
|
|
|
|
|
|
origcoords();
|
|
build_disttable();
|
|
|
|
cont.setRT(graph_R, graph_T);
|
|
|
|
report("gz", loglik_cont(cont));
|
|
fix_logistic_parameters(cont, loglik_cont, "lcont", 1e-3);
|
|
report("grc", loglik_cont(cont));
|
|
|
|
cellcoords();
|
|
build_disttable();
|
|
|
|
report("gco", loglikopt());
|
|
report("gcm", loglikopt_mono());
|
|
report("gcrt", loglik_logistic());
|
|
|
|
cont.setRT(graph_R, graph_T);
|
|
report("gcz", loglik_cont(cont));
|
|
fix_logistic_parameters(cont, loglik_cont, "lcont", 1e-3);
|
|
report("gcrc", loglik_cont(cont));
|
|
|
|
embedder_loop(20);
|
|
|
|
report("geo", loglikopt());
|
|
report("gem", loglikopt_mono());
|
|
report("gert", loglik_logistic());
|
|
|
|
cellcoords();
|
|
build_disttable();
|
|
|
|
cont.setRT(graph_R, graph_T);
|
|
fix_logistic_parameters(cont, loglik_cont, "lcont", 1e-3);
|
|
report("gerc", loglik_cont(cont));
|
|
|
|
delete mroot;
|
|
mroot = NULL;
|
|
segmentcount = 0;
|
|
for(int i=0; i<MAXDIST; i++) tally[i] = 0;
|
|
for(int i=0; i<MAXDIST; i++) edgetally[i] = 0;
|
|
vertices.clear();
|
|
rogueviz::close();
|
|
}
|
|
|
|
dhrg_init(); read_graph_full("data/sime-" + s);
|
|
origcoords();
|
|
build_disttable();
|
|
cont.setRT(graph_R, graph_T);
|
|
report("ez", loglik_cont(cont));
|
|
fix_logistic_parameters(cont, loglik_cont, "lcont", 1e-3);
|
|
report("erc", loglik_cont(cont));
|
|
|
|
report("eco", loglikopt());
|
|
report("ecm", loglikopt_mono());
|
|
report("ecrt", loglik_logistic());
|
|
|
|
cellcoords();
|
|
build_disttable();
|
|
|
|
cont.setRT(graph_R, graph_T);
|
|
report("ecz", loglik_cont(cont));
|
|
fix_logistic_parameters(cont, loglik_cont, "lcont", 1e-3);
|
|
report("ecrc", loglik_cont(cont));
|
|
|
|
long long a = SDL_GetTicks();
|
|
embedder_loop(20);
|
|
long long v = SDL_GetTicks();
|
|
long long tim = v - a;
|
|
|
|
report("eeo", loglikopt());
|
|
report("eem", loglikopt_mono());
|
|
report("eert", loglik_logistic());
|
|
|
|
cellcoords();
|
|
build_disttable();
|
|
|
|
cont.setRT(graph_R, graph_T);
|
|
fix_logistic_parameters(cont, loglik_cont, "lcont", 1e-3);
|
|
report("eerc", loglik_cont(cont));
|
|
|
|
print(hlog, "HDR;", separated(";", reps), ";TIME;N;GROWTH\n");
|
|
print(hlog, "RES'", separated(";", logliks), ";", int(tim), ";", N, ";", cgi.expansion->get_growth());
|
|
}
|
|
|
|
}
|