| Diploma Thesis Percolation Simulation C++ Sourcecode Documentation |
#include "configuration.h"#include "optimizealgo.h"#include "frontend.h"#include "speedtest.h"#include "starters.h"#include "batch.h"#include "commandline.h"#include "old.h"Include dependency graph for clcount.cpp:

Go to the source code of this file.
Functions | |
| int | main (int argc, char *argv[]) |
|
||||||||||||
|
Definition at line 24 of file clcount.cpp. References optimize::choose_cuts_with_reference_algo(), optimize::choose_dividings(), optimize::compare_recursion_and_Stoddard_iteration(), commandline::cout_command_wo_path(), optimize::double_N_and_run_all_faster_cuts(), optimize::double_N_and_run_specified_cuts(), FILEHEAD1, FILEHEAD2, ff::find_ff_with_criterion_frontend(), ff::find_ffc_frontend(), optimize::frontend_cuts_test_average_time(), GRIDSIZE, starters::into_file(), starters::into_file2(), starters::into_file7_starter(), starters::into_file8(), starters::into_file8_starter(), starters::into_screen(), starters::listcount(), starters::max_ff(), MAXDIM, ms(), optimize::new_vs_old_algo(), commandline::range_ok(), commandline::recognized_switch(), optimize::run_different_cuts(), commandline::show_commandline_options(), commandline::start_subprg(), frontend::svg_frontend(), starters::unitspheredimensions(), and version.
00024 {
00025
00026 cout <<version<<" compiled: "<<__DATE__<<" "<<__TIME__;
00027 #ifdef _WIN32
00028 cout<<"(Win32)";
00029 #endif
00030 #ifdef __unix
00031 cout<<"(Unix)";
00032 #endif
00033 cout <<"\n";
00034
00035 //#ifdef TIMEMEASUREMENT
00036 //optimize::testspeed_divide_cellcount_combine();
00037 //#endif
00038
00039 using namespace starters;
00040 using namespace optimize;
00041 using namespace commandline;
00042
00043 bool endofprg=false;
00044 clock_t runningtime=0;
00045
00046 cout_command_wo_path(argc, argv); cout <<"\n";
00047 cline_par param;
00048 if (recognized_switch(argc, argv, param)){
00049 if (range_ok(param)){
00050 cerr <<"Parameters accepted. Now I run in direct mode:"<<endl;
00051 cerr <<param<<" [<<cerr]"<<endl;
00052 cout <<param<<" [<<cout]"<<endl;
00053 start_subprg(param, runningtime);
00054 cout <<"\nRunning time: "<<ms(runningtime)/1000<<" seconds\n"<<endl;
00055 endofprg=true;
00056 }
00057 else cerr <<"commandlineParameters wrong. Now I run in MENU mode."<<endl;
00058 }
00059 else cerr <<"commandlineParameters missing or unknown subprogram. Now I run in MENU mode."<<endl;
00060
00061
00062 while (!endofprg){
00063 cout <<"\n*\n**\n***\n****\n*****\n****\n***\n**\n*\n";
00064 cout << "--------------------------------------------"<<endl;
00065
00066 int dim;
00067 cout <<"Please type in dimension of space (2-"<<MAXDIM<<"): ";
00068 do{
00069 cin >> dim;
00070 } while ((dim<=1)||(dim>MAXDIM));
00071 if (dim>7) cout<<"Please forgive me:\nThe new algorithm isn't tuned for best performance yet.\nFor high dimensions it might be slower than possible!"<<endl;
00072
00073 cout <<"\n\t----------------------------------------------------------\n";
00074 cout <<"\tClusterCount "<<version<<" (cpp__at__AndreasKrueger__dot__de) in "<<dim;
00075 cout <<" Dimensions\n";
00076 cout <<"\t----------------------------------------------------------\n\n";
00077 cout <<"This programm randomly throws rings(spheres) on a \"table\" of ";
00078 cout <<"[0,"<<GRIDSIZE<<"]^"<<dim<<"\n";
00079 cout <<"then it counts the clusters of overlapping spheres"<<endl;
00080
00081 char a;
00082 cout <<"\nOutput to screen:";
00083 cout <<"\n (NAIVE ALGO) arraycount (a)";
00084 cout <<"\n (NAIVE ALGO) listcount (z)";
00085 cout <<"\n (NAIVE ALGO) recursion vs. (Stoddard)iteration(i)";
00086 cout <<"\n (DNC ALGO) vs. (NAIVE ALGO) (v)";
00087 cout <<"\n (DNC ALGO): choose dividings per direction (d)";
00088 // cout <<"\n (DNC ALGO): choose totalnumber of cuts (c)";
00089 cout <<"\n (DNC ALGO): choose cuts & compare with old algo (w)";
00090 cout <<"\n (DNC ALGO): test all faster cuts (t)";
00091 // cout <<"\nor test(t) the vector dataset "<<endl;
00092 // cout <<"\nor test the LIST of spheres (s)"<<endl;
00093 // cout <<"\nor show the volume of n-dimensional unitspheres(u) ? ";
00094 // cout <<"\nor show the maximal fillingfactor for n-dimensions (m) ? ";
00095
00096 cout <<"\nOutput to file:";
00097 cout <<"\n (NAIVE ALGO) file1- many loops per radius (l) ";
00098 cout <<"\n (NAIVE ALGO) file2- sweep all radii per 1 loop (r)";
00099 cout <<"\n (DNC ALGO) test all faster cuts and double N (o)";
00100 cout <<"\n (DNC ALGO): test specified cuts and double N (p)";
00101 cout <<"\n (DNC ALGO): test predefined cuts with averaging FFC (j)";
00102 cout <<"\n (DNC ALGO): test predefined cuts with averaging FFS (k)";
00103 cout <<"\nor (DNC ALGO) file7- start once(7)";
00104 cout <<"\nor (DNC ALGO) file8- start once(8)";
00105 cout <<"\nor (DNC ALGO) file8- the holiday session (h)";
00106 cout <<"\nor (DNC ALGO) find the critical fillingfactors (f)";
00107 cout <<"\nor (DNC ALGO) find the fillingfactor for which 90% * N = noc (9)";
00108 cout <<"\nor (NEW) create graphics files in SVG (g)";
00109 cout <<"\n";
00110 cout <<"\nor (INFO) show the commandline options (x)";
00111 cout<<endl;
00112 cin >>a;
00113 cout <<endl;
00114
00115 switch (a) {
00116 // a c d f g h i j k l m o p r s t u v w z 7 8 9
00117 case 'a': into_screen(dim); break;
00118 case 'z': listcount(dim); break;
00119 case 'i': compare_recursion_and_Stoddard_iteration(dim); break;
00120 case 'v': new_vs_old_algo(dim); break;
00121 case 'd': choose_dividings(dim); break;
00122 // case 'c': choose_cuts(dim); break;
00123 case 'w': choose_cuts_with_reference_algo(dim); break;
00124 case 't': run_different_cuts(dim); break;
00125 case 'o': double_N_and_run_all_faster_cuts(dim,"c:\\results\\doublenumber1.txt"); break;
00126 case 'p': double_N_and_run_specified_cuts(dim,"c:\\results\\doublenumber2.txt"); break;
00127 case 'j': frontend_cuts_test_average_time(1,1); break;
00128 case 'k': frontend_cuts_test_average_time(2,1); break;
00129
00130 case 'l':
00131 cout <<"\nPlease now make a directory k:\\results\t !!! otherwise crash !!!"<<endl;
00132 into_file(dim);
00133 break;
00134
00135 case 'r':
00136 cout <<"\nPlease now make a directory k:\\results\t !!! otherwise crash !!!"<<endl;
00137 into_file2(dim);
00138 break;
00139
00140 case '7':
00141 cout <<"\nPlease now make two directories (at least one!):\n";
00142 cout <<FILEHEAD1<<endl;
00143 cout <<FILEHEAD2<<endl;
00144 cout <<"for the results and the results backup\n!!! otherwise nonsense !!!\n"<<endl;
00145 into_file7_starter(dim);
00146 break;
00147
00148 case '8':
00149 cout <<"\nPlease now make two directories (at least one!):\n";
00150 cout <<FILEHEAD1<<endl;
00151 cout <<FILEHEAD2<<endl;
00152 cout <<"for the results and the results backup\n!!! otherwise nonsense !!!\n"<<endl;
00153 into_file8_starter(dim);
00154 break;
00155
00156 case 'h':
00157 cout <<"\nPlease now make two directories (at least one!):\n";
00158 cout <<FILEHEAD1<<endl;
00159 cout <<FILEHEAD2<<endl;
00160 cout <<"for the results and the results backup\n!!! otherwise nonsense !!!\n"<<endl;
00161 into_file8();
00162 break;
00163
00164 case 'f':
00165 cout <<"\nYEAH - it finds the critical ff\nPlease now make a directory:\n";
00166 cout <<FILEHEAD2<<endl;
00167 cout <<"for the results \n!!! otherwise nonsense !!!\n"<<endl;
00168 ff::find_ffc_frontend();
00169 break;
00170
00171
00172 case '9':
00173 cout <<"\nYEAH - it finds the ff where the number-of-cluster = 90% * N\nPlease now make a directory:\n";
00174 cout <<FILEHEAD2<<endl;
00175 cout <<"for the results \n!!! otherwise nonsense !!!\n"<<endl;
00176 ff::find_ff_with_criterion_frontend();
00177 break;
00178
00179 case 'g':
00180 cout <<"\nSVG-Graphics file creation.";
00181 cout <<"\n SORRY: Disabled because of lack of <sstream> in some compilers\n\n"<<endl;
00182 cout <<" Please create a folder:\n"<<FILEHEAD2<<endl;
00183 cout <<"for the results \n!!! otherwise nonsense !!!\n"<<endl;
00184 frontend::svg_frontend();
00185 break;
00186
00187 case 'x':
00188 commandline::show_commandline_options(argv[0]);
00189 endofprg=true;
00190
00191 break;
00192
00193 //case 't': testvectorsphere(dim);break;
00194 //case 's': test_list(dim);break;
00195 case 'u': unitspheredimensions(1,22);break;
00196 case 'm': max_ff(1,22);break;
00197 default: {
00198 cout<<"\nYou don't want to? OK, then I do nothing!\n"<<endl;;
00199 endofprg=true;
00200 }
00201 }
00202
00203 } // until (endofprg == false);
00204 return 0;
00205 }
|
| Diploma Thesis Sourcecode
Documentation check out the text and the executable binaries |