


'''simple docstring'''

import math

import qiskit





def __snake_case      (   UpperCAmelCase_		:		int = 1      ,       UpperCAmelCase_		:		int = 1      ,       UpperCAmelCase_		:		int = 1	):
	if (
	    isinstance(UpperCAmelCase_      ,       UpperCAmelCase_	)
	    or isinstance(UpperCAmelCase_      ,       UpperCAmelCase_	)
	    or isinstance(UpperCAmelCase_      ,       UpperCAmelCase_	)
	):
		raise TypeError("inputs must be integers."	)

	if (input_a < 0) or (input_a < 0) or (carry_in < 0):
		raise ValueError("inputs must be positive."	)

	if (
	    (math.floor(UpperCAmelCase_	) != input_a)
	    or (math.floor(UpperCAmelCase_	) != input_a)
	    or (math.floor(UpperCAmelCase_	) != carry_in)
	):
		raise ValueError("inputs must be exact integers."	)

	if (input_a > 2) or (input_a > 2) or (carry_in > 2):
		raise ValueError("inputs must be less or equal to 2."	)

	# build registers
	lowerCamelCase_  				=						qiskit.QuantumRegister(4      ,       "qr"	)
	lowerCamelCase_  				=						qiskit.ClassicalRegister(2      ,       "cr"	)
	# list the entries
	lowerCamelCase_  				=						[input_a, input_a, carry_in]

	lowerCamelCase_  				=						qiskit.QuantumCircuit(UpperCAmelCase_      ,       UpperCAmelCase_	)

	for i in range(0      ,       3	):
		if entry[i] == 2:
			quantum_circuit.h(UpperCAmelCase_	)  # for hadamard entries
		elif entry[i] == 1:
			quantum_circuit.x(UpperCAmelCase_	)  # for 1 entries
		elif entry[i] == 0:
			quantum_circuit.i(UpperCAmelCase_	)  # for 0 entries

			 # build the circuit
	quantum_circuit.ccx(0      ,       1      ,       3	)  # ccx = toffoli gate
	quantum_circuit.cx(0      ,       1	)
	quantum_circuit.ccx(1      ,       2      ,       3	)
	quantum_circuit.cx(1      ,       2	)
	quantum_circuit.cx(0      ,       1	)

	quantum_circuit.measure([2, 3]      ,       UpperCAmelCase_	)  # measure the last two qbits

	lowerCamelCase_  				=						qiskit.Aer.get_backend("aer_simulator"	)
	lowerCamelCase_  				=						qiskit.execute(UpperCAmelCase_      ,       UpperCAmelCase_      ,       shots=1000	)

	return job.result().get_counts(UpperCAmelCase_	)


if __name__ == "__main__":
					print(f'''Total sum count for state is: {quantum_full_adder(1, 1, 1)}''')







'''simple docstring'''

from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
    is_vision_available,
)


a_						:       List[Any]      			=				{
    """configuration_owlvit""": [
        """OWLVIT_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """OwlViTConfig""",
        """OwlViTOnnxConfig""",
        """OwlViTTextConfig""",
        """OwlViTVisionConfig""",
    ],
    """processing_owlvit""": ["""OwlViTProcessor"""],
}


try:
     if not is_vision_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     a_						:       int      			=				["""OwlViTFeatureExtractor"""]
     a_						:       Any      			=				["""OwlViTImageProcessor"""]

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     a_						:       Tuple      			=				[
         """OWLVIT_PRETRAINED_MODEL_ARCHIVE_LIST""",
         """OwlViTModel""",
         """OwlViTPreTrainedModel""",
         """OwlViTTextModel""",
         """OwlViTVisionModel""",
         """OwlViTForObjectDetection""",
     ]

if TYPE_CHECKING:
     from .configuration_owlvit import (
         OWLVIT_PRETRAINED_CONFIG_ARCHIVE_MAP,
         OwlViTConfig,
         OwlViTOnnxConfig,
         OwlViTTextConfig,
         OwlViTVisionConfig,
     )
     from .processing_owlvit import OwlViTProcessor

     try:
          if not is_vision_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .feature_extraction_owlvit import OwlViTFeatureExtractor
          from .image_processing_owlvit import OwlViTImageProcessor

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_owlvit import (
              OWLVIT_PRETRAINED_MODEL_ARCHIVE_LIST,
              OwlViTForObjectDetection,
              OwlViTModel,
              OwlViTPreTrainedModel,
              OwlViTTextModel,
              OwlViTVisionModel,
          )

else:
     import sys

     a_						:       Tuple      			=				_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)



