






"""simple docstring"""





from math import radians as angle_to_radians
from math import sin

# Acceleration Constant on Earth (unit m/s^2)
A__       :			int=						9.8_0_6_6_5







def 	lowerCAmelCase_(			SCREAMING_SNAKE_CASE			,						SCREAMING_SNAKE_CASE       )       ->						List[str]:
    """simple docstring"""

    if not isinstance(lowerCAmelCase_			,						(int, float)       ):
        raise TypeError('Invalid velocity. Should be a positive number.'       )

    if not isinstance(lowerCAmelCase_			,						(int, float)       ):
        raise TypeError('Invalid angle. Range is 1-90 degrees.'       )

    # Ensure valid angle
    if angle > 90 or angle < 1:
        raise ValueError('Invalid angle. Range is 1-90 degrees.'       )

    # Ensure valid velocity
    if init_velocity < 0:
        raise ValueError('Invalid velocity. Should be a positive number.'       )







def 	lowerCAmelCase_(			SCREAMING_SNAKE_CASE			,						SCREAMING_SNAKE_CASE       )       ->						Tuple:
    """simple docstring"""

    check_args(lowerCAmelCase_			,						lowerCAmelCase_       )
    UpperCamelCase__								=     angle_to_radians(2 * angle       )
    return round(init_velocity**2 * sin(lowerCAmelCase_       ) / g			,						2       )







def 	lowerCAmelCase_(			SCREAMING_SNAKE_CASE			,						SCREAMING_SNAKE_CASE       )       ->						Union[str, Any]:
    """simple docstring"""

    check_args(lowerCAmelCase_			,						lowerCAmelCase_       )
    UpperCamelCase__								=     angle_to_radians(lowerCAmelCase_       )
    return round(init_velocity**2 * sin(lowerCAmelCase_       ) ** 2 / (2 * g)			,						2       )







def 	lowerCAmelCase_(			SCREAMING_SNAKE_CASE			,						SCREAMING_SNAKE_CASE       )       ->						List[str]:
    """simple docstring"""

    check_args(lowerCAmelCase_			,						lowerCAmelCase_       )
    UpperCamelCase__								=     angle_to_radians(lowerCAmelCase_       )
    return round(2 * init_velocity * sin(lowerCAmelCase_       ) / g			,						2       )







def 	lowerCAmelCase_(			)       ->						int:
    """simple docstring"""

    UpperCamelCase__							,    UpperCamelCase__								=     25, 20
    assert horizontal_distance(lowerCAmelCase_			,						lowerCAmelCase_       ) == 40.97
    assert max_height(lowerCAmelCase_			,						lowerCAmelCase_       ) == 3.73
    assert total_time(lowerCAmelCase_			,						lowerCAmelCase_       ) == 1.74


if __name__ == "__main__":
  from doctest import testmod

  testmod()

  # Get input from user
  A__       :			List[str]=						float(input("""Initial Velocity: """).strip())

  # Get input from user
  A__       :			Union[str, Any]=						float(input("""angle: """).strip())

  # Print results
  print()
  print("""Results: """)
  print(F"""Horizontal Distance: {horizontal_distance(init_vel, angle)!s} [m]""")
  print(F"""Maximum Height: {max_height(init_vel, angle)!s} [m]""")
  print(F"""Total Time: {total_time(init_vel, angle)!s} [s]""")







import numpy as np







def      snake_case__							(  lowerCAmelCase_     ):





     """simple docstring"""







     SCREAMING_SNAKE_CASE 		=np.exp(lowerCAmelCase_     )

     # Add up the all the exponentials
     SCREAMING_SNAKE_CASE 		=np.sum(lowerCAmelCase_     )

     # Divide every exponent by the sum of all exponents
     SCREAMING_SNAKE_CASE 		=exponent_vector / sum_of_exponents

     return softmax_vector


if __name__ == "__main__":
 print(softmax((0,)))

