// file: $isip_ifc/class/algo/CorrelationIntegral/corrint_00.cc
// version: $Id: corrint_00.cc 10476 2006-03-13 18:48:18Z prasad $
//

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

//------------------------------------------------------------------------
//
// required public methods
//
//-----------------------------------------------------------------------

// method: clear
//
// arguments:
//  Integral::CMODE ctype: (input) clear mode
//
// return: a boolean value indicating status
//
// this method resets the data members to the default values
//
boolean CorrelationIntegral::clear(Integral::CMODE ctype_a) {

  // reset all protected data
  //
  if (ctype_a != Integral::RETAIN) {
    algorithm_d = DEF_ALGORITHM;
    implementation_d = DEF_IMPLEMENTATION;
    scaling_d = DEF_SCALING;
    spacing_mode_d = DEF_SPACING_MODE;
    epsilon_min_d = DEF_EPSILON_MIN;
    epsilon_max_d = DEF_EPSILON_MAX;
    epsilon_res_d = DEF_EPSILON_RES;
    theiler_correction_d = DEF_THEILER_CORRECTION;    
  }
  
  // call the base clear method
  //
  return AlgorithmBase::clear(ctype_a);
}

//-----------------------------------------------------------------------------
//
// we define non-integral constants in the default constructor
//      
//-----------------------------------------------------------------------------

// constants: class name
//
const String CorrelationIntegral::CLASS_NAME(L"CorrelationIntegral");

// constants: i/o related constants
//
const String CorrelationIntegral::DEF_PARAM(L"");
const String CorrelationIntegral::PARAM_ALGORITHM(L"algorithm");
const String CorrelationIntegral::PARAM_IMPLEMENTATION(L"implementation");
const String CorrelationIntegral::PARAM_SCALING(L"scaling");
const String CorrelationIntegral::PARAM_SPACING_MODE(L"spacing_mode");
const String CorrelationIntegral::PARAM_EPSILON_MIN(L"epsilon_min");
const String CorrelationIntegral::PARAM_EPSILON_MAX(L"epsilon_max");
const String CorrelationIntegral::PARAM_EPSILON_RES(L"epsilon_res");
const String CorrelationIntegral::PARAM_EPSILON(L"epsilon");
const String CorrelationIntegral::PARAM_THEILER_CORRECTION(L"theiler_correction");

// constants: NameMap(s) for the enumerated values
//
const NameMap CorrelationIntegral::ALGO_MAP(L"NORMAL");
const NameMap CorrelationIntegral::IMPL_MAP(L"REGULAR");
const NameMap CorrelationIntegral::SCAL_MAP(L"LOGSCALE");
const NameMap CorrelationIntegral::SPAC_MAP(L"LINEAR_EPSILON_SPACING");

// static instantiations: memory manager
//
MemoryManager CorrelationIntegral::mgr_d(sizeof(CorrelationIntegral), CorrelationIntegral::name());


