逻辑门统计

简介

逻辑门的统计是指统计量子程序、量子线路、量子循环控制或量子条件控制中所有的量子逻辑门(这里也会将测量门统计进去)个数方法。

接口介绍

QGateCounter 类是统计一个量子程序(量子线路、量子循环控制、量子条件控制)中量子逻辑门个数的工具类,我们先用QPanda2构建一个量子程序:

auto qubits = qvm.qAllocMany(4);
auto cbits = qvm.cAllocMany(4);

QProg prog;
prog << X(qubits[0])
    << Y(qubits[1])
    << H(qubits[0])
    << RX(qubits[0], 3.14)
    << Measure(qubits[1], cbits[0]);

然后调用 QGateCounter 类统计量子逻辑门的个数,

QGateCounter t;
t.traversal(prog);
size_t num = t.count(prog);;

我们还可以使用QPanda2封装的一个接口:

size_t num = getQGateNum(prog);

注解

统计 QCircuitQWhileProgQIfProg 中量子逻辑门的个数和 QProg 类似。

实例

#include "QPanda.h"
USING_QPANDA

int main(void)
{
    auto qvm = CPUQVM();
    qvm.init();
    auto qubits = qvm.qAllocMany(4);
    auto cbits = qvm.cAllocMany(4);

    QProg prog;

    // 构建量子程序
    prog << X(qubits[0])
        << Y(qubits[1])
        << H(qubits[0])
        << RX(qubits[0], 3.14)
        << Measure(qubits[1], cbits[0]);

    // 统计逻辑门个数
    size_t num = getQGateNum(prog);

    std::cout << "QGate number: " << num << std::endl;
    return 0;
}

运行结果:

QGate number: 4