// file: $isip/class/mmedia/AlgorithmData/algd_01.cc
// version: $Id: algd_01.cc 8173 2002-06-07 14:32:52Z gao $
//

// isip include files
//
#include "AlgorithmData.h"

// method: debug
//
// arguments:
//  const unichar* message: (input) prefix for debug messages
//
// return: a boolean value indicating status
//
boolean AlgorithmData::debug(const unichar* message_a) const {

  // provide some detailed debugging information
  //
  if (debug_level_d >= Integral::DETAILED) {
    mgr_d.debug(CLASS_NAME);
  }

  String output;
  output.debugStr(name(), message_a, L"data_type_d", DTYPE_MAP(data_type_d));
  Console::put(output);

  output.debugStr(name(), message_a, L"coef_type_d", CTYPE_MAP(coef_type_d));
  Console::put(output);

  if (data_type_d == NONE) {
    String null;
    null.assign((void*)NULL);
    output.debugStr(name(), message_a, L"data_d", null);
    Console::put(output);
  }
  else {
    output.debugStr(name(), message_a, L"data_d");
    Console::put(output);

    Console::increaseIndention();
    
    if (data_type_d == VECTOR_FLOAT) {
      getVectorFloat().debug(L"");
    }
    else if (data_type_d == VECTOR_COMPLEX_FLOAT) {
      getVectorComplexFloat().debug(L"");
    }
    else if (data_type_d == MATRIX_FLOAT) {
      getMatrixFloat().debug(L"");
    }
    else if (data_type_d == MATRIX_COMPLEX_FLOAT) {
      getMatrixComplexFloat().debug(L"");
    }
    else if (data_type_d == COMBINATION) {
      getCombination().debug(L"");
    }
    
    if (data_type_d == VECTOR_DOUBLE) {
      getVectorDouble().debug(L"");
    }
    else if (data_type_d == VECTOR_COMPLEX_DOUBLE) {
      getVectorComplexDouble().debug(L"");
    }
    else if (data_type_d == MATRIX_DOUBLE) {
      getMatrixDouble().debug(L"");
    }
    else if (data_type_d == MATRIX_COMPLEX_DOUBLE) {
      getMatrixComplexDouble().debug(L"");
    }
	
    Console::decreaseIndention();
  }

  // exit gracefully
  //  
  return true;
}
