bool show_store_entry<rcbdd>::operator()( rcbdd& bdd, const std::string& dotname, const command& cmd ) { using namespace std::placeholders; auto * fd = fopen( dotname.c_str(), "w" ); if ( cmd.is_set( "add" ) ) { bdd.manager().DumpDot( std::vector<ADD>{bdd.chi().Add()}, 0, 0, fd ); } else { bdd.manager().DumpDot( std::vector<BDD>{bdd.chi()}, 0, 0, fd ); } fclose( fd ); return true; }
bool symbolic_transformation_based_synthesis( circuit& circ, const rcbdd& cf, const properties::ptr& settings, const properties::ptr& statistics ) { /* settings */ const auto verbose = get( settings, "verbose", false ); /* timer */ properties_timer t( statistics ); /* number of lines */ const auto n = cf.num_vars(); /* copy meta data */ copy_meta_data( circ, cf ); auto f = cf.chi(); auto assignment_count = 0u; const auto diff = at_least_one_different( cf ); char *cube = new char[3u * cf.num_vars()]; SL( const double sec = 1000000000.0L; )
void print_store_entry<rcbdd>( std::ostream& os, const rcbdd& bdd ) { bdd.print_truth_table(); }
std::string store_entry_to_string<rcbdd>( const rcbdd& bdd ) { return ( boost::format( "%d variables, %d nodes" ) % bdd.num_vars() % bdd.chi().nodeCount() ).str(); }