


import math

import qiskit





def 	_lowerCAmelCase					( UpperCamelCase__:  int = 1				,       UpperCamelCase__:  int = 1				,       UpperCamelCase__:  int = 1    )			-> qiskit.result.counts.Counts:





	"""simple docstring"""







	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
	A             =					qiskit.QuantumRegister(4				,       """qr"""    )
	A             =					qiskit.ClassicalRegister(2				,       """cr"""    )
	# list the entries
	A             =					[input_a, input_a, carry_in]

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

	A             =					qiskit.Aer.get_backend("""aer_simulator"""    )
	A             =					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)}''')







from ....configuration_utils import PretrainedConfig
from ....utils import logging


_lowercase							:   List[Any]						=						logging.get_logger(__name__)

_lowercase							:   List[str]						=						{
    "speechbrain/m-ctc-t-large": "https://huggingface.co/speechbrain/m-ctc-t-large/resolve/main/config.json",
    # See all M-CTC-T models at https://huggingface.co/models?filter=mctct
}






class    _UpperCamelCase     (       __snake_case					):

				"""simple docstring"""







				lowerCAmelCase					=			'mctct'

				def __init__(    self					, a__=8065					, a__=1536					, a__=36					, a__=6144					, a__=4					, a__=384					, a__=920					, a__=1e-5					, a__=0.3					, a__="relu"					, a__=0.02					, a__=0.3					, a__=0.3					, a__=1					, a__=0					, a__=2					, a__=1					, a__=0.3					, a__=1					, a__=(7,)					, a__=(3,)					, a__=80					, a__=1					, a__=None					, a__="sum"					, a__=False					, **a__					, )						->					Optional[Any]:
					super().__init__(**a__					, pad_token_id=a__					, bos_token_id=a__					, eos_token_id=a__ )
					A             =					vocab_size
					A             =					hidden_size
					A             =					num_hidden_layers
					A             =					intermediate_size
					A             =					num_attention_heads
					A             =					attention_head_dim
					A             =					max_position_embeddings
					A             =					layer_norm_eps
					A             =					layerdrop
					A             =					hidden_act
					A             =					initializer_range
					A             =					hidden_dropout_prob
					A             =					attention_probs_dropout_prob
					A             =					pad_token_id
					A             =					bos_token_id
					A             =					eos_token_id
					A             =					conv_glu_dim
					A             =					conv_dropout
					A             =					num_conv_layers
					A             =					input_feat_per_channel
					A             =					input_channels
					A             =					conv_channels
					A             =					ctc_loss_reduction
					A             =					ctc_zero_infinity

					# prevents config testing fail with exporting to json
					A             =					list(a__ )
					A             =					list(a__ )

					if len(self.conv_kernel ) != self.num_conv_layers:
						raise ValueError(
						    """Configuration for convolutional module is incorrect. """
						    """It is required that `len(config.conv_kernel)` == `config.num_conv_layers` """
						    f'but is `len(config.conv_kernel) = {len(self.conv_kernel )}`, '
						    f'`config.num_conv_layers = {self.num_conv_layers}`.' )



