template class QPanda::PauliOp¶
Overview¶
Pauli operator class. More…
#include <PauliOperator.h> template <class T> class PauliOp { public: // typedefs typedef std::pair<QPauliPair, T> PauliItem; typedef std::vector<PauliItem> PauliData; typedef std::map<std::string, T> PauliMap; // construction PauliOp(); PauliOp(const T& value); PauliOp(double value); PauliOp( const std::string& key, const T& value ); PauliOp(const PauliMap& map); PauliOp(PauliOp&& op); PauliOp(const PauliOp& op); PauliOp(PauliData&& pauli); PauliOp(const PauliData& pauli); // methods PauliOp& operator = (const PauliOp& op); PauliOp& operator = (PauliOp&& op); PauliOp dagger() const; PauliOp remapQubitIndex(std::map<size_t, size_t>& index_map); size_t getMaxIndex(); bool isEmpty(); bool isAllPauliZorI(); void setErrorThreshold(double threshold); double error_threshold() const; std::string toString() const; PauliData data() const; QHamiltonian toHamiltonian(bool* ok = nullptr) const; PauliOp operator + (const PauliOp& rhs) const; PauliOp operator - (const PauliOp& rhs) const; PauliOp operator * (const PauliOp& rhs) const; PauliOp& operator += (const PauliOp& rhs); PauliOp& operator -= (const PauliOp& rhs); PauliOp& operator *= (const PauliOp& rhs); };
Detailed Documentation¶
Pauli operator class.
Methods¶
PauliOp dagger() const
get the Transposed conjugate matrix
Returns:
PauliOp return the Transposed conjugate matrix
PauliOp remapQubitIndex(std::map<size_t, size_t>& index_map)
remap qubit index
Parameters:
std::map<size_t |
|
size_t>& |
qubit index map |
Returns:
PauliOp return remapped qubit index map
size_t getMaxIndex()
get the max index
Returns:
size_t the max index
bool isEmpty()
Judge whether it is empty.
Returns:
bool if data is empty, return true, or else return false
bool isAllPauliZorI()
Judge whether all of data is “Z”.
Returns:
bool if all data is “Z”, return true, or else return false
void setErrorThreshold(double threshold)
set error threshold
Parameters:
double |
threshold val |
double error_threshold() const
get error threshold
Returns:
double return the error threshold val
std::string toString() const
data to string
Returns:
std::string convert data val to string
PauliData data() const
get data
Returns:
PauliData return Pauli data
QHamiltonian toHamiltonian(bool* ok = nullptr) const
convert data to Hamiltonian
Parameters:
bool* |
save the convert result, default is nullptr |
Returns:
QHamiltonian the convert result
PauliOp operator + (const PauliOp& rhs) const
overload +
Returns:
PauliOp return (PauliOp_left + PauliOp_right)
PauliOp operator - (const PauliOp& rhs) const
overload -
Returns:
PauliOp return (PauliOp_left - PauliOp_right)
PauliOp operator * (const PauliOp& rhs) const
overload *
Returns:
PauliOp return (PauliOp_left * PauliOp_right)
PauliOp& operator += (const PauliOp& rhs)
overload +=
Returns:
PauliOp return (PauliOp_left += PauliOp_right)
PauliOp& operator -= (const PauliOp& rhs)
overload -=
Returns:
PauliOp return (PauliOp_left -= PauliOp_right)
PauliOp& operator *= (const PauliOp& rhs)
overload *=
Returns:
PauliOp return (PauliOp_left *= PauliOp_right)