Another trampoline bites the dust.

This commit is contained in:
Cas Cremers 2018-10-22 04:25:34 +02:00
parent a373667c23
commit 368009e84f

View File

@ -214,36 +214,44 @@ newkeylevel (const int level)
return 1;
}
struct state_tcc
{
int leaves;
int nonvariables;
};
//! Simple helper for below
int
countMe (Term t, struct state_tcc *stcc)
{
if (TermRunid (t) >= 0)
{
(stcc->leaves)++;
if (!isTermVariable (t))
{
(stcc->nonvariables)++;
}
}
return 1;
}
//! count local constants
float
term_constcount (const System sys, Term t)
{
int n, total;
float ratio;
struct state_tcc Stcc;
int countMe (Term t)
{
if (TermRunid (t) >= 0)
{
total++;
if (!isTermVariable (t))
{
n++;
}
}
return 1;
}
n = 0;
total = 0;
term_iterate_deVar (t, countMe, NULL, NULL, NULL);
if (total == 0)
Stcc.nonvariables = 0;
Stcc.leaves = 0;
term_iterate_state_deVar (t, countMe, NULL, NULL, NULL, &Stcc);
if (Stcc.leaves == 0)
{
ratio = 1;
}
else
{
ratio = ((total - n) / total);
ratio = ((Stcc.leaves - Stcc.nonvariables) / Stcc.leaves);
}
return ratio;
}