]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STAT/Macros/testkdtreeIF.C
update testing macros
[u/mrichter/AliRoot.git] / STAT / Macros / testkdtreeIF.C
diff --git a/STAT/Macros/testkdtreeIF.C b/STAT/Macros/testkdtreeIF.C
deleted file mode 100644 (file)
index 55627c2..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-// #include <malloc.h>
-// #include "TMatrixD.h"
-// #include "TRandom.h"
-// #include "TGraph.h"
-// #include "TStopwatch.h"
-// 
-
-
-Int_t Mem()
-{
-  // size in 1000 bytes
-  static struct mallinfo memdebug; 
-  memdebug = mallinfo();
-  return memdebug.uordblks/1000;
-}
-
-
-
-void testindexes(Int_t nloop, Int_t npoints);
-void  testkdtreeIF(Int_t npoints=1000, Int_t nloop=1000, Int_t mode = 1, Int_t bsize=9);
-void TestSizeIF(Int_t npoints=1000, Int_t nrows = 150, Int_t nsec=18, Int_t mode = 1, Int_t bsize=9);
-
-
-
-void testindexes(Int_t nloop, Int_t npoints){
-  //
-  // test indexing 
-  // 
-  TKDTree<Int_t, Float_t> *kdtree = new TKDTree<Int_t, Float_t>(0,0,0,0);
-  Int_t row =0;
-  Int_t collumn =0; 
-  TStopwatch timer;
-  timer.Start();
-  row = 10;
-  for (Int_t iloop=0;iloop<nloop;iloop++)
-  for (Int_t index=1;index<npoints;index++){
-    //row = TMath::Log2(index);
-    //row=0;
-   //  if (index< (16<<row)) row=0;
-//     for (; index>=(32<<row);row+=5);
-//     for (; index>=(2<<row);row++);
-//     collumn= index-(1<<row);
-      TKDTree<Int_t, Float_t>::GetCoord(index,row,collumn);
-    //
-    //Int_t index2=kdtree->GetIndex(row,collumn);
-    //printf("%d\t%d\t%d\t%d\n",index,index2,row,collumn);
-    if (kdtree->GetIndex(row,collumn)!=index || collumn<0) {
-      printf("Problem\n");
-    }
-  }
-  timer.Stop();
-  timer.Print();
-}
-
-void TestBuild(Int_t npoints, Int_t bsize){  
-  Float_t *data0 =  new Float_t[npoints*2];
-  Float_t *data[2];
-  data[0] = &data0[0];
-  data[1] = &data0[npoints];
-  for (Int_t i=0;i<npoints;i++) {
-    data[1][i]= gRandom->Rndm();
-    data[0][i]= gRandom->Rndm();
-    //data[1][i]= 0;
-    //data[0][i]= -i;
-  }
-  Float_t dataf[2];
-  TKDTreeIF *kdtree = new TKDTreeIF(npoints, 2, bsize, data);
-  //kdtree->Build();
-  for (Int_t i=0; i<npoints;i++){
-    Int_t index = kdtree->fIndPoints[i];
-    //printf("%d\t%d\t%f\n",i,index,data[0][index]);
-  }
-  for (Int_t i=0; i<kdtree->fNnodes;i++){
-    //printf("%d\t%f\n",i,kdtree->fNodes[i].fValue);
-  }
-  Float_t sumiter = 0;
-  for (Int_t i=0;i<npoints;i++){
-    dataf[0] = data[0][i];
-    dataf[1] = data[1][i];
-    Int_t index=-1;
-    Int_t iter =0;
-    kdtree->FindPoint(dataf,index, iter);
-    if (i!=index){
-      printf("%d\t%d\t%f\t%f\n",i,index,dataf[0],data[0][index]);
-    }
-    sumiter+=iter;
-  }
-  printf("Mean iter = %f\n",float(sumiter)/float(npoints));
-}
-
-
-void TestSizeIF(Int_t npoints, Int_t nrows, Int_t nsec, Int_t mode, Int_t bsize)
-{
-  //
-  // test size to build kdtree
-  //
-  Int_t before =Mem();
-  for (Int_t isec=0; isec<nsec;isec++)
-    for (Int_t irow=0;irow<nrows;irow++){
-      testkdtreeIF(npoints,0,mode,bsize);
-    }
-  Int_t after = Mem();
-  printf("Memory usage %d\n",after-before);
-}
-
-
-void  testkdtreeIF(Int_t npoints, Int_t nloop, Int_t mode, Int_t bsize)
-{
-  //
-  // test speed and functionality of kdtree
-  //
-  Float_t rangey  = 100;
-  Float_t rangez  = 100;
-  Float_t drangey = 0.1;
-  Float_t drangez = 0.1;
-//   Float_t rangey  = 20;
-//   Float_t rangez  = 250;
-//   Float_t drangey = 1;
-//   Float_t drangez = 1;
-
-  //
-  Float_t *data0 =  new Float_t[npoints*2];
-  Float_t *data[2];
-  data[0] = &data0[0];
-  data[1] = &data0[npoints];
-  Int_t i;   
-  for (i=0; i<npoints; i++){
-    data[0][i]          = gRandom->Uniform(-rangey, rangey);
-    data[1][i]          = gRandom->Uniform(-rangez, rangez);
-    //     data[i+npoints]  = TMath::Nint(gRandom->Uniform(-rangez, rangez)/10.)*10.;
-    //printf("%d %f  %f\n", i, data[i], data[i+npoints]);     
-  }
-  TStopwatch timerbuild;
-  TKDTree<Int_t, Float_t> *kdtree = new TKDTree<Int_t, Float_t>(npoints,2,bsize,data);
-   kdtree->Build();
-   timerbuild.Stop();
-   timerbuild.Print();
-  TStopwatch timer;
-
-   Float_t countern=0;
-   Float_t counteriter  = 0;
-   Float_t counterfound = 0;
-
-
-   if (mode ==2){ 
-     if (nloop) timer.Start();
-     Int_t res[npoints];
-     Int_t nfound = 0;
-     for (Int_t kloop = 0;kloop<nloop;kloop++){
-       if (kloop==0){
-        counteriter = 0;
-        counterfound= 0; 
-        countern    = 0;
-       }
-       for (Int_t i=0;i<npoints;i++){
-        Float_t point[2]={data[0][i],data[1][i]};
-        Float_t delta[2]={drangey,drangez};
-        Int_t iter  =0;
-        nfound =0;
-        Int_t bnode =0;
-        //kdtree->FindBNode(point,delta, bnode);
-        //continue;
-        kdtree->FindInRangeA(point,delta,res,nfound,iter,bnode);
-        if (kloop==0){
-          //Bool_t isOK = kTRUE;
-          Bool_t isOK = kFALSE;
-          for (Int_t ipoint=0;ipoint<nfound;ipoint++)
-            if (res[ipoint]==i) isOK =kTRUE;
-          counteriter+=iter;
-          counterfound+=nfound;
-          if (isOK) {
-            countern++;
-          }else{
-            printf("Bug\n");
-          }
-        }
-       } 
-     }
-     if (nloop){
-       timer.Stop();
-       timer.Print();
-     }
-   }
-   delete [] data0;
-
-   counteriter/=npoints;
-   counterfound/=npoints;
-   if (nloop) printf("Find nearest point:\t%f\t%f\t%f\n",countern, counteriter, counterfound); 
-}