SaveExpectationValue

class SaveExpectationValue(operator, label='expectation_value', unnormalized=False, pershot=False, conditional=False)[source]

Save expectation value of an operator.

Instruction to save the expectation value of a Hermitian operator.

The expectation value of a Hermitian operator \(H\) for a simulator in quantum state :math`rho`is given by \(\langle H\rangle = \mbox{Tr}[H.\rho]\).

Parameters:
  • operator (Pauli or SparsePauliOp or Operator) – a Hermitian operator.

  • label (str) – the key for retrieving saved data from results.

  • unnormalized (bool) – If True return save the unnormalized accumulated or conditional accumulated expectation value over all shot [Default: False].

  • pershot (bool) – if True save a list of expectation values for each shot of the simulation rather than the average over all shots [Default: False].

  • conditional (bool) – if True save the average or pershot data conditional on the current classical register values [Default: False].

Raises:

ExtensionError – if the input operator is invalid or not Hermitian.

Note

This instruction can be directly appended to a circuit using the save_expectation_value() circuit method.

Attributes

SaveExpectationValue.condition_bits

Get Clbits in condition.

SaveExpectationValue.decompositions

Get the decompositions of the instruction from the SessionEquivalenceLibrary.

SaveExpectationValue.definition

Return definition in terms of other basic gates.

SaveExpectationValue.duration

Get the duration.

SaveExpectationValue.label

Return instruction label

SaveExpectationValue.name

Return the name.

SaveExpectationValue.num_clbits

Return the number of clbits.

SaveExpectationValue.num_qubits

Return the number of qubits.

SaveExpectationValue.params

return instruction params.

SaveExpectationValue.unit

Get the time unit of duration.

Methods

SaveExpectationValue.add_decomposition(...)

Add a decomposition of the instruction to the SessionEquivalenceLibrary.

SaveExpectationValue.assemble()

Return the QasmQobjInstruction for the intructions.

SaveExpectationValue.broadcast_arguments(...)

Validation of the arguments.

SaveExpectationValue.c_if(classical, val)

Set a classical equality condition on this instruction between the register or cbit classical and value val.

SaveExpectationValue.copy([name])

Copy of the instruction.

SaveExpectationValue.inverse()

Special case.

SaveExpectationValue.is_parameterized()

Return True .IFF.

SaveExpectationValue.qasm()

Return a default OpenQASM string for the instruction.

SaveExpectationValue.repeat(n)

Creates an instruction with gate repeated n amount of times.

SaveExpectationValue.reverse_ops()

For a composite instruction, reverse the order of sub-instructions.

SaveExpectationValue.soft_compare(other)

Soft comparison between gates.

SaveExpectationValue.validate_parameter(...)

Instruction parameters has no validation or normalization.