






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

a						:			Tuple     	=					6_37_81_37.0
a						:			Any     	=					6_35_67_52.31_42_45
a						:			Tuple     	=					6_378_137






def 							lowerCamelCase__ (       __lowerCamelCase     :	float    ,						__lowerCamelCase     :	float    ,						__lowerCamelCase     :	float    ,						__lowerCamelCase     :	float						):
  __UpperCAmelCase				:      Union[str, Any]	 =    (AXIS_A - AXIS_B) / AXIS_A
  __UpperCAmelCase				:      List[str]	 =    atan((1 - flattening) * tan(radians(__lowerCamelCase						)						)						)
  __UpperCAmelCase				:      Optional[Any]	 =    atan((1 - flattening) * tan(radians(__lowerCamelCase						)						)						)
  __UpperCAmelCase				:      Optional[Any]	 =    radians(__lowerCamelCase						)
  __UpperCAmelCase				:      Optional[Any]	 =    radians(__lowerCamelCase						)
  # Equation
  __UpperCAmelCase				:      Any	 =    sin((phi_a - phi_a) / 2						)
  __UpperCAmelCase				:      Any	 =    sin((lambda_a - lambda_a) / 2						)
  # Square both values
  sin_sq_phi *= sin_sq_phi
  sin_sq_lambda *= sin_sq_lambda
  __UpperCAmelCase				:      List[Any]	 =    sqrt(sin_sq_phi + (cos(__lowerCamelCase						) * cos(__lowerCamelCase						) * sin_sq_lambda)						)
  return 2 * RADIUS * asin(__lowerCamelCase						)


if __name__ == "__main__":
       import doctest

       doctest.testmod()






from __future__ import annotations

import numpy as np



def 							UpperCamelCase_( lowerCamelCase_					)       ->		Optional[int]:
    return np.maximum(0				,					lowerCamelCase_					)


if __name__ == "__main__":
 print(np.array(relu([-1, 0, 5])))  # --> [0, 0, 5]


