MCPcopy Create free account
hub / github.com/OriginQ/QPanda-2 / execute

Method execute

Core/Utilities/Tools/MultiControlGateDecomposition.cpp:110–145  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

108}
109
110void LinearDepthDecomposition::execute(std::shared_ptr<QNode> node, std::shared_ptr<QNode> parent_node)
111{
112 switch (node->getNodeType())
113 {
114 case GATE_NODE:
115 return execute(std::dynamic_pointer_cast<AbstractQGateNode>(node), parent_node);
116 break;
117
118 case CIRCUIT_NODE:
119 return QNodeDeepCopy::execute(std::dynamic_pointer_cast<AbstractQuantumCircuit>(node), parent_node);
120 break;
121
122 case PROG_NODE:
123 return QNodeDeepCopy::execute(std::dynamic_pointer_cast<AbstractQuantumProgram>(node), parent_node);
124 break;
125
126 case MEASURE_GATE:
127 return QNodeDeepCopy::execute(std::dynamic_pointer_cast<AbstractQuantumMeasure>(node), parent_node);
128 break;
129
130 case CLASS_COND_NODE:
131 return QNodeDeepCopy::execute(std::dynamic_pointer_cast<AbstractClassicalProg>(node), parent_node);
132 break;
133
134 case QIF_START_NODE:
135 case WHILE_START_NODE:
136 return QNodeDeepCopy::execute(std::dynamic_pointer_cast<AbstractControlFlowNode>(node), parent_node);
137 break;
138
139 case RESET_NODE:
140 return QNodeDeepCopy::execute(std::dynamic_pointer_cast<AbstractQuantumReset>(node), parent_node);
141 break;
142 }
143
144 QCERR_AND_THROW(run_fail, "error: unsupport copy-node type.");
145}
146
147static QStat get_U4_matrix(prob_vec params, bool is_dagger)
148{

Callers

nothing calls this directly

Calls 15

daggerFunction · 0.85
insertFunction · 0.85
QVecFunction · 0.85
get_U4_matrixFunction · 0.85
flattenFunction · 0.85
getQuBitVectorMethod · 0.80
executeFunction · 0.50
expFunction · 0.50
getNodeTypeMethod · 0.45
getControlVectorMethod · 0.45
emplace_backMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected