
    z	i	                    X    S r SSKJr  SSKrSSKJrJr  SSKJ	r	        SS jr
S	S jrg)
z"
Utility functions for primitives
    )annotationsN)InstructionQuantumCircuit)Statevectorc                    [         R                  " SSU R                  -  5      nUR                  U5        UR	                  [        U 5      5      $ )a  Generate a statevector from a circuit. Used in StatevectorEstimator class.

If the input circuit includes any resets for a some subsystem,
:meth:`.Statevector.reset` behaves in a stochastic way in :meth:`.Statevector.evolve`.
This function sets a random number generator to be reproducible.

See :meth:`.Statevector.reset` for details.

Args:
    circuit: The quantum circuit.
    seed: The random number generator or None.
r      )r   from_int
num_qubitsseedevolvebound_circuit_to_instruction)circuitrngsvs      Q/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/primitives/utils.py_statevector_from_circuitr      sA     
		aG$6$6!6	7BGGCL991':;;    c                    [        U R                  5      S:  a  U R                  5       $ [        U R                  U R
                  U R                  / S9nXl        U$ )aS  Build an :class:`~qiskit.circuit.Instruction` object from
a :class:`~qiskit.circuit.QuantumCircuit`

This is a specialized version of :func:`~qiskit.converters.circuit_to_instruction`
to avoid deep copy. This requires a quantum circuit whose parameters are all bound.
Because this does not take a copy of the input circuit, this assumes that the input
circuit won't be modified.

If https://github.com/Qiskit/qiskit-terra/issues/7983 is resolved,
we can remove this function.

Args:
    circuit(QuantumCircuit): Input quantum circuit

Returns:
    An :class:`~qiskit.circuit.Instruction` object
   )namer
   
num_clbitsparams)lenqregsto_instructionr   r   r
   r   
definition)r   insts     r   r   r   +   sX    $ 7==A%%'' \\%%%%	D OKr   )r   r   r   znp.random.Generator | Nonereturnr   )r   r   r   r   )__doc__
__future__r   numpynpqiskit.circuitr   r   qiskit.quantum_infor   r   r    r   r   <module>r&      s:    #  6 +<<"<<<(r   