// file: tr_st_debug_0.cc
//

// isip include files
//
#include "train_state.h"
#include "train_state_constants.h"

// method: debug_cc
//
// arguments:
//  FILE* fp: (input) a open file pointer
//  char_1* message: (input) a message to be displayed
//
// return: a logical_1 flag indicating success
//
// this method is for debugging purposes
//

logical_1 Train_State::debug_cc(FILE *fp_a, char_1* message_a) {
  
  // dump the contents of the class to the file
  //
  fprintf(fp_a, "%s::%s num_features_d = %ld\n", TRAIN_STATE_CLASS_NAME, message_a,
	  num_features_d);
  fprintf(fp_a, "%s::%s num_mixtures_d = %ld\n", TRAIN_STATE_CLASS_NAME, message_a,
	  num_mixtures_d);

  // for each mixture
  //
  for (int_4 k = 0; k < num_mixtures_d; k++) {
  
    // output the weight
    //
    fprintf(fp_a, "%s::%s weights_d[%ld] = %.4f\n", TRAIN_STATE_CLASS_NAME,
	    message_a, k, weights_d[k]);

    // output the scale
    //
    fprintf(fp_a, "%s::%s scale_d[%ld] = %.4f\n", TRAIN_STATE_CLASS_NAME,
	    message_a, k, scale_d[k]);

    // output the mean vectors
    //
    for (int_4 i = 0; i < num_features_d; i++) {
      fprintf(fp_a, "%s::%s mean_d[%ld][%ld] = %.4f\n", TRAIN_STATE_CLASS_NAME,
	      message_a, k, i, mean_d[k][i]);
    }

    // output the covariance values
    //
    for (int_4 i = 0; i < num_features_d; i++) {
      fprintf(fp_a, "%s::%s covar_d[%ld][%ld] = %.4f\n", TRAIN_STATE_CLASS_NAME,
	      message_a, k, i, covar_d[k][i]);
    }
  }

  // exit gracefully
  //
  return ISIP_TRUE;
}
