


import numpy as np
import qiskit
from qiskit import Aer, ClassicalRegister, QuantumCircuit, QuantumRegister, execute






def 		lowercase_(  SCREAMING_SNAKE_CASE_ = np.pi / 2				,						SCREAMING_SNAKE_CASE_ = np.pi / 2				,						SCREAMING_SNAKE_CASE_ = np.pi / 2     ):


  '''simple docstring'''

  lowerCamelCase			: str   =    QuantumRegister(3				,						"qr"     )  # Define the number of quantum bits
  lowerCamelCase			: str   =    ClassicalRegister(1				,						"cr"     )  # Define the number of classical bits

  lowerCamelCase			: int   =    QuantumCircuit(SCREAMING_SNAKE_CASE_				,						SCREAMING_SNAKE_CASE_     )  # Define the quantum circuit.

  # Build the circuit
  quantum_circuit.u(SCREAMING_SNAKE_CASE_				,						SCREAMING_SNAKE_CASE_				,						SCREAMING_SNAKE_CASE_				,						0     )  # Quantum State to teleport
  quantum_circuit.h(1     )  # add hadamard gate
  quantum_circuit.cx(
      1				,						2     )  # add control gate with qubit 1 as control and 2 as target.
  quantum_circuit.cx(0				,						1     )
  quantum_circuit.h(0     )
  quantum_circuit.cz(0				,						2     )  # add control z gate.
  quantum_circuit.cx(1				,						2     )

  quantum_circuit.measure([2]				,						[0]     )  # measure the qubit.

  # Simulate the circuit using qasm simulator
  lowerCamelCase			: int   =    Aer.get_backend("aer_simulator"     )
  lowerCamelCase			: str   =    execute(SCREAMING_SNAKE_CASE_				,						SCREAMING_SNAKE_CASE_				,						shots=1000     )

  return job.result().get_counts(SCREAMING_SNAKE_CASE_     )


if __name__ == "__main__":
   print(
       '''Total count for teleported state is: '''
       f'''{quantum_teleportation(np.pi/2, np.pi/2, np.pi/2)}'''
   )







from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


_snake_case					=					{'''configuration_hubert''': ['''HUBERT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''HubertConfig''']}

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   _snake_case					=					[
       '''HUBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''HubertForCTC''',
       '''HubertForSequenceClassification''',
       '''HubertModel''',
       '''HubertPreTrainedModel''',
   ]


try:
   if not is_tf_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   _snake_case					=					[
       '''TF_HUBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''TFHubertForCTC''',
       '''TFHubertModel''',
       '''TFHubertPreTrainedModel''',
   ]

if TYPE_CHECKING:
   from .configuration_hubert import HUBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, HubertConfig

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_hubert import (
          HUBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
          HubertForCTC,
          HubertForSequenceClassification,
          HubertModel,
          HubertPreTrainedModel,
      )

   try:
      if not is_tf_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_tf_hubert import (
          TF_HUBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
          TFHubertForCTC,
          TFHubertModel,
          TFHubertPreTrainedModel,
      )


else:
   import sys

   _snake_case					=					_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)



