Example #1
0
bool embed_command::execute()
{
  const auto settings = make_settings();
  const auto statistics = std::make_shared<properties>();

  if ( opts.is_set( "only_lines" ) )
  {
    auto lines = calculate_additional_lines( bdds.current(), settings, statistics );

    std::cout << boost::format( "[i] required lines: %d" ) % lines << std::endl;
  }
  else
  {
    if ( rcbdds.empty() || opts.is_set( "new" ) )
    {
      rcbdds.extend();
    }

    embed_bdd( rcbdds.current(), bdds.current(), settings, statistics );
  }

  std::cout << boost::format( "[i] run-time: %.2f secs" ) % statistics->get<double>( "runtime" ) << std::endl;

  return true;
}
Example #2
0
bool required_lines_command::execute()
{
  const auto& bdds = env->store<bdd_function_t>();

  const auto settings = make_settings();

  additional = calculate_additional_lines( bdds.current(), settings, statistics );

  std::cout << "[i] inputs:     " << statistics->get<unsigned>( "num_inputs" ) << std::endl
            << "[i] outputs:    " << statistics->get<unsigned>( "num_outputs" ) << std::endl
            << "[i] additional: " << additional << std::endl
            << boost::format( "[i] run-time:   %.2f secs" ) % statistics->get<double>( "runtime" ) << std::endl;

  return true;
}