crown  1.0.0
include/crown/crown.h
Go to the documentation of this file.
00001 /*
00002  Copyright 2015 Nicolas Melot
00003 
00004  This file is part of Crown.
00005 
00006  Crown is free software: you can redistribute it and/or modify
00007  it under the terms of the GNU General Public License as published by
00008  the Free Software Foundation, either version 3 of the License, or
00009  (at your option) any later version.
00010 
00011  Crown is distributed in the hope that it will be useful,
00012  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00014  GNU General Public License for more details.
00015 
00016  You should have received a copy of the GNU General Public License
00017  along with Crown. If not, see <http://www.gnu.org/licenses/>.
00018 
00019 */
00020 
00021 
00022 #include <pelib/Algebra.hpp>
00023 
00024 #ifndef CROWN_H
00025 #define CROWN_H
00026 
00027 // Name of a dummy task not to be taken into account when computing energy consumption
00028 #define DUMMY_TASK "Unused Cores"
00029 
00030 namespace pelib
00031 {
00032 namespace crown
00033 {
00034 
00035 #if 0
00036 
00037 Algebra
00038 crown_annealing_allocation_simple(const Algebra &initial, float temperature, float cooling, float final, int max_transform, int max_new_state, float distance);
00039 
00041 Algebra
00042 crown_annealing_allocation_idle(const Algebra &initial, float temperature, float cooling, float final, int max_transform, int max_new_state, float distance);
00043 
00045 Algebra
00046 crown_annealing_allocation_off(const Algebra &schedule, float temperature, float cooling, float final, int max_transform, int max_new_state, float distance);
00047 
00049 Algebra
00050 crown_binary_simple(const Algebra &schedule, unsigned int precision);
00051 
00053 Algebra
00054 crown_binary_idle(const Algebra &schedule, unsigned int precision);
00055 
00057 Algebra
00058 crown_binary_off(const Algebra &schedule, unsigned int precision);
00059 #endif
00060 
00062 Algebra
00063 crown_binary(const Algebra &schedule, unsigned int precision);
00064 
00065 Algebra
00066 crown_binary_annealing_allocation(const Algebra &schedule, float temperature, float cooling, float final, int max_transform, int max_new_state, float distance);
00067 
00069 float
00070 crown_binary_complexity(const Algebra &schedule, unsigned int precision = 0);
00071 
00072 #if 0
00073 
00074 Algebra
00075 crown_binary_annealing_allocation_simple(const Algebra &schedule, float temperature, float cooling, float final, int max_transform, int max_new_state, float distance);
00076         
00078 Algebra
00079 crown_binary_annealing_allocation_idle(const Algebra &schedule, float temperature, float cooling, float final, int max_transform, int max_new_state, float distance);
00080 
00082 Algebra
00083 crown_binary_annealing_allocation_off(const Algebra &schedule, float temperature, float cooling, float final, int max_transform, int max_new_state, float distance);
00084 
00086 Algebra
00087 crown_binary_annealing_efficiency_simple(const Algebra &schedule, float temperature, float cooling, float final, int max_transform, int max_new_state, float distance);
00088 
00090 Algebra
00091 crown_binary_annealing_efficiency_idle(const Algebra &schedule, float temperature, float cooling, float final, int max_transform, int max_new_state, float distance);
00092 
00094 Algebra
00095 crown_binary_annealing_efficiency_off(const Algebra &schedule, float temperature, float cooling, float final, int max_transform, int max_new_state, float distance);
00096 #endif
00097         
00098 }
00099 }
00100 
00101 #endif