Added timer for bests solutions
This commit is contained in:
18
eval.c
18
eval.c
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user