Diploma Thesis Percolation Simulation
C++ Sourcecode Documentation

www.AndreasKrueger.de/thesis/code

Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

results.h

Go to the documentation of this file.
00001 // results.h
00002 //
00003 // last change: 22.12.2000
00004 //
00005 
00006 namespace results {
00007         using namespace statistics;
00008 
00009 
00010 class one_result {
00011 public:
00012         LONGBITS spcl_dirs;
00013         NUMBER   numberof_cl;
00014         NUMBER   biggest_clsz;
00015         REAL     mean_clsz;
00016         REAL     mean_clsz2;
00017         clock_t  last_counttime;
00018         string   throwtime;
00019         string   counttime;
00020 
00021         one_result(){};
00022         one_result(LONGBITS     SPCL_DIR, NUMBER NUMBEROF_CL, 
00023                            NUMBER BIGGEST_CLSZ, REAL MEAN_CLSZ,REAL MEAN_CLSZ2,
00024                            clock_t LAST_COUNTTIME, 
00025                            string& THROWTIME, string& COUNTTIME);
00026         bool percolate(int direction);
00027         bool percolate();
00028         bool perc_lr();
00029         bool perc_tb();
00030         bool perc_all_dirs(int dim);
00031 
00032 //      friend void my_fprintf(FILE* outFile, one_result last, NUMBER N, int dim, COORDFLOAT L);
00033 //      friend void my_fprintf_nothing(FILE* outFile);
00034 
00035 };
00036 
00037 one_result::one_result(LONGBITS SPCL_DIRS, 
00038                                            NUMBER       NUMBEROF_CL, 
00039                                            NUMBER       BIGGEST_CLSZ, 
00040                                            REAL         MEAN_CLSZ,
00041                                            REAL         MEAN_CLSZ2,
00042                                            clock_t      LAST_COUNTTIME,
00043                                            string& THROWTIME,
00044                                            string& COUNTTIME)
00045 {
00046         spcl_dirs=SPCL_DIRS;
00047         numberof_cl=NUMBEROF_CL;
00048         biggest_clsz=BIGGEST_CLSZ;
00049         mean_clsz=MEAN_CLSZ;
00050         mean_clsz2=MEAN_CLSZ2;
00051         last_counttime=LAST_COUNTTIME;
00052         counttime=COUNTTIME;
00053         throwtime=THROWTIME;
00054 }
00055 
00056 bool one_result::percolate(int direction){
00057         manipdata<LONGBITS> *m=NULL;
00058         return (1 == m->bit_notzero(spcl_dirs,(LONGBITS)direction));
00059 }
00060 bool one_result::percolate(){
00061         manipdata<LONGBITS> *m=NULL;
00062         return (1 == m->notzero(spcl_dirs,(LONGBITS)42));
00063 }
00064 bool one_result::perc_lr(){
00065         manipdata<LONGBITS> *m=NULL;
00066         return (1 == m->bit_notzero(spcl_dirs,1));
00067 }
00068 bool one_result::perc_tb(){
00069         manipdata<LONGBITS> *m=NULL;
00070         return (1 == m->bit_notzero(spcl_dirs,2));
00071 }
00072 bool one_result::perc_all_dirs(int dim){
00073         manipdata<LONGBITS> *m=NULL;
00074         return (1 == m->allbits_notzero(spcl_dirs,(LONGBITS)dim));
00075 }
00076 
00077 
00078 // END OF CLASS one_result
00079 
00080 
00081 class all_results {
00082 public:
00083         NUMBER N;
00084         int dim;
00085         bool new_result;
00086         one_result last;
00087 
00088         std::list<LONGBITS> L_spcl_dirs;
00089         std::list<NUMBER>       L_numberof_cl;
00090         std::list<NUMBER>       L_biggest_clsz;
00091         std::list<REAL>         L_mean_clsz;
00092         std::list<REAL>         L_mean_clsz2;
00093         muvarskewkurt<REAL> spcl_cum;
00094         muvarskewkurt<REAL> spcl_lr_cum;
00095         muvarskewkurt<REAL> spcl_tb_cum;
00096         muvarskewkurt<REAL> spcl_alldirs_cum;
00097         muvarskewkurt<REAL> numberof_cl;
00098         muvarskewkurt<REAL> biggest_clsz;
00099         muvarskewkurt<REAL> mean_clsz;
00100         muvarskewkurt<REAL> mean_clsz2;
00101         COUNTER loop_no; 
00102         clock_t sum_time;
00103         clock_t sum_spsearch_time;
00104         
00105         all_results(){};
00106         all_results(NUMBER N_, int dim_);
00107         void set_N_and_dim(all_results* res, COUNTER ff_steps,NUMBER N,int dim);
00108 
00109         void add_result(one_result& one);       // a new result is added to the lists
00110         void no_result();                                       // no new result added
00111         void delete_lists();
00112         void compute_averages();
00113 };
00114 
00115 all_results::all_results(NUMBER N_, int dim_){
00116         N=N_;
00117         dim=dim_;
00118         new_result=false;
00119         loop_no=0;
00120         sum_time=0;
00121         sum_spsearch_time=0;
00122 }
00123 
00124 void set_N_and_dim(all_results* array, COUNTER size,NUMBER N,int dim){
00125         for (COUNTER i=0; i<=size;i++){
00126                 array[i]=all_results(N,dim);
00127         }
00128 }
00129 
00130 void all_results::add_result(one_result& one){
00131         new_result=true;
00132         loop_no++;
00133         last=one;
00134         L_spcl_dirs.push_back   (one.spcl_dirs);
00135         L_numberof_cl.push_back (one.numberof_cl);
00136         L_biggest_clsz.push_back(one.biggest_clsz);
00137         L_mean_clsz.push_back   (one.mean_clsz);
00138         L_mean_clsz2.push_back  (one.mean_clsz2);
00139 }
00140 void all_results::no_result(){
00141         new_result=false;
00142 }
00143 
00144 void all_results::delete_lists(){       
00145         L_spcl_dirs.clear();
00146         L_numberof_cl.clear();
00147         L_biggest_clsz.clear();
00148         L_mean_clsz.clear();
00149         L_mean_clsz2.clear();
00150 }
00151 
00152 void all_results::compute_averages(){
00153         REAL dummy=1.0; // for calculate_moments result type
00154         spcl_cum        =calculate_moments<REAL,LONGBITS>(&manipdata<LONGBITS>::notzero,   (LONGBITS)42, L_spcl_dirs, dummy);
00155         spcl_lr_cum =calculate_moments<REAL,LONGBITS>(&manipdata<LONGBITS>::bit_notzero, (LONGBITS)1, L_spcl_dirs, dummy);
00156         spcl_tb_cum =calculate_moments<REAL,LONGBITS>(&manipdata<LONGBITS>::bit_notzero, (LONGBITS)2, L_spcl_dirs, dummy);
00157         spcl_alldirs_cum=calculate_moments<REAL,LONGBITS>
00158                              (&manipdata<LONGBITS>::allbits_notzero,(LONGBITS)dim, L_spcl_dirs, dummy);
00159 
00160         numberof_cl =calculate_moments<REAL,NUMBER>(&manipdata<NUMBER>::linear,     (NUMBER)42,     L_numberof_cl, dummy);
00161         biggest_clsz=calculate_moments<REAL,NUMBER>(&manipdata<NUMBER>::linear,     (NUMBER)42,    L_biggest_clsz, dummy);
00162         mean_clsz   =calculate_moments<REAL,REAL>(&manipdata<REAL>::linear,         (REAL)42,         L_mean_clsz, dummy);
00163         mean_clsz2  =calculate_moments<REAL,REAL>(&manipdata<REAL>::linear,         (REAL)42,        L_mean_clsz2, dummy);
00164 }
00165 
00166 
00167 
00168 
00169 } // end of namespace results




Diploma Thesis Sourcecode Documentation
check out the text and the executable binaries

www.AndreasKrueger.de/thesis/code