40 #define Utility ClassDist[0]
41 #define Digits(n) ((n) < 10 ? 3 : (int)(3 + log(n-1) / log(10.0)))
73 if ( T->
Branch[v]->Utility > MaxDepth )
75 MaxDepth = T->
Branch[v]->Utility;
80 T->Utility = MaxDepth + 1;
100 fprintf(
Of,
"\n%s\n", Title);
106 fprintf(
Of, T_Subtree, s);
155 First = ( EmptyNA(T) ? 2 : 1 );
160 while ( BrNo < MaxV )
165 if ( T->
Branch[v]->Utility < T->
Branch[Simplest]->Utility ||
174 ShowBranch(Sh, T, Simplest, (
int)( BrNo == First ));
175 T->
Branch[Simplest]->Utility = 1E10;
182 if ( T->
Cases >= MinLeaf )
186 fprintf(
Of,
"/%.8g",
P1(Errors));
209 char CVS1[20], CVS2[20];
231 fprintf(
Of,
" = N/A:");
240 fprintf(
Of,
" <= %s (%s):", CVS1, CVS2);
246 fprintf(
Of,
" >= %s (%s):", CVS1, CVS2);
252 fprintf(
Of,
" %s %s:", ( v == 2 ?
"<=" :
">" ), CVS1);
262 if ( ! Values )
return;
276 for ( Pv = 1 ; !
In(Pv, T->
Subset[v]) ; Pv++ )
279 fprintf(
Of,
"%s %s [%s-%s]:",
AttName[Att], T_InRange,
284 fprintf(
Of,
"%s %s {",
AttName[Att], T_ElementOf);
287 TextWidth = Skip + Sh *
TabSize;
305 + ( T->
Errors < 0.05 ? 0 :
320 TextWidth = Skip + Sh *
TabSize;
377 int Ll, One, MaxLl=0;
448 if ( One > Ll ) Ll = One;
461 if ( Ll > MaxLl ) MaxLl = Ll;
482 for ( i = 1 ; i <= Sh ; i++ )
484 fprintf(
Of,
"%s", ( i == Sh && BrNo == 1 ?
":..." :
552 Node->
Leaf = NodeClass;
628 return ( T->
Cases >= MinLeaf ? 1 : 0 );
682 int Subtree, MaxSubtree=0;
689 if ( Subtree > MaxSubtree ) MaxSubtree = Subtree;
693 return MaxSubtree + 1;
713 memcpy(New, T,
sizeof(
TreeRec));