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

Method schmidt_encode

QAlg/Encode/Encode.cpp:1600–1626  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1598}
1599
1600void Encode::schmidt_encode(const QVec &q, const std::vector<double>& data, const double cutoff)
1601{
1602 vector<double>data_temp(data);
1603
1604 if (!_check_normalized(data_temp)) {
1605 throw run_fail("Data is not normalized");
1606 }
1607
1608 if (data_temp.size() > (1 << q.size()))
1609 {
1610 throw run_fail("Schmidt_encode parameter error.");
1611 }
1612
1613 _schmidt(q, data_temp, cutoff);
1614
1615 int count = log2(data_temp.size());
1616 int cnt = 0;
1617 for (auto i : q)
1618 {
1619 if (cnt < count) {
1620 m_out_qubits.push_back(i);
1621 }
1622 cnt++;
1623 }
1624
1625 return;
1626}
1627void Encode::_schmidt(const QVec &q, const std::vector<double>& data, const double cutoff) {
1628
1629 vector<double>data_temp = data;

Callers 1

test_schmidt_encodingFunction · 0.45

Calls 4

run_failClass · 0.85
log2Function · 0.50
sizeMethod · 0.45
push_backMethod · 0.45

Tested by 1

test_schmidt_encodingFunction · 0.36