Class find_embedding::embedding_problem_base

class find_embeddingembedding_problem_base

Common form for all embedding problems.

Needs to be extended with a fixed handler and domain handler to be complete.

Subclassed by find_embedding::embedding_problem< fixed_handler, domain_handler >

Public Functions

const vector<int> &find_embedding::embedding_problem_basevar_neighbors(int u) const

a vector of neighbors for the variable u

const vector<int> &find_embedding::embedding_problem_basequbit_neighbors(int q) const

a vector of neighbors for the qubit q

int find_embedding::embedding_problem_basenum_vars() const

number of variables which are not fixed

int find_embedding::embedding_problem_basenum_qubits() const

number of qubits which are not reserved

int find_embedding::embedding_problem_basenum_fixed() const

number of fixed variables

int find_embedding::embedding_problem_basenum_reserved() const

number of reserved qubits

template <typename... Args>
void find_embedding::embedding_problem_baseerror(const char *format, Args... args) const

printf regardless of the verbosity level

template <typename... Args>
void find_embedding::embedding_problem_basemajor_info(const char *format, Args... args) const

printf at the major_info verbosity level

template <typename... Args>
void find_embedding::embedding_problem_baseminor_info(const char *format, Args... args) const

print at the minor_info verbosity level

template <typename... Args>
void find_embedding::embedding_problem_baseextra_info(const char *format, Args... args) const

print at the extra_info verbosity level

template <typename... Args>
void find_embedding::embedding_problem_basedebug(const char *ONDEBUGformat, Args... ONDEBUGargs) const

print at the debug verbosity level (only works when CPPDEBUG is set)

int find_embedding::embedding_problem_baserandint(int m)

make a random integer between 0 and m-1

template <typename A, typename B>
void find_embedding::embedding_problem_baseshuffle(A a, B b)

shuffle the data bracketed by iterators a and b

void find_embedding::embedding_problem_basequbit_component(int q0, vector<int> &component, vector<int> &visited)

compute the connected component of the subset component of qubits, containing q0, and usingvisited as an indicator for which qubits have been explored

const vector<int> &find_embedding::embedding_problem_basevar_order(VARORDER order = VARORDER_SHUFFLE)

compute a variable ordering according to the order strategy

void find_embedding::embedding_problem_basedfs_component(int x, const vector<vector<int>> &neighbors, vector<int> &component, vector<int> &visited)

Perform a depth first search.

Public Members

optional_parameters &find_embedding::embedding_problem_baseparams

A mutable reference to the user specified parameters.