| 1608 | } |
| 1609 | |
| 1610 | void QPilotOSMachine::real_chip_task_validation(int shots, QProg& prog) |
| 1611 | { |
| 1612 | QVec qubits; |
| 1613 | std::vector<int> cbits; |
| 1614 | |
| 1615 | auto qbit_num = get_all_used_qubits(prog, cbits); |
| 1616 | auto cbit_num = get_all_used_class_bits(prog, cbits); |
| 1617 | |
| 1618 | QPANDA_ASSERT(qbit_num > 6 || cbit_num > 6, "real chip qubit num or cbit num are not less or equal to 6"); |
| 1619 | QPANDA_ASSERT(shots > 10000 || shots < 1000, "real chip shots must be in range [1000,10000]"); |
| 1620 | |
| 1621 | TraversalConfig traver_param; |
| 1622 | QProgCheck prog_check; |
| 1623 | prog_check.execute(prog.getImplementationPtr(), nullptr, traver_param); |
| 1624 | |
| 1625 | if (!traver_param.m_can_optimize_measure) |
| 1626 | { |
| 1627 | QCERR("measure must be last"); |
| 1628 | throw run_fail("measure must be last"); |
| 1629 | } |
| 1630 | } |
| 1631 | |
| 1632 | void QPilotOSMachine::construct_real_chip_task_json( |
| 1633 | rabbit::document& doc, |
nothing calls this directly
no test coverage detected