Changeset - a4477a81d96d
[Not reviewed]
0 5 2
Tom Bannink - 8 years ago 2017-09-04 15:06:15
tom.bannink@cwi.nl
Add datasets
1 file changed:
Changeset was too big and was cut off... Show full diff anyway
0 comments (0 inline, 0 general)
cpp/switchchain_ecm_initialtris.cpp
Show inline comments
 
@@ -9,26 +9,28 @@
 
#include <numeric>
 
#include <random>
 
#include <vector>
 

	
 
int main(int argc, char *argv[]) {
 
    // Simulation parameters
 
    const int numVerticesMin = 1000;
 
    const int numVerticesMin = 10000;
 
    //const int numVerticesMin = 1000;
 
    const int numVerticesMax = 10000;
 
    const int numVerticesStep = 1000;
 

	
 
    float tauValues[] = {2.05f, 2.1f, 2.2f, 2.3f, 2.4f, 2.5f,
 
                         2.6f,  2.7f, 2.8f, 2.9f, 2.95f};
 
    //float tauValues[] = {2.05f, 2.1f, 2.2f, 2.3f, 2.4f, 2.5f,
 
    //                     2.6f,  2.7f, 2.8f, 2.9f, 2.95f};
 
    float tauValues[] = {2.5f};
 

	
 
    auto getMixingTime = [](int n, float tau) {
 
        return int(50.0f * (50.0f - 5.0f * (tau - 2.0f)) * n);
 
    };
 
    auto getMeasurements = [](int n, float tau) {
 
        (void)n;
 
        (void)tau;
 
        return 5000;
 
        return 20000;
 
    };
 
    auto getMeasureSkip = [](int n, float tau) {
 
        (void)tau;
 
        return 30 * n; // Take a sample every ... steps
 
    };
 

	
 
@@ -47,13 +49,13 @@ int main(int argc, char *argv[]) {
 
    outfile << "(*\n";
 
    outfile << "n from " << numVerticesMin << " to " << numVerticesMax
 
            << " step " << numVerticesStep << std::endl;
 
    outfile << "tauValues: " << tauValues << std::endl;
 
    outfile << "Canonical degree sequence.\n";
 
    outfile << "mixingTime: 50 * (50 - 5 (tau - 2)) n\n";
 
    outfile << "measurements: 5000\n";
 
    outfile << "measurements: 20000\n";
 
    outfile << "measureSkip: 30 n\n";
 
    outfile << "data:\n";
 
    outfile << "1: {n,tau}\n";
 
    outfile << "2: {uniform tri samples}\n";
 
    outfile << "3: {ECM initial tri samples} \n";
 
    outfile << "*)" << std::endl;
 
@@ -87,12 +89,15 @@ int main(int argc, char *argv[]) {
 

	
 
            for (int i = 0; i < measurements; ++i) {
 
                Graph gtemp;
 
                if (erasedConfigurationModel(ds, gtemp, rng)) {
 
                    ECMtris.push_back(gtemp.countTriangles());
 
                }
 
                if ((i+1) % 1000 == 0) {
 
                    std::cout << '.' << std::flush;
 
                }
 
            }
 

	
 
            std::cout << " Finished ECM samples." << std::flush;
 

	
 
            // Uniform triangles
 
            std::vector<int> uniformTris;
 
@@ -108,12 +113,15 @@ int main(int argc, char *argv[]) {
 
            }
 
            chain.g.getTrackedTriangles() = chain.g.countTriangles();
 
            for (int i = 0; i < measurements; ++i) {
 
                for (int j = 0; j < measureSkip; ++j)
 
                    chain.doMove(true);
 
                uniformTris.push_back(chain.g.getTrackedTriangles());
 
                if ((i+1) % 1000 == 0) {
 
                    std::cout << '.' << std::flush;
 
                }
 
            }
 

	
 
            std::cout << " Finished uniform samples." << std::flush;
 

	
 
            if (outputComma)
 
                outfile << ',' << '\n';

Changeset was too big and was cut off... Show full diff anyway

0 comments (0 inline, 0 general)