// file: dtn_debug_0.cc
//
 
// isip include files
//
#include "dt_node.h"
#include "dt_node_constants.h"

// method: debug_cc
//
// arguments:
//  FILE* fp: (input) file pointer used for output
//  char_1* message: (input) a message concatenated to each debug message
//
// return: a logical_1 indicating status
//
// this method displays the values of all internal data
//
logical_1 Dt_node::debug_cc(FILE* fp_a, char_1* message_a) {
  
  // dump the parent
  //
  fprintf(fp_a, "%s::%s: parent_d = %p\n", DTN_CLASS_NAME, message_a,
	  parent_d);
  
  // dump the left child
  //
  fprintf(fp_a, "%s::%s: l_child_d = %p\n", DTN_CLASS_NAME, message_a,
	  l_child_d);
  
  // dump the right child
  //
  fprintf(fp_a, "%s::%s: r_child_d = %p\n", DTN_CLASS_NAME, message_a,
	  r_child_d);
  
  
  // dump the Optimal quesiton for this node
  //
  fprintf(fp_a, "%s::%s: question_d = %p\n", DTN_CLASS_NAME, message_a,
	  opt_question_d);
  
  // dump the number of states included
  //
  fprintf(fp_a, "%s::%s: num_states_d = %ld\n", DTN_CLASS_NAME, message_a,
	  num_states_d);
  
  for (int_4 i = 0; i < num_states_d; i++) {
    fprintf(fp_a, "%s::%s: state_index_d[%ld] = %ld\n", DTN_CLASS_NAME,
	    message_a, i, state_index_d[i]);
  }
  

  // dump the likelihood and split likelihood
  //
  fprintf(fp_a, "%s::%s: likelihood_d = %.6f\n", DTN_CLASS_NAME, message_a,
	  likelihood_d);  
  fprintf(fp_a, "%s::%s: split_lk_inc_d = %.6f\n", DTN_CLASS_NAME,
	  message_a, split_lk_inc_d);  

  
  // dump the label assigned to terminal node 
  //
  fprintf(fp_a, "%s::%s: label_d = %ld\n", DTN_CLASS_NAME, message_a,
	  label_d);
  
  // dump the status flag
  //
  fprintf(fp_a, "%s::%s: flag_leaf_d = %c\n", DTN_CLASS_NAME, message_a,
	  flag_leaf_d);
  
  fprintf(fp_a, "%s::%s: flag_visit_d = %c\n", DTN_CLASS_NAME, message_a,
	  flag_visit_d);
  
  // exit gracefully
  //
  return ISIP_TRUE;
}
