





'''simple docstring'''






import math

import qiskit
def   UpperCamelCase__ (						lowerCAmelCase = 1				,      lowerCAmelCase = 1				,      lowerCAmelCase = 1    ):





      """simple docstring"""


      if (
          isinstance(__a				,      __a    )
          or isinstance(__a				,      __a    )
          or isinstance(__a				,      __a    )
      ):
            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(__a    ) != input_a)
          or (math.floor(__a    ) != input_a)
          or (math.floor(__a    ) != 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(__a				,      __a    )

      for i in range(0				,      3    ):
            if entry[i] == 2:
                  quantum_circuit.h(__a    )  # for hadamard entries
            elif entry[i] == 1:
                  quantum_circuit.x(__a    )  # for 1 entries
            elif entry[i] == 0:
                  quantum_circuit.i(__a    )  # 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]				,      __a    )  # measure the last two qbits

      _lowerCAmelCase					=				qiskit.Aer.get_backend("""aer_simulator"""    )
      _lowerCAmelCase					=				qiskit.execute(__a				,      __a				,      shots=10_00    )

      return job.result().get_counts(__a    )


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 _LazyModule


UpperCamelCase_       :    Dict						      =			{
    '''config''': [
        '''EXTERNAL_DATA_FORMAT_SIZE_LIMIT''',
        '''OnnxConfig''',
        '''OnnxConfigWithPast''',
        '''OnnxSeq2SeqConfigWithPast''',
        '''PatchingSpec''',
    ],
    '''convert''': ['''export''', '''validate_model_outputs'''],
    '''features''': ['''FeaturesManager'''],
    '''utils''': ['''ParameterFormat''', '''compute_serialized_parameters_size'''],
}


if TYPE_CHECKING:
		from .config import (
		    EXTERNAL_DATA_FORMAT_SIZE_LIMIT,
		    OnnxConfig,
		    OnnxConfigWithPast,
		    OnnxSeqaSeqConfigWithPast,
		    PatchingSpec,
		)
		from .convert import export, validate_model_outputs
		from .features import FeaturesManager
		from .utils import ParameterFormat, compute_serialized_parameters_size

else:
		import sys

		UpperCamelCase_       :    List[Any]						      =			_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)




