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

Method angle_encode

QAlg/Encode/Encode.cpp:404–443  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

402}
403
404void Encode::angle_encode(const QVec &q, const std::vector<double>& data, const GateType& gate_type)
405{
406
407 if (data.size() > q.size())
408 {
409 throw run_fail("Qubit_encode parameter error.");
410 }
411 switch (gate_type)
412 {
413 case RX_GATE:
414 for (auto i = 0; i < data.size(); ++i)
415 {
416 m_qcircuit << RX(q[i], data[i]);
417 }
418 break;
419
420 case RY_GATE:
421 for (auto i = 0; i < data.size(); ++i)
422 {
423 m_qcircuit << RY(q[i], data[i]);
424 }
425 break;
426
427 case RZ_GATE:
428 for (auto i = 0; i < data.size(); ++i)
429 {
430 m_qcircuit << RZ(q[i], data[i]);
431 }
432 break;
433
434 default:
435 QCERR_AND_THROW_ERRSTR(run_fail, "Error: The input gate type error.");
436 break;
437 }
438
439 for (int i = 0; i < data.size(); ++i) {
440 m_out_qubits.push_back(q[i]);
441 }
442 return;
443}
444
445void Encode::_recursive_compute_beta(const std::vector<double>&input_vector, std::vector<std::vector<double>>&betas, int count) {
446 if (input_vector.size() > 1)

Callers 1

test_angle_encodingFunction · 0.45

Calls 6

run_failClass · 0.85
RXClass · 0.85
RYClass · 0.85
RZClass · 0.85
sizeMethod · 0.45
push_backMethod · 0.45

Tested by 1

test_angle_encodingFunction · 0.36