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

Method dense_angle_encode

QAlg/Encode/Encode.cpp:550–578  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

548}
549
550void Encode::dense_angle_encode(const QVec &q, const std::vector<double>& data)
551{
552
553 if (data.size() > q.size() * 2)
554 {
555 throw run_fail("Dense_angle_encode parameter error.");
556 }
557
558 std::vector<double>data_temp(data);
559 if ((int)(data.size()) & 1)
560 {
561 data_temp.push_back(0);
562 }
563
564 int k = (int)(data_temp.size());
565 k /= 2;
566
567 for (auto i = 0; i < data_temp.size() / 2; ++i)
568 {
569 m_qcircuit << U3(q[i], data_temp[i], data_temp[k], 0.0);
570 ++k;
571 }
572
573 for (int i = 0; i < data_temp.size() / 2; ++i) {
574 m_out_qubits.push_back(q[i]);
575 }
576
577 return;
578}
579void Encode::bid_amplitude_encode(const QVec &q, const std::vector<double>& data, const int split) {
580
581 vector<double>data_temp(data);

Callers 1

test_dense_encodingFunction · 0.45

Calls 4

run_failClass · 0.85
U3Class · 0.85
sizeMethod · 0.45
push_backMethod · 0.45

Tested by 1

test_dense_encodingFunction · 0.36