relatorio
[xYpjg3TdSw.git] / profiling
blobdd1be1a5e7542ce3c5e28d379ada3aa20c60deb3
1 Flat profile:
3 Each sample counts as 0.01 seconds.
4   %   cumulative   self              self     total           
5  time   seconds   seconds    calls   s/call   s/call  name    
6  21.24     15.60    15.60  4315444     0.00     0.00  MinimaxEnemy::quads(Board, bool)
7  20.93     30.97    15.37  4315444     0.00     0.00  MinimaxEnemy::concentration(Board, bool)
8  17.41     43.76    12.79  4315444     0.00     0.00  MinimaxEnemy::connectedness(Board, bool)
9  13.14     53.41     9.65  4315444     0.00     0.00  MinimaxEnemy::heuristica(Board, bool)
10   9.43     60.34     6.93  4315444     0.00     0.00  MinimaxEnemy::centro(Board, bool)
11   9.14     67.05     6.71  4315444     0.00     0.00  MinimaxEnemy::masscenter(Board, bool)
12   5.09     70.79     3.74  4315444     0.00     0.00  MinimaxEnemy::centralisation(Board, bool)
13   1.96     72.23     1.44  2507814     0.00     0.00  Board::win(bool)
14   1.33     73.21     0.98      344     0.00     0.21  MinimaxEnemy::alphabeta(Board, int, double, double, int)
15   0.26     73.40     0.19                             moreHeu(void const*, void const*)
16   0.04     73.43     0.03    52686     0.00     0.00  Board::adjacent(char, char)
17   0.03     73.45     0.02                             lessHeu(void const*, void const*)
18   0.00     73.45     0.00     1000     0.00     0.00  MoveHistoryEntry::MoveHistoryEntry()
19   0.00     73.45     0.00      654     0.00     0.00  Board::Board()
20   0.00     73.45     0.00      616     0.00     0.00  MinimaxEnemy::undo(Board*)
21   0.00     73.45     0.00      345     0.00     0.00  MoveHistoryEntry::MoveHistoryEntry(Board*, int, int, int, int)
22   0.00     73.45     0.00      345     0.00     0.00  MoveHistoryEntry::operator=(MoveHistoryEntry const&)
23   0.00     73.45     0.00      345     0.00     0.00  Game::is_end()
24   0.00     73.45     0.00      344     0.00     0.21  MinimaxEnemy::move(Board*, int&, int&, int&, int&)
25   0.00     73.45     0.00      344     0.00     0.00  Game::move(int, int, int, int)
26   0.00     73.45     0.00      344     0.00     0.21  Game::think()
27   0.00     73.45     0.00      320     0.00     0.00  Controller::is_highlighted(int, int)
28   0.00     73.45     0.00      320     0.00     0.00  Controller::is_empty(int, int)
29   0.00     73.45     0.00      320     0.00     0.00  Window::draw_square(int, int, int)
30   0.00     73.45     0.00      120     0.00     0.00  Controller::piece(int, int)
31   0.00     73.45     0.00      120     0.00     0.00  Window::draw_circle(int, int, int)
32   0.00     73.45     0.00       12     0.00     0.00  Game::set_players(Enemy*, Enemy*)
33   0.00     73.45     0.00       12     0.00     0.00  Game::reset()
34   0.00     73.45     0.00        6     0.00     0.00  MinimaxEnemy::set_weights(double*)
35   0.00     73.45     0.00        5     0.00     0.00  Controller::after_display()
36   0.00     73.45     0.00        5     0.00     0.00  Window::render_scene()
37   0.00     73.45     0.00        3     0.00     0.00  Window::disable(char const*)
38   0.00     73.45     0.00        2     0.00     0.00  Game::fill_pieces(bool*, char*)
39   0.00     73.45     0.00        1     0.00     0.00  global constructors keyed to dx
40   0.00     73.45     0.00        1     0.00    73.24  ControlFunc(int)
41   0.00     73.45     0.00        1     0.00     0.00  Controller::set_window(Window*)
42   0.00     73.45     0.00        1     0.00     0.00  Controller::update_all()
43   0.00     73.45     0.00        1     0.00     0.00  Controller::set_minimax_depth(int)
44   0.00     73.45     0.00        1     0.00     0.00  Controller::set_computer_color(int)
45   0.00     73.45     0.00        1     0.00    73.24  Controller::play()
46   0.00     73.45     0.00        1     0.00     0.00  Controller::stop()
47   0.00     73.45     0.00        1     0.00     0.00  Controller::click(int, int)
48   0.00     73.45     0.00        1     0.00     0.00  Controller::Controller(Game*, bool)
49   0.00     73.45     0.00        1     0.00     0.00  Game::get_last_move(int&, int&, int&, int&)
50   0.00     73.45     0.00        1     0.00     0.00  Game::set_minimax_depth(int)
51   0.00     73.45     0.00        1     0.00     0.00  Game::Game()
52   0.00     73.45     0.00        1     0.00     0.00  Board::initial_position()
53   0.00     73.45     0.00        1     0.00     0.00  Window::enable_all()
54   0.00     73.45     0.00        1     0.00    73.24  Window::control_func(int)
55   0.00     73.45     0.00        1     0.00     0.00  Window::display()
56   0.00     73.45     0.00        1     0.00     0.00  Window::main_loop()
57   0.00     73.45     0.00        1     0.00     0.00  Window::Window(int, char**, Controller*)
59  %         the percentage of the total running time of the
60 time       program used by this function.
62 cumulative a running sum of the number of seconds accounted
63  seconds   for by this function and those listed above it.
65  self      the number of seconds accounted for by this
66 seconds    function alone.  This is the major sort for this
67            listing.
69 calls      the number of times this function was invoked, if
70            this function is profiled, else blank.
72  self      the average number of milliseconds spent in this
73 ms/call    function per call, if this function is profiled,
74            else blank.
76  total     the average number of milliseconds spent in this
77 ms/call    function and its descendents per call, if this 
78            function is profiled, else blank.
80 name       the name of the function.  This is the minor sort
81            for this listing. The index shows the location of
82            the function in the gprof listing. If the index is
83            in parenthesis it shows where it would appear in
84            the gprof listing if it were to be printed.
86                      Call graph (explanation follows)
89 granularity: each sample hit covers 4 byte(s) for 0.01% of 73.45 seconds
91 index % time    self  children    called     name
92                 0.00   73.24       1/1           GLUI_CB::operator()(GLUI_Control*) const [4]
93 [1]     99.7    0.00   73.24       1         ControlFunc(int) [1]
94                 0.00   73.24       1/1           Window::control_func(int) [3]
95 -----------------------------------------------
96                 0.00   73.24       1/1           Window::control_func(int) [3]
97 [2]     99.7    0.00   73.24       1         Controller::play() [2]
98                 0.00   73.24     344/344         Game::think() [7]
99                 0.00    0.00     344/345         Game::is_end() [19]
100                 0.00    0.00      12/12          Game::set_players(Enemy*, Enemy*) [37]
101                 0.00    0.00      12/12          Game::reset() [38]
102                 0.00    0.00       6/6           MinimaxEnemy::set_weights(double*) [39]
103                 0.00    0.00       0/0           Window::disable_all() [661]
104                 0.00    0.00       0/0           Window::enable(char const*) [666]
105 -----------------------------------------------
106                 0.00   73.24       1/1           ControlFunc(int) [1]
107 [3]     99.7    0.00   73.24       1         Window::control_func(int) [3]
108                 0.00   73.24       1/1           Controller::play() [2]
109 -----------------------------------------------
110                                                  <spontaneous>
111 [4]     99.7    0.00   73.24                 GLUI_CB::operator()(GLUI_Control*) const [4]
112                 0.00   73.24       1/1           ControlFunc(int) [1]
113 -----------------------------------------------
114                 0.00   73.24     344/344         Game::think() [7]
115 [5]     99.7    0.00   73.24     344         MinimaxEnemy::move(Board*, int&, int&, int&, int&) [5]
116                 0.98   72.26     344/344         MinimaxEnemy::alphabeta(Board, int, double, double, int) [6]
117 -----------------------------------------------
118                              1251422             MinimaxEnemy::alphabeta(Board, int, double, double, int) [6]
119                 0.98   72.26     344/344         MinimaxEnemy::move(Board*, int&, int&, int&, int&) [5]
120 [6]     99.7    0.98   72.26     344+1251422 MinimaxEnemy::alphabeta(Board, int, double, double, int) [6]
121                 9.65   61.14 4315444/4315444     MinimaxEnemy::heuristica(Board, bool) [8]
122                 1.44    0.03 2507128/2507814     Board::win(bool) [15]
123                              1251422             MinimaxEnemy::alphabeta(Board, int, double, double, int) [6]
124 -----------------------------------------------
125                 0.00    0.00       0/344         Controller::after_display() [40]
126                 0.00   73.24     344/344         Controller::play() [2]
127 [7]     99.7    0.00   73.24     344         Game::think() [7]
128                 0.00   73.24     344/344         MinimaxEnemy::move(Board*, int&, int&, int&, int&) [5]
129                 0.00    0.00     344/344         Game::move(int, int, int, int) [31]
130 -----------------------------------------------
131                 9.65   61.14 4315444/4315444     MinimaxEnemy::alphabeta(Board, int, double, double, int) [6]
132 [8]     96.4    9.65   61.14 4315444         MinimaxEnemy::heuristica(Board, bool) [8]
133                15.60    0.00 4315444/4315444     MinimaxEnemy::quads(Board, bool) [9]
134                15.37    0.00 4315444/4315444     MinimaxEnemy::concentration(Board, bool) [10]
135                12.79    0.00 4315444/4315444     MinimaxEnemy::connectedness(Board, bool) [11]
136                 6.93    0.00 4315444/4315444     MinimaxEnemy::centro(Board, bool) [12]
137                 6.71    0.00 4315444/4315444     MinimaxEnemy::masscenter(Board, bool) [13]
138                 3.74    0.00 4315444/4315444     MinimaxEnemy::centralisation(Board, bool) [14]
139 -----------------------------------------------
140                15.60    0.00 4315444/4315444     MinimaxEnemy::heuristica(Board, bool) [8]
141 [9]     21.2   15.60    0.00 4315444         MinimaxEnemy::quads(Board, bool) [9]
142 -----------------------------------------------
143                15.37    0.00 4315444/4315444     MinimaxEnemy::heuristica(Board, bool) [8]
144 [10]    20.9   15.37    0.00 4315444         MinimaxEnemy::concentration(Board, bool) [10]
145 -----------------------------------------------
146                12.79    0.00 4315444/4315444     MinimaxEnemy::heuristica(Board, bool) [8]
147 [11]    17.4   12.79    0.00 4315444         MinimaxEnemy::connectedness(Board, bool) [11]
148 -----------------------------------------------
149                 6.93    0.00 4315444/4315444     MinimaxEnemy::heuristica(Board, bool) [8]
150 [12]     9.4    6.93    0.00 4315444         MinimaxEnemy::centro(Board, bool) [12]
151 -----------------------------------------------
152                 6.71    0.00 4315444/4315444     MinimaxEnemy::heuristica(Board, bool) [8]
153 [13]     9.1    6.71    0.00 4315444         MinimaxEnemy::masscenter(Board, bool) [13]
154 -----------------------------------------------
155                 3.74    0.00 4315444/4315444     MinimaxEnemy::heuristica(Board, bool) [8]
156 [14]     5.1    3.74    0.00 4315444         MinimaxEnemy::centralisation(Board, bool) [14]
157 -----------------------------------------------
158                 0.00    0.00     686/2507814     Game::is_end() [19]
159                 1.44    0.03 2507128/2507814     MinimaxEnemy::alphabeta(Board, int, double, double, int) [6]
160 [15]     2.0    1.44    0.03 2507814         Board::win(bool) [15]
161                 0.03    0.00   52686/52686       Board::adjacent(char, char) [17]
162 -----------------------------------------------
163                                                  <spontaneous>
164 [16]     0.3    0.19    0.00                 moreHeu(void const*, void const*) [16]
165 -----------------------------------------------
166                 0.03    0.00   52686/52686       Board::win(bool) [15]
167 [17]     0.0    0.03    0.00   52686         Board::adjacent(char, char) [17]
168 -----------------------------------------------
169                                                  <spontaneous>
170 [18]     0.0    0.02    0.00                 lessHeu(void const*, void const*) [18]
171 -----------------------------------------------
172                 0.00    0.00       1/345         Controller::update_all() [21]
173                 0.00    0.00     344/345         Controller::play() [2]
174 [19]     0.0    0.00    0.00     345         Game::is_end() [19]
175                 0.00    0.00     686/2507814     Board::win(bool) [15]
176 -----------------------------------------------
177                                                  <spontaneous>
178 [20]     0.0    0.00    0.00                 main [20]
179                 0.00    0.00       1/1           Window::main_loop() [22]
180                 0.00    0.00       1/1           Game::Game() [53]
181                 0.00    0.00       1/2           Game::fill_pieces(bool*, char*) [43]
182                 0.00    0.00       1/1           Controller::Controller(Game*, bool) [50]
183                 0.00    0.00       1/1           Window::Window(int, char**, Controller*) [57]
184                 0.00    0.00       1/1           Controller::set_window(Window*) [45]
185 -----------------------------------------------
186                 0.00    0.00       1/1           Window::main_loop() [22]
187 [21]     0.0    0.00    0.00       1         Controller::update_all() [21]
188                 0.00    0.00       1/345         Game::is_end() [19]
189                 0.00    0.00       2/3           Window::disable(char const*) [42]
190                 0.00    0.00       1/2           Game::fill_pieces(bool*, char*) [43]
191                 0.00    0.00       1/1           Game::get_last_move(int&, int&, int&, int&) [51]
192                 0.00    0.00       1/1           Window::display() [56]
193                 0.00    0.00       0/0           Window::enable(char const*) [666]
194                 0.00    0.00       0/1           Window::enable_all() [55]
195 -----------------------------------------------
196                 0.00    0.00       1/1           main [20]
197 [22]     0.0    0.00    0.00       1         Window::main_loop() [22]
198                 0.00    0.00       1/1           Controller::update_all() [21]
199                 0.00    0.00       1/1           Controller::stop() [48]
200                 0.00    0.00       1/1           Game::set_minimax_depth(int) [52]
201                 0.00    0.00       1/1           Controller::set_minimax_depth(int) [46]
202 -----------------------------------------------
203                 0.00    0.00       0/1000        Game::Game() [539]
204                 0.00    0.00    1000/1000        Game::Game() [53]
205 [26]     0.0    0.00    0.00    1000         MoveHistoryEntry::MoveHistoryEntry() [26]
206 -----------------------------------------------
207                 0.00    0.00       1/654         Game::Game() [53]
208                 0.00    0.00     308/654         Game::reset() [38]
209                 0.00    0.00     345/654         MoveHistoryEntry::MoveHistoryEntry(Board*, int, int, int, int) [29]
210 [27]     0.0    0.00    0.00     654         Board::Board() [27]
211 -----------------------------------------------
212                 0.00    0.00     616/616         Game::reset() [38]
213 [28]     0.0    0.00    0.00     616         MinimaxEnemy::undo(Board*) [28]
214 -----------------------------------------------
215                 0.00    0.00       0/345         Game::Game() [539]
216                 0.00    0.00       1/345         Game::Game() [53]
217                 0.00    0.00     344/345         Game::move(int, int, int, int) [31]
218 [29]     0.0    0.00    0.00     345         MoveHistoryEntry::MoveHistoryEntry(Board*, int, int, int, int) [29]
219                 0.00    0.00     345/654         Board::Board() [27]
220 -----------------------------------------------
221                 0.00    0.00       0/345         Game::Game() [539]
222                 0.00    0.00       1/345         Game::Game() [53]
223                 0.00    0.00     344/345         Game::move(int, int, int, int) [31]
224 [30]     0.0    0.00    0.00     345         MoveHistoryEntry::operator=(MoveHistoryEntry const&) [30]
225 -----------------------------------------------
226                 0.00    0.00       0/344         Controller::click(int, int) [49]
227                 0.00    0.00     344/344         Game::think() [7]
228 [31]     0.0    0.00    0.00     344         Game::move(int, int, int, int) [31]
229                 0.00    0.00     344/345         MoveHistoryEntry::MoveHistoryEntry(Board*, int, int, int, int) [29]
230                 0.00    0.00     344/345         MoveHistoryEntry::operator=(MoveHistoryEntry const&) [30]
231 -----------------------------------------------
232                 0.00    0.00     320/320         Window::render_scene() [41]
233 [32]     0.0    0.00    0.00     320         Controller::is_highlighted(int, int) [32]
234 -----------------------------------------------
235                 0.00    0.00     320/320         Window::render_scene() [41]
236 [33]     0.0    0.00    0.00     320         Controller::is_empty(int, int) [33]
237 -----------------------------------------------
238                 0.00    0.00     320/320         Window::render_scene() [41]
239 [34]     0.0    0.00    0.00     320         Window::draw_square(int, int, int) [34]
240 -----------------------------------------------
241                 0.00    0.00     120/120         Window::render_scene() [41]
242 [35]     0.0    0.00    0.00     120         Controller::piece(int, int) [35]
243 -----------------------------------------------
244                 0.00    0.00     120/120         Window::render_scene() [41]
245 [36]     0.0    0.00    0.00     120         Window::draw_circle(int, int, int) [36]
246 -----------------------------------------------
247                 0.00    0.00      12/12          Controller::play() [2]
248 [37]     0.0    0.00    0.00      12         Game::set_players(Enemy*, Enemy*) [37]
249 -----------------------------------------------
250                 0.00    0.00      12/12          Controller::play() [2]
251 [38]     0.0    0.00    0.00      12         Game::reset() [38]
252                 0.00    0.00     616/616         MinimaxEnemy::undo(Board*) [28]
253                 0.00    0.00     308/654         Board::Board() [27]
254 -----------------------------------------------
255                 0.00    0.00       6/6           Controller::play() [2]
256 [39]     0.0    0.00    0.00       6         MinimaxEnemy::set_weights(double*) [39]
257 -----------------------------------------------
258                 0.00    0.00       5/5           RenderScene() [64]
259 [40]     0.0    0.00    0.00       5         Controller::after_display() [40]
260                 0.00    0.00       0/344         Game::think() [7]
261 -----------------------------------------------
262                 0.00    0.00       5/5           RenderScene() [64]
263 [41]     0.0    0.00    0.00       5         Window::render_scene() [41]
264                 0.00    0.00     320/320         Window::draw_square(int, int, int) [34]
265                 0.00    0.00     320/320         Controller::is_highlighted(int, int) [32]
266                 0.00    0.00     320/320         Controller::is_empty(int, int) [33]
267                 0.00    0.00     120/120         Controller::piece(int, int) [35]
268                 0.00    0.00     120/120         Window::draw_circle(int, int, int) [36]
269 -----------------------------------------------
270                 0.00    0.00       1/3           Controller::stop() [48]
271                 0.00    0.00       2/3           Controller::update_all() [21]
272 [42]     0.0    0.00    0.00       3         Window::disable(char const*) [42]
273 -----------------------------------------------
274                 0.00    0.00       1/2           Controller::update_all() [21]
275                 0.00    0.00       1/2           main [20]
276 [43]     0.0    0.00    0.00       2         Game::fill_pieces(bool*, char*) [43]
277 -----------------------------------------------
278                 0.00    0.00       1/1           __do_global_ctors_aux [862]
279 [44]     0.0    0.00    0.00       1         global constructors keyed to dx [44]
280 -----------------------------------------------
281                 0.00    0.00       1/1           main [20]
282 [45]     0.0    0.00    0.00       1         Controller::set_window(Window*) [45]
283 -----------------------------------------------
284                 0.00    0.00       1/1           Window::main_loop() [22]
285 [46]     0.0    0.00    0.00       1         Controller::set_minimax_depth(int) [46]
286 -----------------------------------------------
287                 0.00    0.00       1/1           Window::Window(int, char**, Controller*) [57]
288 [47]     0.0    0.00    0.00       1         Controller::set_computer_color(int) [47]
289 -----------------------------------------------
290                 0.00    0.00       1/1           Window::main_loop() [22]
291 [48]     0.0    0.00    0.00       1         Controller::stop() [48]
292                 0.00    0.00       1/1           Window::enable_all() [55]
293                 0.00    0.00       1/3           Window::disable(char const*) [42]
294 -----------------------------------------------
295                 0.00    0.00       1/1           MouseFunc(int, int, int, int) [106]
296 [49]     0.0    0.00    0.00       1         Controller::click(int, int) [49]
297                 0.00    0.00       0/344         Game::move(int, int, int, int) [31]
298                 0.00    0.00       0/0           Game::can_move(int, int) [538]
299                 0.00    0.00       0/0           Game::fill_moves(int, int, bool*) [532]
300 -----------------------------------------------
301                 0.00    0.00       1/1           main [20]
302 [50]     0.0    0.00    0.00       1         Controller::Controller(Game*, bool) [50]
303 -----------------------------------------------
304                 0.00    0.00       1/1           Controller::update_all() [21]
305 [51]     0.0    0.00    0.00       1         Game::get_last_move(int&, int&, int&, int&) [51]
306 -----------------------------------------------
307                 0.00    0.00       1/1           Window::main_loop() [22]
308 [52]     0.0    0.00    0.00       1         Game::set_minimax_depth(int) [52]
309 -----------------------------------------------
310                 0.00    0.00       1/1           main [20]
311 [53]     0.0    0.00    0.00       1         Game::Game() [53]
312                 0.00    0.00    1000/1000        MoveHistoryEntry::MoveHistoryEntry() [26]
313                 0.00    0.00       1/654         Board::Board() [27]
314                 0.00    0.00       1/1           Board::initial_position() [54]
315                 0.00    0.00       1/345         MoveHistoryEntry::MoveHistoryEntry(Board*, int, int, int, int) [29]
316                 0.00    0.00       1/345         MoveHistoryEntry::operator=(MoveHistoryEntry const&) [30]
317 -----------------------------------------------
318                 0.00    0.00       1/1           Game::Game() [53]
319 [54]     0.0    0.00    0.00       1         Board::initial_position() [54]
320 -----------------------------------------------
321                 0.00    0.00       0/1           Controller::update_all() [21]
322                 0.00    0.00       1/1           Controller::stop() [48]
323 [55]     0.0    0.00    0.00       1         Window::enable_all() [55]
324 -----------------------------------------------
325                 0.00    0.00       1/1           Controller::update_all() [21]
326 [56]     0.0    0.00    0.00       1         Window::display() [56]
327 -----------------------------------------------
328                 0.00    0.00       1/1           main [20]
329 [57]     0.0    0.00    0.00       1         Window::Window(int, char**, Controller*) [57]
330                 0.00    0.00       1/1           Controller::set_computer_color(int) [47]
331                 0.00    0.00       0/0           GLUI_Master_Object::create_glui(char const*, long, int, int) [453]
332                 0.00    0.00       0/0           GLUI::add_panel(char const*, int) [527]
333                 0.00    0.00       0/0           GLUI::add_panel_to_panel(GLUI_Panel*, char const*, int) [505]
334                 0.00    0.00       0/0           GLUI::add_button_to_panel(GLUI_Panel*, char const*, int, GLUI_CB) [507]
335                 0.00    0.00       0/0           GLUI::add_column_to_panel(GLUI_Panel*, int) [508]
336                 0.00    0.00       0/0           GLUI::add_radiogroup_to_panel(GLUI_Panel*, int*, int, GLUI_CB) [518]
337                 0.00    0.00       0/0           GLUI::add_radiobutton_to_group(GLUI_RadioGroup*, char const*) [520]
338                 0.00    0.00       0/0           GLUI::add_spinner_to_panel(GLUI_Panel*, char const*, int, void*, int, GLUI_CB) [512]
339                 0.00    0.00       0/0           GLUI_Spinner::set_int_limits(int, int, int) [273]
340                 0.00    0.00       0/0           GLUI::add_statictext_to_panel(GLUI_Panel*, char const*) [519]
341                 0.00    0.00       0/0           GLUI::set_main_gfx_window(int) [509]
342 -----------------------------------------------
344  This table describes the call tree of the program, and was sorted by
345  the total amount of time spent in each function and its children.
347  Each entry in this table consists of several lines.  The line with the
348  index number at the left hand margin lists the current function.
349  The lines above it list the functions that called this function,
350  and the lines below it list the functions this one called.
351  This line lists:
352      index      A unique number given to each element of the table.
353                 Index numbers are sorted numerically.
354                 The index number is printed next to every function name so
355                 it is easier to look up where the function in the table.
357      % time     This is the percentage of the `total' time that was spent
358                 in this function and its children.  Note that due to
359                 different viewpoints, functions excluded by options, etc,
360                 these numbers will NOT add up to 100%.
362      self       This is the total amount of time spent in this function.
364      children   This is the total amount of time propagated into this
365                 function by its children.
367      called     This is the number of times the function was called.
368                 If the function called itself recursively, the number
369                 only includes non-recursive calls, and is followed by
370                 a `+' and the number of recursive calls.
372      name       The name of the current function.  The index number is
373                 printed after it.  If the function is a member of a
374                 cycle, the cycle number is printed between the
375                 function's name and the index number.
378  For the function's parents, the fields have the following meanings:
380      self       This is the amount of time that was propagated directly
381                 from the function into this parent.
383      children   This is the amount of time that was propagated from
384                 the function's children into this parent.
386      called     This is the number of times this parent called the
387                 function `/' the total number of times the function
388                 was called.  Recursive calls to the function are not
389                 included in the number after the `/'.
391      name       This is the name of the parent.  The parent's index
392                 number is printed after it.  If the parent is a
393                 member of a cycle, the cycle number is printed between
394                 the name and the index number.
396  If the parents of the function cannot be determined, the word
397  `<spontaneous>' is printed in the `name' field, and all the other
398  fields are blank.
400  For the function's children, the fields have the following meanings:
402      self       This is the amount of time that was propagated directly
403                 from the child into the function.
405      children   This is the amount of time that was propagated from the
406                 child's children to the function.
408      called     This is the number of times the function called
409                 this child `/' the total number of times the child
410                 was called.  Recursive calls by the child are not
411                 listed in the number after the `/'.
413      name       This is the name of the child.  The child's index
414                 number is printed after it.  If the child is a
415                 member of a cycle, the cycle number is printed
416                 between the name and the index number.
418  If there are any cycles (circles) in the call graph, there is an
419  entry for the cycle-as-a-whole.  This entry shows who called the
420  cycle (as parents) and the members of the cycle (as children.)
421  The `+' recursive calls entry shows the number of function calls that
422  were internal to the cycle, and the calls entry for each member shows,
423  for that member, how many times it was called from other members of
424  the cycle.
427 Index by function name
429   [44] global constructors keyed to dx [39] MinimaxEnemy::set_weights(double*) [7] Game::think()
430    [1] ControlFunc(int)       [10] MinimaxEnemy::concentration(Board, bool) [19] Game::is_end()
431   [18] lessHeu(void const*, void const*) [11] MinimaxEnemy::connectedness(Board, bool) [53] Game::Game()
432   [16] moreHeu(void const*, void const*) [14] MinimaxEnemy::centralisation(Board, bool) [54] Board::initial_position()
433   [45] Controller::set_window(Window*) [5] MinimaxEnemy::move(Board*, int&, int&, int&, int&) [15] Board::win(bool)
434   [21] Controller::update_all() [28] MinimaxEnemy::undo(Board*) [17] Board::adjacent(char, char)
435   [40] Controller::after_display() [9] MinimaxEnemy::quads(Board, bool) [27] Board::Board()
436   [32] Controller::is_highlighted(int, int) [12] MinimaxEnemy::centro(Board, bool) [55] Window::enable_all()
437   [46] Controller::set_minimax_depth(int) [6] MinimaxEnemy::alphabeta(Board, int, double, double, int) [36] Window::draw_circle(int, int, int)
438   [47] Controller::set_computer_color(int) [29] MoveHistoryEntry::MoveHistoryEntry(Board*, int, int, int, int) [34] Window::draw_square(int, int, int)
439    [2] Controller::play()     [26] MoveHistoryEntry::MoveHistoryEntry() [3] Window::control_func(int)
440   [48] Controller::stop()     [30] MoveHistoryEntry::operator=(MoveHistoryEntry const&) [41] Window::render_scene()
441   [49] Controller::click(int, int) [43] Game::fill_pieces(bool*, char*) [42] Window::disable(char const*)
442   [35] Controller::piece(int, int) [37] Game::set_players(Enemy*, Enemy*) [56] Window::display()
443   [33] Controller::is_empty(int, int) [51] Game::get_last_move(int&, int&, int&, int&) [22] Window::main_loop()
444   [50] Controller::Controller(Game*, bool) [52] Game::set_minimax_depth(int) [57] Window::Window(int, char**, Controller*)
445    [8] MinimaxEnemy::heuristica(Board, bool) [31] Game::move(int, int, int, int)
446   [13] MinimaxEnemy::masscenter(Board, bool) [38] Game::reset()