






from math import asin, atan, cos, radians, sin, sqrt, tan

UpperCAmelCase__				   =		637_8137.0
UpperCAmelCase__				   =		635_6752.31_4245
UpperCAmelCase__				   =		6378137
def 						_a    (      a :float	,							a :float	,							a :float	,							a :float )							->			float:
 a		  =      (AXIS_A - AXIS_B) / AXIS_A
 a		  =      atan((1 - flattening) * tan(radians(a ) ) )
 a		  =      atan((1 - flattening) * tan(radians(a ) ) )
 a		  =      radians(a )
 a		  =      radians(a )
 # Equation
 a		  =      sin((phi_a - phi_a) / 2 )
 a		  =      sin((lambda_a - lambda_a) / 2 )
 # Square both values
 sin_sq_phi *= sin_sq_phi
 sin_sq_lambda *= sin_sq_lambda
 a		  =      sqrt(sin_sq_phi + (cos(a ) * cos(a ) * sin_sq_lambda) )
 return 2 * RADIUS * asin(a )


if __name__ == "__main__":
     import doctest

     doctest.testmod()






'''simple docstring'''



import os
import sys

__lowercase	:						List[Any]       =	os.path.join(os.path.dirname(__file__), 'src')
sys.path.append(SRC_DIR)


from transformers import (
    AutoConfig,
    AutoModel,
    AutoModelForCausalLM,
    AutoModelForMaskedLM,
    AutoModelForQuestionAnswering,
    AutoModelForSequenceClassification,
    AutoTokenizer,
    add_start_docstrings,
)


__lowercase	:						int       =	[
    'torch',
    'numpy',
    'tokenizers',
    'filelock',
    'requests',
    'tqdm',
    'regex',
    'sentencepiece',
    'sacremoses',
    'importlib_metadata',
    'huggingface_hub',
]






@add_start_docstrings(AutoConfig.__doc__   )
def   lowerCamelCase							(*_SCREAMING_SNAKE_CASE      :   List[str]						,      **_SCREAMING_SNAKE_CASE      :   List[Any]   ):
					return AutoConfig.from_pretrained(*_SCREAMING_SNAKE_CASE						,      **_SCREAMING_SNAKE_CASE   )






@add_start_docstrings(AutoTokenizer.__doc__   )
def   lowerCamelCase							(*_SCREAMING_SNAKE_CASE      :   str						,      **_SCREAMING_SNAKE_CASE      :   Any   ):
					return AutoTokenizer.from_pretrained(*_SCREAMING_SNAKE_CASE						,      **_SCREAMING_SNAKE_CASE   )






@add_start_docstrings(AutoModel.__doc__   )
def   lowerCamelCase							(*_SCREAMING_SNAKE_CASE      :   int						,      **_SCREAMING_SNAKE_CASE      :   Union[str, Any]   ):
					return AutoModel.from_pretrained(*_SCREAMING_SNAKE_CASE						,      **_SCREAMING_SNAKE_CASE   )






@add_start_docstrings(AutoModelForCausalLM.__doc__   )
def   lowerCamelCase							(*_SCREAMING_SNAKE_CASE      :   List[Any]						,      **_SCREAMING_SNAKE_CASE      :   Optional[int]   ):
					return AutoModelForCausalLM.from_pretrained(*_SCREAMING_SNAKE_CASE						,      **_SCREAMING_SNAKE_CASE   )






@add_start_docstrings(AutoModelForMaskedLM.__doc__   )
def   lowerCamelCase							(*_SCREAMING_SNAKE_CASE      :   Union[str, Any]						,      **_SCREAMING_SNAKE_CASE      :   List[Any]   ):
					return AutoModelForMaskedLM.from_pretrained(*_SCREAMING_SNAKE_CASE						,      **_SCREAMING_SNAKE_CASE   )






@add_start_docstrings(AutoModelForSequenceClassification.__doc__   )
def   lowerCamelCase							(*_SCREAMING_SNAKE_CASE      :   Optional[Any]						,      **_SCREAMING_SNAKE_CASE      :   Any   ):
					return AutoModelForSequenceClassification.from_pretrained(*_SCREAMING_SNAKE_CASE						,      **_SCREAMING_SNAKE_CASE   )






@add_start_docstrings(AutoModelForQuestionAnswering.__doc__   )
def   lowerCamelCase							(*_SCREAMING_SNAKE_CASE      :   Any						,      **_SCREAMING_SNAKE_CASE      :   List[str]   ):
					return AutoModelForQuestionAnswering.from_pretrained(*_SCREAMING_SNAKE_CASE						,      **_SCREAMING_SNAKE_CASE   )



