gate_merge.cpp File Reference
#include <csim/utility.h>
#include "gate_merge.hpp"
#include "gate_matrix.hpp"
#include "gate_general.hpp"
#include <vector>
#include <algorithm>
#include <numeric>
#include <iterator>

Namespaces

 gate
 

Functions

void get_new_qubit_list (const QuantumGateBase *gate_first, const QuantumGateBase *gate_second, std::vector< TargetQubitInfo > &new_target_list, std::vector< ControlQubitInfo > &new_control_list)
 
void get_extended_matrix (const QuantumGateBase *gate, const std::vector< TargetQubitInfo > &new_target_list, const std::vector< ControlQubitInfo > &new_control_list, ComplexMatrix &matrix)
 
QuantumGateMatrixgate::merge (const QuantumGateBase *gate_first, const QuantumGateBase *gate_second)
 
DllExport QuantumGateMatrixgate::merge (std::vector< const QuantumGateBase *> gate_list)
 
DllExport QuantumGateMatrixgate::add (std::vector< const QuantumGateBase *> gate_list)
 
QuantumGateMatrixgate::add (const QuantumGateBase *gate_first, const QuantumGateBase *gate_second)
 
QuantumGateMatrixgate::to_matrix_gate (const QuantumGateBase *gate)
 
QuantumGateBasegate::Probabilistic (std::vector< double > distribution, std::vector< QuantumGateBase *> gate_list)
 
QuantumGateBasegate::CPTP (std::vector< QuantumGateBase *> gate_list)
 
QuantumGateBasegate::Instrument (std::vector< QuantumGateBase *> gate_list, UINT classical_register_address)
 
QuantumGateBasegate::Adaptive (QuantumGateBase *gate, std::function< bool(const std::vector< UINT > &)> func)
 

Function Documentation

◆ get_extended_matrix()

void get_extended_matrix ( const QuantumGateBase gate,
const std::vector< TargetQubitInfo > &  new_target_list,
const std::vector< ControlQubitInfo > &  new_control_list,
ComplexMatrix matrix 
)

◆ get_new_qubit_list()

void get_new_qubit_list ( const QuantumGateBase gate_first,
const QuantumGateBase gate_second,
std::vector< TargetQubitInfo > &  new_target_list,
std::vector< ControlQubitInfo > &  new_control_list 
)