




import math

import qiskit

def 					UpperCAmelCase_							(      __UpperCAmelCase						:	int = 1			,			__UpperCAmelCase						:	int = 1			,			__UpperCAmelCase						:	int = 1							)					-> qiskit.result.counts.Counts:
      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
      SCREAMING_SNAKE_CASE_							=			qiskit.QuantumRegister(4			,			'qr'							)
      SCREAMING_SNAKE_CASE_							=			qiskit.ClassicalRegister(2			,			'cr'							)
      # list the entries
      SCREAMING_SNAKE_CASE_							=			[input_a, input_a, carry_in]

      SCREAMING_SNAKE_CASE_							=			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

      SCREAMING_SNAKE_CASE_							=			qiskit.Aer.get_backend('aer_simulator'							)
      SCREAMING_SNAKE_CASE_							=			qiskit.execute(__UpperCAmelCase			,			__UpperCAmelCase			,			shots=10_00							)

      return job.result().get_counts(__UpperCAmelCase							)


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





import warnings

from ...utils import logging
from .image_processing_imagegpt import ImageGPTImageProcessor


lowerCamelCase__ :   List[str]					=							logging.get_logger(__name__)





class        lowerCamelCase_							(      _SCREAMING_SNAKE_CASE					):


 '''simple docstring'''







 def __init__(							self  :		str				,				*_lowerCAmelCase  :		Optional[Any]				,				**_lowerCAmelCase  :		Optional[Any]						):
       warnings.warn(
           'The class ImageGPTFeatureExtractor is deprecated and will be removed in version 5 of Transformers.'
           ' Please use ImageGPTImageProcessor instead.'				,				_lowerCAmelCase				,				)
       super().__init__(*_lowerCAmelCase				,				**_lowerCAmelCase						)