Program Listing for File solver_config.h

Return to documentation for file (src/solver_config.h)

#ifndef SOLVER_CONFIG_H_
#define SOLVER_CONFIG_H_

#include <cstdlib>
#include <cassert>
#include <string>

#include "primitive_types.h"
#include "sampler_tools.h"

struct SolverConfiguration {
  // Support for these features is removed in the sampler.
//  /**
//   * Support to modify the default state of this feature is
//   * disabled in the sampler.
//   *
//   * Forces variable backtracking in the case of a conflict
//   * being founded.
//   */
//  bool perform_non_chron_back_track = true;
  bool perform_component_caching = true;
  bool perform_failed_lit_test = true;
  bool perform_pre_processing = true;
  bool perform_random_sampling_ = true;
  bool perform_top_tree_sampling = false;
  bool disable_samples_write_ = false;
  bool store_sampled_models() {
    return perform_random_sampling_ && !perform_top_tree_sampling;
  }
  std::string samples_output_file = "";
  bool debug_mode = false;
  uint64_t time_bound_seconds = UINT64_MAX;
  bool verbose = false;
  bool quiet = false;
  bool perform_sample_caching() {
    assert(perform_random_sampling_ || !perform_sample_caching_);
//    return perform_random_sampling_ && perform_sample_caching_;
    return perform_sample_caching_;
  }
  void EnableSampleCaching() {
    assert(perform_random_sampling_);
    perform_sample_caching_ = true;
  }
  bool perform_two_pass_sampling_ = false;
  unsigned num_samples_to_cache_ = 1;
  bool skip_partial_assignment_fill = false;
  SampleSize num_samples_ = 0;
  TreeNodeIndex max_top_tree_depth_ = 25;
  SampleSize max_top_tree_leaf_sample_count = 50;
  std::string top_tree_samples_output_file_ = "." FILE_PATH_SEPARATOR
                                              "__final_top_tree_samples.txt";

 private:
  bool perform_sample_caching_ = false;
};

#endif /* SOLVER_CONFIG_H_ */