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  

measure.h File Reference

#include <math.h>
#include <iostream>

Include dependency graph for measure.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Compounds

class  measure

Defines

#define ASCII_PLUSMINUS   "\261"
#define RANDOM_ERRORS

Functions

template<class T> void set_av (const T &av)
template<class T> void set_sdev (const T &sdev)
template<class T> ostream & operator<< (ostream &os, const measure< T > &rhs)
template<class T> istream & operator>> (istream &is, measure< T > &rhs)
template<class T> measure< T > & operator+= (measure< T > &lhs, const measure< T > &rhs)
template<class T> measure< T > & operator-= (measure< T > &lhs, const measure< T > &rhs)
template<class T> measure< T > & operator *= (measure< T > &lhs, const measure< T > &rhs)
template<class T> measure< T > & operator/= (measure< T > &lhs, const measure< T > &rhs)
template<class T> measure< T > pow (const measure< T > &lhs, const measure< T > &rhs)
template<class T> measure< T > log (const measure< T > &arg)
template<class T> measure< T > log10 (const measure< T > &arg)
template<class T> measure< T > fabs (const measure< T > &arg)
template<class T> measure< T > sin (const measure< T > &arg)
template<class T> measure< T > cos (const measure< T > &arg)
template<class T> measure< T > tan (const measure< T > &arg)
template<class T> measure< T > asin (const measure< T > &arg)
template<class T> measure< T > acos (const measure< T > &arg)
template<class T> measure< T > atan (const measure< T > &arg)
template<class T> measure< T > exp (const measure< T > &arg)
template<class T> measure< T > sqrt (const measure< T > &arg)
template<class T> bool overlap (const measure< T > &lhs, const measure< T > &rhs)
template<class T> measure< T > & operator+= (measure< T > &lhs, const T &rhs)
template<class T> measure< T > operator+ (const measure< T > &lhs, const measure< T > &rhs)
template<class T> measure< T > operator+ (const measure< T > &lhs, const T &rhs)
template<class T> measure< T > operator+ (const T &lhs, const measure< T > &rhs)
template<class T> measure< T > & operator-= (measure< T > &lhs, const T &rhs)
template<class T> measure< T > operator- (const measure< T > &lhs, const measure< T > &rhs)
template<class T> measure< T > operator- (const measure< T > &lhs, const T &rhs)
template<class T> measure< T > operator- (const T &lhs, const measure< T > &rhs)
template<class T> measure< T > & operator *= (measure< T > &lhs, const T &rhs)
template<class T> measure< T > operator * (const measure< T > &lhs, const measure< T > &rhs)
template<class T> measure< T > operator * (const measure< T > &lhs, const T &rhs)
template<class T> measure< T > operator * (const T &lhs, const measure< T > &rhs)
template<class T> measure< T > & operator/= (measure< T > &lhs, const T &rhs)
template<class T> measure< T > operator/ (const measure< T > &lhs, const measure< T > &rhs)
template<class T> measure< T > operator/ (const measure< T > &lhs, const T &rhs)
template<class T> measure< T > operator/ (const T &lhs, const measure< T > &rhs)
template<class T> measure< T > operator- (const measure< T > &rhs)
template<class T> measure< T > operator+ (const measure< T > &rhs)
template<class T> measure< T > pow (const T &lhs, const measure< T > &rhs)
template<class T> measure< T > pow (const measure< T > &lhs, const T &rhs)
template<class T> measure< T > pow (const measure< T > &lhs, const int &rhs)
template<class T> measure< T > pow (const int &lhs, const measure< T > &rhs)
template<class T> bool overlap (const measure< T > &lhs, const T &rhs)
template<class T> bool overlap (const T &lhs, const measure< T > &rhs)
bool random_errors_set ()
const char * answer_random_errors_set ()
template<class T> T square_add (T lhs, T rhs)
template<class T> T fabs_add (T lhs, T rhs)
template<class T> T sum2 (T lhs, T rhs)
void test_measureclass ()
void interactive_test_measureclass ()


Define Documentation

#define ASCII_PLUSMINUS   "\261"
 

Definition at line 73 of file measure.h.

Referenced by ff::bracket_ff(), ff::find_mean_ff_with_criterion(), ff::find_mean_ffc(), operator<<(), and starters::test_statistical().

#define RANDOM_ERRORS
 

Definition at line 76 of file measure.h.


Function Documentation

template<class T>
measure< T > acos const measure< T > &    arg
 

Definition at line 370 of file measure.h.

References sqrt(), measure< T >::stddev, and measure< T >::value.

Referenced by test_measureclass().

00370                                                         {
00371         measure<T> temp;
00372         temp.stddev=arg.stddev/sqrt(1- arg.value*arg.value);
00373         temp.value=acos(arg.value);
00374         return temp;
00375 }

const char * answer_random_errors_set  
 

Definition at line 519 of file measure.h.

References random_errors_set().

Referenced by interactive_test_measureclass().

00519                                       {
00520         return random_errors_set()?"yes":" no";
00521 }

template<class T>
measure< T > asin const measure< T > &    arg
 

Definition at line 364 of file measure.h.

References sqrt(), measure< T >::stddev, and measure< T >::value.

Referenced by test_measureclass().

00364                                                         {
00365         measure<T> temp;
00366         temp.stddev=arg.stddev/sqrt(1- arg.value*arg.value);
00367         temp.value=asin(arg.value);
00368         return temp;
00369 }

template<class T>
measure< T > atan const measure< T > &    arg
 

Definition at line 376 of file measure.h.

References measure< T >::stddev, and measure< T >::value.

Referenced by test_measureclass().

00376                                                         {
00377         measure<T> temp;
00378         temp.stddev=arg.stddev/(1+ arg.value*arg.value);
00379         temp.value=atan(arg.value);
00380         return temp;
00381 }

template<class T>
measure< T > cos const measure< T > &    arg
 

Definition at line 352 of file measure.h.

References fabs(), sin(), measure< T >::stddev, and measure< T >::value.

Referenced by sin(), tan(), and test_measureclass().

00352                                                        {
00353         measure<T> temp;
00354         temp.stddev=arg.stddev*fabs(sin(arg.value));
00355         temp.value=cos(arg.value);
00356         return temp;
00357 }

template<class T>
measure< T > exp const measure< T > &    arg
 

Definition at line 499 of file measure.h.

References pow().

Referenced by test_measureclass().

00499 { return pow(exp(1),arg);}

template<class T>
measure< T > fabs const measure< T > &    arg
 

Definition at line 339 of file measure.h.

References measure< T >::stddev, and measure< T >::value.

Referenced by grid::coordinate_to_slots(), cos(), fabs_add(), log(), log10(), operator>>(), overlap(), and sin().

00339                                       {
00340         measure<T> temp;
00341         temp.stddev=arg.stddev;
00342         temp.value=fabs(arg.value);
00343         return temp;
00344 }

template<class T>
T fabs_add   lhs,
  rhs
 

Definition at line 149 of file measure.h.

References fabs().

00149 {return fabs(lhs) + fabs(rhs);}

void interactive_test_measureclass  
 

Definition at line 581 of file measure.h.

References answer_random_errors_set(), and pow().

00581                                     {
00582         typedef measure<double> measure;
00583         measure a,b;    
00584         cout <<"Type in two numbers with errors:";
00585         cin >> a >>b;
00586         cout <<"a= "<<a<<"\t  b= "<<b<<endl;
00587         cout <<"a+b= "<<a+b<<endl;
00588         cout <<"a*b= "<<a*b<<endl;
00589         cout <<"pow(a,b)= "<<pow(a,b)<<endl;
00590         cout <<"(RANDOM_ERRORS: "<<answer_random_errors_set()<<")"<<endl;
00591 }

template<class T>
measure< T > log const measure< T > &    arg
 

Definition at line 325 of file measure.h.

References fabs(), measure< T >::stddev, and measure< T >::value.

Referenced by counters::choose_optimal_cuts(), ff::find_ff_with_criterion_frontend(), ff::find_ffc_frontend(), log10(), counters::maximal_dividings_in_one_coordinate(), pow(), and test_measureclass().

00325                                      {
00326         measure<T> temp;
00327         temp.stddev=arg.stddev/fabs(arg.value);
00328         temp.value=log(arg.value);
00329         return temp;
00330 }

template<class T>
measure< T > log10 const measure< T > &    arg
 

Definition at line 332 of file measure.h.

References fabs(), log(), measure< T >::stddev, and measure< T >::value.

Referenced by saturating_fillingfactor(), and test_measureclass().

00332                                        {
00333         measure<T> temp;
00334         temp.stddev=arg.stddev/(fabs(arg.value)*log(10));
00335         temp.value=log10(arg.value);
00336         return temp;
00337 }

template<class T>
measure< T > operator * const T &    lhs,
const measure< T > &    rhs
 

Definition at line 448 of file measure.h.

00448                                                          {
00449         return measure<T>(lhs,0) * rhs ;
00450 }

template<class T>
measure< T > operator * const measure< T > &    lhs,
const T &    rhs
 

Definition at line 444 of file measure.h.

00444                                                          {
00445         return lhs * measure<T>(rhs,0);
00446 }

template<class T>
measure< T > operator * const measure< T > &    lhs,
const measure< T > &    rhs
 

Definition at line 438 of file measure.h.

00438                                                                   {
00439         measure<T> temp=lhs;
00440         temp*=rhs;
00441         return temp;
00442 }

template<class T>
measure<T>& operator *= measure< T > &    lhs,
const T &    rhs
 

template<class T>
measure<T>& operator *= measure< T > &    lhs,
const measure< T > &    rhs
 

template<class T>
measure< T > operator+ const measure< T > &    rhs
 

Definition at line 476 of file measure.h.

00476                                                              {
00477         return rhs;
00478 }

template<class T>
measure< T > operator+ const T &    lhs,
const measure< T > &    rhs
 

Definition at line 408 of file measure.h.

00408                                                          {
00409         return measure<T>(lhs,0) + rhs ;
00410 }

template<class T>
measure< T > operator+ const measure< T > &    lhs,
const T &    rhs
 

Definition at line 404 of file measure.h.

00404                                                          {
00405         return lhs + measure<T>(rhs,0);
00406 }

template<class T>
measure< T > operator+ const measure< T > &    lhs,
const measure< T > &    rhs
 

Definition at line 398 of file measure.h.

00398                                                                   {
00399         measure<T> temp=lhs;
00400         temp+=rhs;
00401         return temp;
00402 }

template<class T>
measure<T>& operator+= measure< T > &    lhs,
const T &    rhs
 

template<class T>
measure<T>& operator+= measure< T > &    lhs,
const measure< T > &    rhs
 

template<class T>
measure< T > operator- const measure< T > &    rhs
 

Definition at line 472 of file measure.h.

00472                                                              {
00473         return ((T)0-rhs);
00474 }

template<class T>
measure< T > operator- const T &    lhs,
const measure< T > &    rhs
 

Definition at line 428 of file measure.h.

00428                                                          {
00429         return measure<T>(lhs,0) - rhs ;
00430 }

template<class T>
measure< T > operator- const measure< T > &    lhs,
const T &    rhs
 

Definition at line 424 of file measure.h.

00424                                                          {
00425         return lhs - measure<T>(rhs,0);
00426 }

template<class T>
measure< T > operator- const measure< T > &    lhs,
const measure< T > &    rhs
 

Definition at line 418 of file measure.h.

00418                                                                   {
00419         measure<T> temp=lhs;
00420         temp-=rhs;
00421         return temp;
00422 }

template<class T>
measure<T>& operator-= measure< T > &    lhs,
const T &    rhs
 

template<class T>
measure<T>& operator-= measure< T > &    lhs,
const measure< T > &    rhs
 

template<class T>
measure< T > operator/ const T &    lhs,
const measure< T > &    rhs
 

Definition at line 468 of file measure.h.

00468                                                          {
00469         return measure<T>(lhs,0) / rhs ;
00470 }

template<class T>
measure< T > operator/ const measure< T > &    lhs,
const T &    rhs
 

Definition at line 464 of file measure.h.

00464                                                          {
00465         return lhs / measure<T>(rhs,0);
00466 }

template<class T>
measure< T > operator/ const measure< T > &    lhs,
const measure< T > &    rhs
 

Definition at line 458 of file measure.h.

00458                                                                   {
00459         measure<T> temp=lhs;
00460         temp/=rhs;
00461         return temp;
00462 }

template<class T>
measure<T>& operator/= measure< T > &    lhs,
const T &    rhs
 

template<class T>
measure<T>& operator/= measure< T > &    lhs,
const measure< T > &    rhs
 

template<class T>
ostream & operator<< ostream &    os,
const measure< T > &    rhs
 

Definition at line 279 of file measure.h.

References ASCII_PLUSMINUS.

00279                                                         {
00280         return os<<rhs.value<<ASCII_PLUSMINUS<<rhs.stddev;
00281 }

template<class T>
istream & operator>> istream &    is,
measure< T > &    rhs
 

Definition at line 283 of file measure.h.

References fabs(), measure< T >::stddev, and measure< T >::value.

00283                                                   {
00284         T value, stddev;
00285         is >> value;    rhs.value=value;
00286         is >> stddev;   rhs.stddev=fabs(stddev);
00287         return is;
00288 }

template<class T>
bool overlap const T &    lhs,
const measure< T > &    rhs
 

Definition at line 506 of file measure.h.

References overlap().

00506                                                                    {
00507         return overlap(measure<T>(lhs,0), rhs);
00508 }

template<class T>
bool overlap const measure< T > &    lhs,
const T &    rhs
 

Definition at line 503 of file measure.h.

References overlap().

00503                                                                    {
00504         return overlap(lhs, measure<T>(rhs,0));
00505 }

template<class T>
bool overlap const measure< T > &    lhs,
const measure< T > &    rhs
 

Definition at line 384 of file measure.h.

References fabs(), measure< T >::stddev, and measure< T >::value.

00384                                                                             {
00385         return (fabs(lhs.value-rhs.value)) < (lhs.stddev + rhs.stddev);
00386 }

template<class T>
measure< T > pow const int &    lhs,
const measure< T > &    rhs
 

Definition at line 494 of file measure.h.

Referenced by cluson::add_spanning(), statistics::manipdata< ELEM >::allbits_notzero(), statistics::manipdata< ELEM >::bit_notzero(), optimize::choose_cuts_with_reference_algo(), optimize::choose_dividings(), counters::choose_optimal_cuts(), critical_fillingfactor(), statistics::statistical< RES, ELEM >::cubicdis(), grid::divide_spheres_into_overlapping_boxes_and_conquer(), optimize::double_N_and_run_all_faster_cuts(), optimize::double_N_and_run_specified_cuts(), exp(), ff_critical_infinite_limit(), fillingfactor_noc1percent(), give_fillingfactor(), give_radius(), heat_random_generator(), interactive_test_measureclass(), starters::into_file7_pt1(), statistics::statistical< RES, ELEM >::kurtosis(), grid::maximal_slots_that_can_be_numbered(), grid::maximal_slots_that_can_be_numbered2(), percolating_fillingfactor_for_two_spheres(), percolating_fillingfactor_for_two_spheres_verbose(), pow(), statistics::statistical< RES, ELEM >::pow4dis(), grid::put_vector_into_boxes(), optimize::run_different_cuts(), saturating_fillingfactor(), statistics::statistical< RES, ELEM >::skewness(), cluson::sp_alldirs(), cluson::spanning(), spanning_directions(), analyze::spanning_directions(), spanning_dirs_and_clusters(), analyze::spanning_dirs_and_clusters(), sqrt(), square_add(), statistics::statistical< RES, ELEM >::squaredis(), optimize::test_average_time_for_specified_cuts(), test_measureclass(), grid::test_spheres2boxes(), and unitsphere().

00494                                                      {
00495         return pow(measure<T>((T)lhs,0), rhs);
00496 }

template<class T>
measure< T > pow const measure< T > &    lhs,
const int &    rhs
 

Definition at line 490 of file measure.h.

References pow().

00490                                                      {
00491         return pow(lhs, measure<T>((T)rhs,0));
00492 }

template<class T>
measure< T > pow const measure< T > &    lhs,
const T &    rhs
 

Definition at line 485 of file measure.h.

References pow().

00485                                                    {
00486         return pow(lhs, measure<T>(rhs,0));
00487 }

template<class T>
measure< T > pow const T &    lhs,
const measure< T > &    rhs
 

Definition at line 481 of file measure.h.

References pow().

00481                                                     {
00482         return pow(measure<T>(lhs,0), rhs);
00483 }

template<class T>
measure< T > pow const measure< T > &    lhs,
const measure< T > &    rhs
 

Definition at line 317 of file measure.h.

References log(), pow(), measure< T >::stddev, and measure< T >::value.

00317                                                             {
00318         measure<T> temp;
00319         temp.stddev=sum2<T>(lhs.stddev*rhs.value*pow(lhs.value,rhs.value-1), 
00320                                         rhs.stddev*log(lhs.value)*pow(lhs.value,rhs.value));
00321         temp.value=pow(lhs.value, rhs.value);
00322         return temp;
00323 }

bool random_errors_set  
 

Definition at line 511 of file measure.h.

Referenced by answer_random_errors_set().

00511                         {
00512 #ifdef RANDOM_ERRORS
00513         return true;
00514 #else 
00515         return false;
00516 #endif
00517 }

template<class T>
void set_av const T &    av
 

template<class T>
void set_sdev const T &    sdev
 

template<class T>
measure< T > sin const measure< T > &    arg
 

Definition at line 346 of file measure.h.

References cos(), fabs(), measure< T >::stddev, and measure< T >::value.

Referenced by cos(), and test_measureclass().

00346                                                        {
00347         measure<T> temp;
00348         temp.stddev=arg.stddev*fabs(cos(arg.value));
00349         temp.value=sin(arg.value);
00350         return temp;
00351 }

template<class T>
measure< T > sqrt const measure< T > &    arg
 

Definition at line 501 of file measure.h.

References pow().

Referenced by acos(), asin(), statistics::calculate_all_moments(), statistics::calculate_moments(), length(), percolating_fillingfactor_for_two_spheres(), percolating_fillingfactor_for_two_spheres_verbose(), statistics::muvarskewkurt< RES >::sdev_of_mean(), square_add(), statistics::statistical< RES, ELEM >::standarddeviation_of_list(), and test_measureclass().

00501 { return pow(arg, 0.5);}

template<class T>
T square_add   lhs,
  rhs
 

Definition at line 147 of file measure.h.

References pow(), and sqrt().

00147 {       return sqrt( pow(lhs,2) + pow(rhs,2) );}

template<class T>
T sum2   lhs,
  rhs
 

Definition at line 150 of file measure.h.

00150                                       {
00151 #ifdef RANDOM_ERRORS    
00152         return square_add<T>(lhs, rhs);
00153 #else                   
00154         return fabs_add<T>(lhs, rhs);
00155 #endif
00156 }

template<class T>
measure< T > tan const measure< T > &    arg
 

Definition at line 358 of file measure.h.

References cos(), measure< T >::stddev, and measure< T >::value.

Referenced by test_measureclass().

00358                                                        {
00359         measure<T> temp;
00360         temp.stddev=arg.stddev/(cos(arg.value)*cos(arg.value));
00361         temp.value=tan(arg.value);
00362         return temp;
00363 }

void test_measureclass  
 

Definition at line 524 of file measure.h.

References acos(), asin(), atan(), cos(), exp(), log(), log10(), overlap(), pow(), sin(), sqrt(), and tan().

00524                         {
00525         cout <<"\nWelcome!\nTEST the measure<double> class:"<<endl;
00526         typedef measure<double> measure;
00527         measure a=measure(5, 0.5);
00528         measure b=measure(2, 0.2);
00529         double c=2;
00530         measure d,e,f,g;
00531         cout <<"\na="<<a<<"\t\tb="<<b<<"\t\tc="<<c<<endl;
00532 
00533         cout<<endl;
00534         cout<<"calculate a +-*/ b"<<flush;
00535         cout <<"\na+b= "<<a+b<<"\na-b= "<<a-b<<"\na*b= "<<a*b<<"\na/b= "<<a/b<<endl;
00536 
00537         cout<<endl;
00538         cout<<"calculate a +-*/ c"<<flush;
00539         cout <<"\na+c= "<<a+c<<"\na-c= "<<a-c<<"\na*c= "<<a*c<<"\na/c= "<<a/c<<endl;
00540 
00541         cout<<endl;
00542         cout<<"calculate c +-*/ a"<<flush;
00543         cout <<"\nc+a= "<<c+a<<"\nc-a= "<<c-a<<"\nc*a= "<<c*a<<"\nc/a= "<<c/a<<endl;
00544 
00545         cout<<endl;
00546         cout<<"calculate pow(*,*);"<<flush;
00547         cout <<"\npow(a,b)= "<<pow(a,b)<<"\npow(a,c)= "<<pow(a,c);
00548         cout <<"\npow(b,a)= "<<pow(b,a)<<"\npow(c,a)= "<<pow(c,a)<<endl;;
00549 
00550         cout <<"\n+a= "<<+a<<"\n-a= "<<-a<<endl;
00551         a++;
00552         cout <<"a++;  a= "<<a<<endl;
00553         a--;
00554         cout <<"a--;  a= "<<a<<endl;
00555         
00556         cout<<endl;
00557         cout<<"calculate log/log10/exp/sqrt (a= "<<a<<")"<<flush;
00558         cout <<"\n  log(a)= "<<log(a)<<"\nlog10(a)= "<<log10(a);
00559         cout <<"\n  exp(a)= "<<exp(a)<<"\n sqrt(a)= "<<sqrt(a)<<endl;;
00560 
00561         cout<<endl;
00562         cout<<"calculate sin/cos/tan (a= "<<a<<")"<<flush;
00563         cout <<"\nsin(a)= "<<sin(a)<<"\ncos(a)= "<<cos(a)<<"\ntan(a)= "<<tan(a)<<endl;
00564         cout<<endl;
00565         a= measure(0.5,0.05);
00566         cout<<"calculate asin/acos/atan (a= "<<a<<")"<<flush;
00567         cout <<"\nasin(a)= "<<asin(a)<<"\nacos(a)= "<<acos(a)<<"\natan(a)= "<<atan(a)<<endl;
00568 
00569         a=measure(4, 0.5);
00570         b=measure(6, 1.2);
00571         c=7;
00572         cout <<"\na= "<<a<<"\tb= "<<b<<"\tc= "<<c<<endl;
00573         cout <<"overlap(a,b)="<<overlap(a,b);
00574         cout <<"\t  overlap(b,a)="<<overlap(b,a)<<endl;
00575         cout <<"overlap(b,c)="<<overlap(b,c);
00576         cout <<"\t  overlap(c,b)="<<overlap(c,b)<<endl;
00577 
00578         cout<<"\nPlease send your experiences with this class to   cpp__at__AndreasKrueger__dot__de\n"<<endl;
00579 }




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

www.AndreasKrueger.de/thesis/code