Column-oriented GPU-accelerated Database Management System
CoGaDB
/home/sebastian/gpudbms/trunk/hype-library/include/core/algorithm_statistics.hpp
Go to the documentation of this file.
00001 /***********************************************************************************************************
00002 Copyright (c) 2012, Sebastian Breß, Otto-von-Guericke University of Magdeburg, Germany. All rights reserved.
00003 
00004 This program and accompanying materials are made available under the terms of the 
00005 GNU LESSER GENERAL PUBLIC LICENSE - Version 3, http://www.gnu.org/licenses/lgpl-3.0.txt
00006 ***********************************************************************************************************/
00007 #pragma once
00008 
00009 #include <iostream>
00010 #include <string>
00011 #include <vector>
00012 #include <memory>
00013 
00014 
00015 //HyPE includes
00016 #include <core/recomputation_heuristic.hpp>
00017 #include <core/time_measurement.hpp>
00018 #include <core/measurementpair.hpp>
00019 #include <core/measurementpair_ringbuffer.hpp>
00020 //Boost includes
00021 #include <boost/utility.hpp>
00022 
00023 namespace hype{
00024         namespace core{
00025 
00026 
00044 class AlgorithmStatistics{ // : private boost::noncopyable{ //make AlgorithmStatistics not copyable
00045 
00046         public:
00047 
00048         //MeasurementPair mp;
00049         //vector<Measurementpair> >     executionHistory
00050 
00051         AlgorithmStatistics();
00052         
00053         bool writeToDisc(const std::string& operation_name, const std::string& algorithm_name) const;
00054 
00055                 MeasurementPairRingbuffer executionHistory_;
00056                 std::vector<double> relative_errors_;
00057                 unsigned int number_of_recomputations_;
00058                 unsigned int number_of_decisions_for_this_algorithm_;
00059                 double average_relative_error_;
00060                 double total_execution_time_;
00061                 unsigned int number_of_terminated_executions_of_this_algorithm_;
00062                 
00063                 private:
00064                 AlgorithmStatistics(const AlgorithmStatistics&);
00065                 AlgorithmStatistics& operator= (const AlgorithmStatistics&);
00066         
00067                 static void *operator new(size_t size);
00068                 static void operator delete(void *ptr);
00069 
00070 };
00071 
00072 
00073         }; //end namespace core
00074 }; //end namespace hype
00075 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines