Skip to content

scram::core::Preprocessor::MergeTable

Helper struct for algorithms that must make an optimal decision how to merge or factor out common arguments of gates into new gates.

#include <preprocessor.h>

Public Types

Name
using std::vector< int >CommonArgs <br>Unique, sorted common arguments.
using std::set< GatePtr >CommonParents <br>Unique common parent gates.
using std::pair< CommonArgs, CommonParents >Option <br>One possibility.
using std::vector< Option * >OptionGroup <br>A set of best options.
using std::vector< Option >MergeGroup <br>Isolated group for processing.
using std::pair< GatePtr, CommonArgs >Candidate <br>Candidate gates with their shared arguments.
using std::vector< Candidate >Candidates <br>Collection of merge-candidate gates with their common arguments.
using boost::unordered_map< CommonArgs, CommonParents >Collection <br>Mapping for collection of common args and common parents as options.

Public Attributes

Name
std::vector< MergeGroup >groups <br>Container of isolated groups.

Public Types Documentation

using CommonArgs

cpp
using scram::core::Preprocessor::MergeTable::CommonArgs =  std::vector<int>;

Unique, sorted common arguments.

using CommonParents

cpp
using scram::core::Preprocessor::MergeTable::CommonParents =  std::set<GatePtr>;

Unique common parent gates.

using Option

cpp
using scram::core::Preprocessor::MergeTable::Option =  std::pair<CommonArgs, CommonParents>;

One possibility.

using OptionGroup

cpp
using scram::core::Preprocessor::MergeTable::OptionGroup =  std::vector<Option*>;

A set of best options.

using MergeGroup

cpp
using scram::core::Preprocessor::MergeTable::MergeGroup =  std::vector<Option>;

Isolated group for processing.

using Candidate

cpp
using scram::core::Preprocessor::MergeTable::Candidate =  std::pair<GatePtr, CommonArgs>;

Candidate gates with their shared arguments.

using Candidates

cpp
using scram::core::Preprocessor::MergeTable::Candidates =  std::vector<Candidate>;

Collection of merge-candidate gates with their common arguments.

using Collection

cpp
using scram::core::Preprocessor::MergeTable::Collection =  boost::unordered_map<CommonArgs, CommonParents>;

Mapping for collection of common args and common parents as options.

Public Attributes Documentation

variable groups

cpp
std::vector< MergeGroup > groups;

Container of isolated groups.


Updated on 2026-01-09 at 21:59:11 +0000