
'''simple docstring'''
import math

import qiskit







def 		A_(     A						:		int = 1		,     A						:		int = 1		,     A						:		int = 1):
							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
							UpperCamelCase   			=     qiskit.QuantumRegister(4		,     'qr')
							UpperCamelCase   			=     qiskit.ClassicalRegister(2		,     'cr')
							# list the entries
							UpperCamelCase   			=     [input_a, input_a, carry_in]

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

							UpperCamelCase   			=     qiskit.Aer.get_backend('aer_simulator')
							UpperCamelCase   			=     qiskit.execute(A		,     A		,     shots=1000)

							return job.result().get_counts(A)


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








from typing import TYPE_CHECKING

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


__snake_case   							=						{'''configuration_unispeech''': ['''UNISPEECH_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''UniSpeechConfig''']}

try:
    if not is_torch_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    __snake_case   							=						[
        '''UNISPEECH_PRETRAINED_MODEL_ARCHIVE_LIST''',
        '''UniSpeechForCTC''',
        '''UniSpeechForPreTraining''',
        '''UniSpeechForSequenceClassification''',
        '''UniSpeechModel''',
        '''UniSpeechPreTrainedModel''',
    ]

if TYPE_CHECKING:
    from .configuration_unispeech import UNISPEECH_PRETRAINED_CONFIG_ARCHIVE_MAP, UniSpeechConfig

    try:
        if not is_torch_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .modeling_unispeech import (
            UNISPEECH_PRETRAINED_MODEL_ARCHIVE_LIST,
            UniSpeechForCTC,
            UniSpeechForPreTraining,
            UniSpeechForSequenceClassification,
            UniSpeechModel,
            UniSpeechPreTrainedModel,
        )

else:
    import sys

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


