- dump_raw(mu, sigma, num_players);
-#else
- dump_scores(players, mu, sigma, num_players);
- //fprintf(stderr, "Optimal sigma: %f (two-player: %f)\n", sigma[0], sigma[0] * sqrt(2.0f));
- printf("%f -2\n", sigma[0]);
- printf("%f -3\n", prior_sigma);
+ dump_raw(mu, num_players);
+ return 0;
+#endif
+
+#if USE_DB
+ pqxx::work txn(conn);
+ txn.exec("SET client_min_messages TO WARNING");
+
+ // Dump aux_params.
+ {
+ txn.exec("TRUNCATE aux_params");
+ pqxx::tablewriter writer(txn, "aux_params");
+ for (map<pair<string, string>, float>::const_iterator it = aux_params.begin(); it != aux_params.end(); ++it) {
+ char str[128];
+ snprintf(str, 128, "%f", it->second);
+
+ vector<string> tuple;
+ tuple.push_back(it->first.first); // locale
+ tuple.push_back(it->first.second); // parameter name
+ tuple.push_back(str);
+ writer.push_back(tuple);
+ }
+ writer.complete();
+ }
+
+ // Dump ratings.
+ {
+ txn.exec("TRUNCATE ratings");
+ pqxx::tablewriter writer(txn, "ratings");
+ for (unsigned i = 0; i < rating_db_tuples.size(); ++i) {
+ char player_str[128], mu_str[128], mu_stddev_str[128];
+ snprintf(player_str, 128, "%d", rating_db_tuples[i].player);
+ snprintf(mu_str, 128, "%f", rating_db_tuples[i].mu);
+ snprintf(mu_stddev_str, 128, "%f", rating_db_tuples[i].mu_stddev);
+
+ vector<string> tuple;
+ tuple.push_back(player_str);
+ tuple.push_back(mu_str);
+ tuple.push_back(mu_stddev_str);
+ writer.push_back(tuple);
+ }
+ writer.complete();
+ }