'''simple docstring'''




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

__lowercase        =    6_378_137.0
__lowercase        =    6_356_752.314_245
__lowercase        =    6_3_7_8_1_3_7






def 							snake_case__				(     _A:   float ,  _A:   float ,  _A:   float ,  _A:   float					)       ->      float:

		'''simple docstring'''


		lowerCAmelCase     =    (AXIS_A - AXIS_B) / AXIS_A
		lowerCAmelCase     =    atan((1 - flattening) * tan(radians(_A					)					)					)
		lowerCAmelCase     =    atan((1 - flattening) * tan(radians(_A					)					)					)
		lowerCAmelCase     =    radians(_A					)
		lowerCAmelCase     =    radians(_A					)
		# Equation
		lowerCAmelCase     =    sin((phi_a - phi_a) / 2					)
		lowerCAmelCase     =    sin((lambda_a - lambda_a) / 2					)
		# Square both values
		sin_sq_phi *= sin_sq_phi
		sin_sq_lambda *= sin_sq_lambda
		lowerCAmelCase     =    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
from distutils.util import strtobool






def 							snake_case__				(     _A:   int ,  _A:   List[Any]					)       ->      Union[str, Any]:

		'''simple docstring'''


		for e in env_keys:
				lowerCAmelCase     =    int(os.environ.get(_A ,  -1					)					)
				if val >= 0:
						return val
		return default






def 							snake_case__				(     _A:   str ,  _A:   List[Any]=False					)       ->      int:

		'''simple docstring'''


		lowerCAmelCase     =    os.environ.get(_A ,  str(_A					)					)
		return strtobool(_A					) == 1  # As its name indicates `strtobool` actually returns an int...






def 							snake_case__				(     _A:   Dict ,  _A:   List[Any]="no"					)       ->      str:

		'''simple docstring'''


		lowerCAmelCase     =    os.environ.get(_A ,  str(_A					)					)
		return value




