Index: /orxonox/trunk/src/orxonox.cc
===================================================================
--- /orxonox/trunk/src/orxonox.cc	(revision 3649)
+++ /orxonox/trunk/src/orxonox.cc	(revision 3650)
@@ -350,4 +350,8 @@
   printf("=                      BENCHMARKS                         =\n");
   printf("===========================================================\n");
+  printf(" the author is not paying any attention to cacheing effects\n");
+  printf(" of the CPU.\n\n");
+  printf("[title]\t\t\t\t\t     [cycles]\t[loops]\n\n");
+  //  printf("------------------------------------------------------------\n\n");
 
   // first measure the time overhead:
@@ -366,5 +370,5 @@
       /* framework test*/
 
-      printf("Generating Objects:\n");
+      printf("Generating Objects:\t\t\t\t\t%i\n", ITERATIONS);
       /* ************WorldEntity class test************** */
       WorldEntity* w = NULL;
@@ -383,5 +387,5 @@
 	}
       float mi = mittel / (float)ITERATIONS;
-      printf(" Generate a WorldEntity objec [cycles]: \t%f\n", mi);
+      printf(" Generate a WorldEntity object:\t\t%11.2f\n", mi);
       
       mittel = 0;
@@ -397,7 +401,40 @@
 	}
       mi = mittel / (float)ITERATIONS;
-      printf(" Generate a Primitive  objec [cycles]:\t\t%f\n", mi);
-
-      printf("\nCalling function inline &| virtual\n");
+      printf(" Generate a Primitive  object:\t\t%11.2f\n", mi);
+
+
+      mittel = 0;
+      for(i = 0; i < ITERATIONS; ++i)
+	{
+	  rdtscl(ini);
+	  
+	  Vector* v = new Vector();
+	  
+	  rdtscl(end);
+	  delete v;
+	  mittel += (end - ini - dt);
+	}
+      mi = mittel / (float)ITERATIONS;
+      printf(" Generate a Vector object:\t\t%11.2f\n", mi);
+
+
+     mittel = 0;
+      for(i = 0; i < ITERATIONS; ++i)
+	{
+	  rdtscl(ini);
+	  
+	  Quaternion* q = new Quaternion();
+	  
+	  rdtscl(end);
+	  delete q;
+	  mittel += (end - ini - dt);
+	}
+      mi = mittel / (float)ITERATIONS;
+      printf(" Generate a Quaternion object:\t\t%11.2f\n", mi);
+
+
+
+
+      printf("\nCalling function inline &| virtual, \t\t\t%i\n", ITERATIONS);
       mittel = 0;
       w = new WorldEntity();
@@ -413,5 +450,5 @@
       //delete w;
       mi = mittel / (float)ITERATIONS;
-      printf(" virt funct tick() of WE [cycles]: \t\t%f\n", mi);
+      printf(" Virt funct tick() of WE: \t\t%11.2f\n", mi);
 
 
@@ -429,5 +466,5 @@
       //delete w;
       mi = mittel / (float)ITERATIONS;
-      printf(" inl virt funct tick() of WE v2 [cycles]: \t%f\n", mi);
+      printf(" Inl virt funct tick() of WE v2: \t%11.2f\n", mi);
 
       
@@ -452,5 +489,5 @@
 	  }
       mi = mittel / (float)ITERATIONS;
-      printf("Call function tick() of Prim [cycles]:\t\t%f\n", mi);
+      printf(" Call function tick() of Prim:\t\t%11.2f\n", mi);
 
 
@@ -458,4 +495,5 @@
   if(type == 1 || type == -1)
     {
+      printf("\nDoing some simple vector operations: \t\t\t%i\n", VECTOR_MAX);
       /* vector test */
       Vector* a = new Vector(1.3, 5.3, 4.1);
@@ -463,20 +501,78 @@
       Vector* c = new Vector();
       
+      unsigned long mittel, ini, end;
+      float mi;
       int i = 0;
       // addition
+      mittel = 0;
       for(i = 0; i < VECTOR_MAX; ++i)
 	{
+	  rdtscl(ini);
+	  
 	  *c = *a + *b;
-	}
+	   
+	  rdtscl(end);
+	  mittel += (end - ini - dt);
+	}
+      mi = mittel / (float)VECTOR_MAX;
+      printf(" Addition of two vectors:\t\t%11.2f\n", mi);
       
       // multiplikation
+
+      mittel = 0;
       for(i = 0; i < VECTOR_MAX; ++i)
 	{
+	  rdtscl(ini);
+	  
 	  *c = a->cross( *b);
-	}
+	   
+	  rdtscl(end);
+	  mittel += (end - ini - dt);
+	}
+      mi = mittel / (float)VECTOR_MAX;
+      printf(" CrossMult of two vectors:\t\t%11.2f\n", mi);
+
       if(type == 1 || type == -1)
 	{
 	  /* quaternion test */
-
+	  printf("\nDoing some simple quaternion operations: \t\t%i\n", VECTOR_MAX);
+	  /* vector test */
+	  Quaternion* a = new Quaternion();
+	  Quaternion* b = new Quaternion();
+	  Quaternion* c = new Quaternion();
+	  
+	  unsigned long mittel, ini, end;
+	  float mi;
+	  int i = 0;
+	  // multiplication
+	  mittel = 0;
+	  for(i = 0; i < VECTOR_MAX; ++i)
+	    {
+	      rdtscl(ini);
+	      
+	      *c = *a * *b;
+	      
+	      rdtscl(end);
+	      mittel += (end - ini - dt);
+	    }
+	  mi = mittel / (float)VECTOR_MAX;
+	  printf(" Multiplying two quat. (=rot):\t\t%11.2f\n", mi);
+
+
+	  // multiplication
+	  mittel = 0;
+	  for(i = 0; i < VECTOR_MAX; ++i)
+	    {
+	      rdtscl(ini);
+	      
+	      *c = *a * *b;
+	      
+	      rdtscl(end);
+	      mittel += (end - ini - dt);
+	    }
+	  mi = mittel / (float)VECTOR_MAX;
+	  printf(" Multiplying two quat.(=rot):\t\t%11.2f\n", mi);
+	  
+	  
 	}
       
