
'''simple docstring'''



def 				lowerCAmelCase_		(			SCREAMING_SNAKE_CASE_  )       ->       List[str]:




   """simple docstring"""
   _SCREAMING_SNAKE_CASE       	=			1
   _SCREAMING_SNAKE_CASE       	=			0
   _SCREAMING_SNAKE_CASE       	=			1
   _SCREAMING_SNAKE_CASE       	=			1
   _SCREAMING_SNAKE_CASE       	=			3
   _SCREAMING_SNAKE_CASE       	=			3
   _SCREAMING_SNAKE_CASE       	=			limit
   _SCREAMING_SNAKE_CASE       	=			0

   _SCREAMING_SNAKE_CASE       	=			""""""
   while counter != decimal + 1:
      if 4 * q + r - t < n * t:
         result += str(__UpperCamelCase  )
         if counter == 0:
            result += "."

         if decimal == counter:
            break

         counter += 1
         _SCREAMING_SNAKE_CASE       	=			10 * (r - n * t)
         _SCREAMING_SNAKE_CASE       	=			((10 * (3 * q + r)) // t) - 10 * n
         q *= 10
         _SCREAMING_SNAKE_CASE       	=			nr
      else:
         _SCREAMING_SNAKE_CASE       	=			(2 * q + r) * l
         _SCREAMING_SNAKE_CASE       	=			(q * (7 * k) + 2 + (r * l)) // (t * l)
         q *= k
         t *= l
         l += 2
         k += 1
         _SCREAMING_SNAKE_CASE       	=			nn
         _SCREAMING_SNAKE_CASE       	=			nr
   return result
def 				lowerCAmelCase_		(			)       ->       Union[str, Any]:




   """simple docstring"""
   print(F"{calculate_pi(50  ) = }"  )
   import doctest

   doctest.testmod()


if __name__ == "__main__":
     main()








'''simple docstring'''



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


UpperCamelCase__ :						int    							=					logging.get_logger(__name__)

UpperCamelCase__ :						Any    							=					{
    "openbmb/cpm-ant-10b": "https://huggingface.co/openbmb/cpm-ant-10b/blob/main/config.json"
    # See all CPMAnt models at https://huggingface.co/models?filter=cpmant
}

class 				_a			(_lowerCamelCase):





       """simple docstring"""




       SCREAMING_SNAKE_CASE =					'cpmant'






       def __init__(							self    ,							A__ = 3_07_20    ,							A__ = 40_96    ,							A__ = 32    ,							A__ = 1_28    ,							A__ = 1_02_40    ,							A__ = 48    ,							A__ = 0.0    ,							A__ = 5_12    ,							A__ = 20_48    ,							A__ = 1E-6    ,							A__ = 1.0    ,							A__ = 32    ,							A__ = 32    ,							A__ = 32    ,							A__ = True    ,							**A__    ,							)      ->     List[Any]:
          super().__init__(**A__ )
          _SCREAMING_SNAKE_CASE       	=			prompt_types
          _SCREAMING_SNAKE_CASE       	=			prompt_length
          _SCREAMING_SNAKE_CASE       	=			segment_types
          _SCREAMING_SNAKE_CASE       	=			hidden_size
          _SCREAMING_SNAKE_CASE       	=			num_attention_heads
          _SCREAMING_SNAKE_CASE       	=			dim_head
          _SCREAMING_SNAKE_CASE       	=			dim_ff
          _SCREAMING_SNAKE_CASE       	=			num_hidden_layers
          _SCREAMING_SNAKE_CASE       	=			position_bias_num_buckets
          _SCREAMING_SNAKE_CASE       	=			position_bias_max_distance
          _SCREAMING_SNAKE_CASE       	=			dropout_p
          _SCREAMING_SNAKE_CASE       	=			eps
          _SCREAMING_SNAKE_CASE       	=			use_cache
          _SCREAMING_SNAKE_CASE       	=			vocab_size
          _SCREAMING_SNAKE_CASE       	=			init_std






