'''simple docstring'''
import math

import qiskit
from qiskit import Aer, ClassicalRegister, QuantumCircuit, QuantumRegister, execute







def 			_UpperCamelCase			(  _a						:						int = 1					,  _a						:						List[Any] = 1      ):




    """simple docstring"""



    if isinstance(UpperCAmelCase__					,  UpperCAmelCase__      ) or isinstance(UpperCAmelCase__					,  UpperCAmelCase__      ):
        raise TypeError('inputs must be integers.'      )
    if (bit_a < 0) or (bit_a < 0):
        raise ValueError('inputs must be positive.'      )
    if (math.floor(UpperCAmelCase__      ) != bit_a) or (math.floor(UpperCAmelCase__      ) != bit_a):
        raise ValueError('inputs must be exact integers.'      )
    if (bit_a > 1) or (bit_a > 1):
        raise ValueError('inputs must be less or equal to 1.'      )

    # build registers
    __UpperCamelCase						:						Union[str, Any]		     =	QuantumRegister(2					,  'qr'      )
    __UpperCamelCase						:						Optional[int]		     =	ClassicalRegister(2					,  'cr'      )

    __UpperCamelCase						:						Optional[int]		     =	QuantumCircuit(UpperCAmelCase__					,  UpperCAmelCase__      )

    # entanglement the qubits
    quantum_circuit.h(1      )
    quantum_circuit.cx(1					,  0      )

    # send the information
    __UpperCamelCase						:						Dict		     =	str(UpperCAmelCase__      ) + str(UpperCAmelCase__      )

    if c_information == "11":
        quantum_circuit.x(1      )
        quantum_circuit.z(1      )
    elif c_information == "10":
        quantum_circuit.z(1      )
    elif c_information == "01":
        quantum_circuit.x(1      )
    else:
        quantum_circuit.i(1      )

    # unentangled the circuit
    quantum_circuit.cx(1					,  0      )
    quantum_circuit.h(1      )

    # measure the circuit
    quantum_circuit.measure(UpperCAmelCase__					,  UpperCAmelCase__      )

    __UpperCamelCase						:						Union[str, Any]		     =	Aer.get_backend('aer_simulator'      )
    __UpperCamelCase						:						Optional[int]		     =	execute(UpperCAmelCase__					,  UpperCAmelCase__					,  shots=1_0_0_0      )

    return job.result().get_counts(UpperCAmelCase__      )


if __name__ == "__main__":
  print(F"""Counts for classical state send: {superdense_coding(1,1)}""")






from typing import Callable, Optional, Union

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


lowerCamelCase   					=  logging.get_logger(__name__)

lowerCamelCase   					=  {
    '''microsoft/prophetnet-large-uncased''': (
        '''https://huggingface.co/microsoft/prophetnet-large-uncased/resolve/main/config.json'''
    ),
}





class      snake_case_      (					_a				):


							"""simple docstring"""





							__UpperCAmelCase      ="""prophetnet"""
							__UpperCAmelCase      =["""past_key_values"""]
							__UpperCAmelCase      ={
							    """num_attention_heads""": """num_encoder_attention_heads""",
							}




							def __init__(			self       ,    _A = 0.1       ,    _A = "gelu"       ,    _A = 3_0_5_2_2       ,    _A = 1_0_2_4       ,    _A = 4_0_9_6       ,    _A = 1_2       ,    _A = 1_6       ,    _A = 4_0_9_6       ,    _A = 1_2       ,    _A = 1_6       ,    _A = 0.1       ,    _A = 0.1       ,    _A = 5_1_2       ,    _A = 0.02       ,    _A = True       ,    _A = True       ,    _A = 0       ,    _A = 2       ,    _A = 3_2       ,    _A = 1_2_8       ,    _A = False       ,    _A = 0.0       ,    _A = True       ,    _A = 0       ,    _A = 1       ,    _A = 2       ,    **_A       ,    ):
												__lowerCAmelCase       =				vocab_size
												__lowerCAmelCase       =				hidden_size
												__lowerCAmelCase       =				encoder_ffn_dim
												__lowerCAmelCase       =				num_encoder_layers
												__lowerCAmelCase       =				num_encoder_attention_heads
												__lowerCAmelCase       =				decoder_ffn_dim
												__lowerCAmelCase       =				num_decoder_layers
												__lowerCAmelCase       =				num_decoder_attention_heads
												__lowerCAmelCase       =				max_position_embeddings
												__lowerCAmelCase       =				init_std  # Normal(0, this parameter)
												__lowerCAmelCase       =				activation_function

												# parameters for prophetnet
												__lowerCAmelCase       =				ngram
												__lowerCAmelCase       =				num_buckets
												__lowerCAmelCase       =				relative_max_distance
												__lowerCAmelCase       =				disable_ngram_loss
												__lowerCAmelCase       =				eps

												# 3 Types of Dropout
												__lowerCAmelCase       =				attention_dropout
												__lowerCAmelCase       =				activation_dropout
												__lowerCAmelCase       =				dropout

												__lowerCAmelCase       =				use_cache

												super().__init__(
												    pad_token_id=_A       ,    bos_token_id=_A       ,    eos_token_id=_A       ,    is_encoder_decoder=_A       ,    add_cross_attention=_A       ,    decoder_start_token_id=_A       ,    **_A       ,    )




							@property
							def 							A__	(			self				):
												return self.num_encoder_layers + self.num_decoder_layers




							@num_hidden_layers.setter
							def 							A__	(			self       ,    _A				):
												raise NotImplementedError(
												    'This model does not support the setting of `num_hidden_layers`. Please set `num_encoder_layers` and'
												    ' `num_decoder_layers`.'				)






