class QPanda::QPEAlg

#include <QPE.h>

class QPEAlg
{
public:
    // typedefs

    typedef std::function<QCircuit(QVec)> generate_cir_U;

    // construction

    QPEAlg(
        const QVec& control_qubits,
        const QVec& target_qubits,
        const QStat& matrix
        );

    QPEAlg(
        const QVec& control_qubits,
        const QVec& target_qubits,
        generate_cir_U cir_fun
        );

    // methods

    QCircuit QPE();
    QCircuit quantum_eigenvalue_estimation();
    QCircuit get_qpe_circuit();
};