struct QPanda::Variational::impl_vqp

#include <var.h>

struct impl_vqp: public QPanda::Variational::impl
{
    // construction

    impl_vqp(
        VariationalQuantumCircuit,
        PauliOperator,
        QuantumMachine*,
        std::vector<Qubit*>
        );

    impl_vqp(
        VariationalQuantumCircuit,
        PauliOperator,
        QuantumMachine*,
        std::map<size_t, Qubit*>
        );

    // methods

    double _get_gradient(var _var);

    double _get_gradient_one_term(
        var _var,
        QTerm
        );

    double _get_expectation_one_term(
        QCircuit,
        QTerm
        );

    double _get_expectation();
};

Inherited Members

public:
    // fields

    MatrixXd val;
    bool m_is_differentiable;
    op_type op;
    std::vector<var> children;
    std::vector<std::weak_ptr<impl>> parents;
    MatrixXd m_prob;