pub unsafe extern "C" fn initPauliHamil(
hamil: PauliHamil,
coeffs: *mut f64,
codes: *mut pauliOpType,
)Expand description
Initialise ::PauliHamil instance \p hamil with the given term coefficients and Pauli codes (one for every qubit in every term).
Arguments \p coeffs and \p codes encode a weighted sum of Pauli operators, with the same format as other QuEST functions (like calcExpecPauliSum()).
This is useful to set the elements of the ::PauliHamil in batch. \n For example
int numQubits = 3;
int numTerms = 2;
PauliHamil hamil = createPauliHamil(numQubits, numTerms);
// hamil = 0.5 X0 Y1 - 0.5 Z1 X3
initPauliHamil(hamil,
(qreal[]) {0.5, -0.5},
(enum pauliOpType[]) {PAULI_X,PAULI_Y,PAULI_I, PAULI_I, PAULI_Z, PAULI_X});The initialised ::PauliHamil can be previewed with reportPauliHamil().
\p hamil must be already created with createPauliHamil(), or createPauliHamilFromFile().
@see
- reportPauliHamil()
- createPauliHamil()
- createPauliHamilFromFile()
@ingroup type
@param[in, out] hamil an existing ::PauliHamil instance to be modified
@param[in] coeffs an array of sum term coefficients, which must have length hamil.numSumTerms
@param[in] codes a flat array of Pauli codes, of length hamil.numSumTerms*hamil.numQubits
@throws invalidQuESTInputError()
- if \p hamil has invalid parameters (\p numQubits <= 0, \p numSumTerms <= 0)
- if any code in \p codes is not a valid Pauli code (::pauliOpType) @author Tyson Jones