// file: $isip/class/search/HierarchicalSearch/hsrch_07.cc
// version: $Id: hsrch_07.cc 9742 2004-08-20 20:43:15Z may $
//

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

// method: setNumLevels
//
// arguments:
//  long num_levels: (input) the number of levels to use
//
// return: logical error status
//
// set the number of search levels
//
boolean HierarchicalSearch::setNumLevels(long num_levels_a) {

  // check for out of range args
  //
  if (num_levels_a < 1) {
    return false;
  }

  // set the trace lists
  //
  trace_lists_d.setLength(num_levels_a, false);
  for (long i = 0; i < num_levels_a; i++) {
    trace_lists_d(i).setAllocationMode(DstrBase::USER);
  }

  // set the instance lists
  //
  instance_lists_d.setLength(num_levels_a, false);
  for (long i = 0; i < num_levels_a; i++) {
    instance_lists_d(i).setAllocationMode(DstrBase::USER);
  }  

  // set the maximal trace score list
  //
  max_trace_scores_d.setLength(num_levels_a, false);
  max_instance_scores_d.setLength(num_levels_a, false);  
  
  // exit gracefully
  //
  return true;
}
