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


SCREAMING_SNAKE_CASE__		:					Optional[Any]						=					logging.get_logger(__name__)

SCREAMING_SNAKE_CASE__		:					Optional[int]						=					{
    '''bigcode/gpt_bigcode-santacoder''': '''https://huggingface.co/bigcode/gpt_bigcode-santacoder/resolve/main/config.json''',
}

class       snake_case					(      UpperCamelCase_						):
  lowercase_			=     'gpt_bigcode'
  lowercase_			=     ['past_key_values']
  lowercase_			=     {
      'hidden_size': 'n_embd',
      'max_position_embeddings': 'n_positions',
      'num_attention_heads': 'n_head',
      'num_hidden_layers': 'n_layer',
  }




  def __init__(      self     :	int     , a_     :	List[str]=5_0257     , a_     :	Optional[int]=1024     , a_     :	Union[str, Any]=768     , a_     :	Optional[int]=12     , a_     :	Tuple=12     , a_     :	str=None     , a_     :	int="gelu_pytorch_tanh"     , a_     :	List[str]=0.1     , a_     :	Union[str, Any]=0.1     , a_     :	Tuple=0.1     , a_     :	List[Any]=1e-5     , a_     :	Dict=0.02     , a_     :	int=True     , a_     :	Optional[int]=True     , a_     :	str=5_0256     , a_     :	Tuple=5_0256     , a_     :	Dict=True     , a_     :	Optional[int]=True     , a_     :	int=True     , **a_     :	str     , )->       str:




       """simple docstring"""
       SCREAMING_SNAKE_CASE__				:				List[str]			=		vocab_size
       SCREAMING_SNAKE_CASE__				:				Optional[int]			=		n_positions
       SCREAMING_SNAKE_CASE__				:				Any			=		n_embd
       SCREAMING_SNAKE_CASE__				:				Union[str, Any]			=		n_layer
       SCREAMING_SNAKE_CASE__				:				Optional[Any]			=		n_head
       SCREAMING_SNAKE_CASE__				:				Dict			=		n_inner
       SCREAMING_SNAKE_CASE__				:				Dict			=		activation_function
       SCREAMING_SNAKE_CASE__				:				Union[str, Any]			=		resid_pdrop
       SCREAMING_SNAKE_CASE__				:				Union[str, Any]			=		embd_pdrop
       SCREAMING_SNAKE_CASE__				:				str			=		attn_pdrop
       SCREAMING_SNAKE_CASE__				:				Optional[int]			=		layer_norm_epsilon
       SCREAMING_SNAKE_CASE__				:				List[Any]			=		initializer_range
       SCREAMING_SNAKE_CASE__				:				Any			=		scale_attn_weights
       SCREAMING_SNAKE_CASE__				:				Any			=		use_cache
       SCREAMING_SNAKE_CASE__				:				int			=		attention_softmax_in_fpaa
       SCREAMING_SNAKE_CASE__				:				Optional[Any]			=		scale_attention_softmax_in_fpaa
       SCREAMING_SNAKE_CASE__				:				str			=		multi_query

       SCREAMING_SNAKE_CASE__				:				List[Any]			=		bos_token_id
       SCREAMING_SNAKE_CASE__				:				Optional[int]			=		eos_token_id

       super().__init__(bos_token_id=UpperCamelCase_     , eos_token_id=UpperCamelCase_     , **UpperCamelCase_				)




from math import factorial, radians







def     _a				(      lowercase__  :			float     ,  lowercase__  :			int = 18     ,  lowercase__  :			int = 10 ):







     '''simple docstring'''


     SCREAMING_SNAKE_CASE__				:				Optional[Any]			=		angle_in_degrees - ((angle_in_degrees // 360.0) * 360.0)

     # Converting from degrees to radians
     SCREAMING_SNAKE_CASE__				:				int			=		radians(lowercase__ )

     SCREAMING_SNAKE_CASE__				:				List[Any]			=		angle_in_radians
     SCREAMING_SNAKE_CASE__				:				Optional[int]			=		3
     SCREAMING_SNAKE_CASE__				:				Optional[int]			=		-1

     for _ in range(lowercase__ ):
          result += (b * (angle_in_radians**a)) / factorial(lowercase__ )

          SCREAMING_SNAKE_CASE__				:				Any			=		-b  # One positive term and the next will be negative and so on...
          a += 2  # Increased by 2 for every term.

     return round(lowercase__     ,  lowercase__ )


if __name__ == "__main__":
      __import__("doctest").testmod()



