Added timer for bests solutions

This commit is contained in:
2021-01-23 19:20:21 +01:00
parent 1b43433420
commit e1c734cb63
6 changed files with 123 additions and 24 deletions

18
eval.c
View File

@@ -2,6 +2,9 @@
#include "lceb.h"
static int nodes_calc; /* total nodes evaluated */
static int leaves_calc; /* total leaves evaluated */
int eval_node(node, depth, pvals, pops, ncalcs)
NODE *node;
int depth;
@@ -11,8 +14,8 @@ int eval_node(node, depth, pvals, pops, ncalcs)
{
static int *vals, *val_zero;
static char *ops, *ops_zero;
static int totcalc;
static *node_zero;
static int totcalc;
int val1, val2, op, res=-1, i, lcalcs, rcalcs;
if (depth == 0) {
@@ -34,12 +37,14 @@ int eval_node(node, depth, pvals, pops, ncalcs)
}
# endif
if (node->type == TREE_LEAF) {
leaves_calc++;
node->val=*vals;
res=*vals;
vals++;
*ncalcs=0;
//printf("leaf=%d\n", res);
} else {
nodes_calc++;
op=*ops;
node->op=*ops;
ops++;
@@ -80,7 +85,7 @@ int eval_node(node, depth, pvals, pops, ncalcs)
if (!check_best(res, *ncalcs, node, val_zero, ops_zero))
res=-1;
}
if (stopped()) {
if (sigint_received) {
print_bests();
exit(1);
}
@@ -91,3 +96,12 @@ int eval_node(node, depth, pvals, pops, ncalcs)
# endif
return res;
}
int get_totnodes()
{
return nodes_calc;
}
int get_totleaves()
{
return leaves_calc;
}