crown
1.0.0
|
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