HamiltonianGate#
- class qiskit.extensions.HamiltonianGate(data, time, label=None)[source]#
Bases:
Gate
Class for representing evolution by a Hamiltonian operator as a gate.
This gate resolves to a
UnitaryGate
as \(U(t) = exp(-i t H)\), which can be decomposed into basis gates if it is 2 qubits or less, or simulated directly in Aer for more qubits. Note that you can also directly useQuantumCircuit.hamiltonian()
.Create a gate from a hamiltonian operator and evolution time parameter t
- প্যারামিটার:
data (matrix or Operator) -- a hermitian operator.
time (float or ParameterExpression) -- time evolution parameter.
label (str) -- unitary name for backend [Default: None].
- রেইজেস:
ExtensionError -- if input data is not an N-qubit unitary operator.
Attributes
- condition_bits#
Get Clbits in condition.
- decompositions#
Get the decompositions of the instruction from the SessionEquivalenceLibrary.
- definition#
Return definition in terms of other basic gates.
- duration#
Get the duration.
- label#
Return instruction label
- name#
Return the name.
- num_clbits#
Return the number of clbits.
- num_qubits#
Return the number of qubits.
- params#
return instruction params.
- unit#
Get the time unit of duration.
Methods
- add_decomposition(decomposition)#
Add a decomposition of the instruction to the SessionEquivalenceLibrary.
- assemble()#
Assemble a QasmQobjInstruction
- broadcast_arguments(qargs, cargs)#
Validation and handling of the arguments and its relationship.
For example,
cx([q[0],q[1]], q[2])
meanscx(q[0], q[2]); cx(q[1], q[2])
. This method yields the arguments in the right grouping. In the given example:in: [[q[0],q[1]], q[2]],[] outs: [q[0], q[2]], [] [q[1], q[2]], []
The general broadcasting rules are:
If len(qargs) == 1:
[q[0], q[1]] -> [q[0]],[q[1]]
If len(qargs) == 2:
[[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]] [[q[0]], [r[0], r[1]]] -> [q[0], r[0]], [q[0], r[1]] [[q[0], q[1]], [r[0]]] -> [q[0], r[0]], [q[1], r[0]]
If len(qargs) >= 3:
[q[0], q[1]], [r[0], r[1]], ...] -> [q[0], r[0], ...], [q[1], r[1], ...]
- প্যারামিটার:
- রিটার্নস:
A tuple with single arguments.
- রেইজেস:
CircuitError -- If the input is not valid. For example, the number of arguments does not match the gate expectation.
- রিটার্ন টাইপ:
- c_if(classical, val)#
Set a classical equality condition on this instruction between the register or cbit
classical
and valueval
.নোট
This is a setter method, not an additive one. Calling this multiple times will silently override any previously set condition; it does not stack.
- control(num_ctrl_qubits=1, label=None, ctrl_state=None)#
Return controlled version of gate. See
ControlledGate
for usage.- প্যারামিটার:
- রিটার্নস:
Controlled version of gate. This default algorithm uses
num_ctrl_qubits-1
ancilla qubits so returns a gate of sizenum_qubits + 2*num_ctrl_qubits - 1
.- রিটার্ন টাইপ:
- রেইজেস:
QiskitError -- unrecognized mode or invalid ctrl_state
- copy(name=None)#
Copy of the instruction.
- প্যারামিটার:
name (str) -- name to be given to the copied circuit, if
None
then the name stays the same.- রিটার্নস:
a copy of the current instruction, with the name updated if it was provided
- রিটার্ন টাইপ:
- is_parameterized()#
Return True .IFF. instruction is parameterized else False
- power(exponent)#
Creates a unitary gate as gate^exponent.
- প্যারামিটার:
exponent (float) -- Gate^exponent
- রিটার্নস:
To which to_matrix is self.to_matrix^exponent.
- রিটার্ন টাইপ:
- রেইজেস:
CircuitError -- If Gate is not unitary
- qasm()[source]#
Raise an error, as QASM is not defined for the HamiltonianGate.
0.25.0 ভার্সন থেকে ডেপ্রিকেটেড: The method
qiskit.extensions.hamiltonian_gate.HamiltonianGate.qasm()
is deprecated as of qiskit-terra 0.25.0. It will be removed no earlier than 3 months after the release date.
- repeat(n)#
Creates an instruction with gate repeated n amount of times.
- প্যারামিটার:
n (int) -- Number of times to repeat the instruction
- রিটার্নস:
Containing the definition.
- রিটার্ন টাইপ:
- রেইজেস:
CircuitError -- If n < 1.
- reverse_ops()#
For a composite instruction, reverse the order of sub-instructions.
This is done by recursively reversing all sub-instructions. It does not invert any gate.
- রিটার্নস:
- a new instruction with
sub-instructions reversed.
- রিটার্ন টাইপ:
- soft_compare(other)#
Soft comparison between gates. Their names, number of qubits, and classical bit numbers must match. The number of parameters must match. Each parameter is compared. If one is a ParameterExpression then it is not taken into account.
- প্যারামিটার:
other (instruction) -- other instruction.
- রিটার্নস:
are self and other equal up to parameter expressions.
- রিটার্ন টাইপ:
- to_matrix()#
Return a Numpy.array for the gate unitary matrix.
- রিটার্নস:
if the Gate subclass has a matrix definition.
- রিটার্ন টাইপ:
np.ndarray
- রেইজেস:
CircuitError -- If a Gate subclass does not implement this method an exception will be raised when this base class method is called.