Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
List of all members | Public Member Functions | Private Member Functions | Private Attributes
MinCnotBoundSolver Class Reference

#include <N_Qubit_Decomposition_Tree_Search.h>

Public Member Functions

 MinCnotBoundSolver (int num_qubits, const std::vector< std::vector< int >> &cuts, const std::vector< matrix_base< int >> &topology)
 
int solve_min_cnots (const std::vector< std::pair< int, double > > &cut_bounds, int max_total=-1) const
 
int solve_min_cnots (const std::vector< std::pair< int, double > > &cut_bounds, double &best_kappa, std::vector< int > &best_edge_counts, int max_total=-1) const
 

Private Member Functions

bool best_feasible_for_some_composition (int total, std::vector< int > &edge_counts, const std::vector< std::pair< int, double >> &cut_bounds, int pos, int used_sum, double &best_kappa, std::vector< int > &best_edge_counts) const
 
void build_cut_to_edges (const std::vector< matrix_base< int >> &topology)
 
bool composition_satisfies (const std::vector< int > &edge_counts, const std::vector< std::pair< int, double > > &cut_bounds) const
 
bool feasible_for_some_composition (int total, std::vector< int > &edge_counts, const std::vector< std::pair< int, double > > &cut_bounds, int pos, int used_sum) const
 

Private Attributes

std::vector< std::vector< int > > cut_to_edges_
 
std::vector< std::vector< int > > cuts_
 
int num_edges_
 
int num_qubits_
 

Detailed Description

Definition at line 57 of file N_Qubit_Decomposition_Tree_Search.h.

Constructor & Destructor Documentation

◆ MinCnotBoundSolver()

MinCnotBoundSolver::MinCnotBoundSolver ( int  num_qubits,
const std::vector< std::vector< int >> &  cuts,
const std::vector< matrix_base< int >> &  topology 
)
inline

Definition at line 59 of file N_Qubit_Decomposition_Tree_Search.h.

Member Function Documentation

◆ best_feasible_for_some_composition()

bool MinCnotBoundSolver::best_feasible_for_some_composition ( int  total,
std::vector< int > &  edge_counts,
const std::vector< std::pair< int, double >> &  cut_bounds,
int  pos,
int  used_sum,
double &  best_kappa,
std::vector< int > &  best_edge_counts 
) const
inlineprivate

Definition at line 171 of file N_Qubit_Decomposition_Tree_Search.h.

◆ build_cut_to_edges()

void MinCnotBoundSolver::build_cut_to_edges ( const std::vector< matrix_base< int >> &  topology)
inlineprivate

Definition at line 110 of file N_Qubit_Decomposition_Tree_Search.h.

◆ composition_satisfies()

bool MinCnotBoundSolver::composition_satisfies ( const std::vector< int > &  edge_counts,
const std::vector< std::pair< int, double > > &  cut_bounds 
) const
inlineprivate

Definition at line 132 of file N_Qubit_Decomposition_Tree_Search.h.

◆ feasible_for_some_composition()

bool MinCnotBoundSolver::feasible_for_some_composition ( int  total,
std::vector< int > &  edge_counts,
const std::vector< std::pair< int, double > > &  cut_bounds,
int  pos,
int  used_sum 
) const
inlineprivate

Definition at line 150 of file N_Qubit_Decomposition_Tree_Search.h.

◆ solve_min_cnots() [1/2]

int MinCnotBoundSolver::solve_min_cnots ( const std::vector< std::pair< int, double > > &  cut_bounds,
int  max_total = -1 
) const
inline

Definition at line 66 of file N_Qubit_Decomposition_Tree_Search.h.

Here is the caller graph for this function:

◆ solve_min_cnots() [2/2]

int MinCnotBoundSolver::solve_min_cnots ( const std::vector< std::pair< int, double > > &  cut_bounds,
double &  best_kappa,
std::vector< int > &  best_edge_counts,
int  max_total = -1 
) const
inline

Definition at line 86 of file N_Qubit_Decomposition_Tree_Search.h.

Member Data Documentation

◆ cut_to_edges_

std::vector<std::vector<int> > MinCnotBoundSolver::cut_to_edges_
private

Definition at line 108 of file N_Qubit_Decomposition_Tree_Search.h.

◆ cuts_

std::vector<std::vector<int> > MinCnotBoundSolver::cuts_
private

Definition at line 107 of file N_Qubit_Decomposition_Tree_Search.h.

◆ num_edges_

int MinCnotBoundSolver::num_edges_
private

Definition at line 106 of file N_Qubit_Decomposition_Tree_Search.h.

◆ num_qubits_

int MinCnotBoundSolver::num_qubits_
private

Definition at line 105 of file N_Qubit_Decomposition_Tree_Search.h.


The documentation for this class was generated from the following file: