






from math import radians as angle_to_radians
from math import sin

# Acceleration Constant on Earth (unit m/s^2)
snake_case			 =						9.80665


def      lowerCamelCase__	(   lowercase  ,   lowercase ):

  """simple docstring"""






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

  if not isinstance(__UpperCAmelCase  ,   (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__	(   lowercase  ,   lowercase ):

  """simple docstring"""






  check_args(__UpperCAmelCase  ,   __UpperCAmelCase )
  SCREAMING_SNAKE_CASE				:					List[str]		  =			angle_to_radians(2 * angle )
  return round(init_velocity**2 * sin(__UpperCAmelCase ) / g  ,   2 )


def      lowerCamelCase__	(   lowercase  ,   lowercase ):

  """simple docstring"""






  check_args(__UpperCAmelCase  ,   __UpperCAmelCase )
  SCREAMING_SNAKE_CASE				:					Dict		  =			angle_to_radians(__UpperCAmelCase )
  return round(init_velocity**2 * sin(__UpperCAmelCase ) ** 2 / (2 * g)  ,   2 )


def      lowerCamelCase__	(   lowercase  ,   lowercase ):

  """simple docstring"""






  check_args(__UpperCAmelCase  ,   __UpperCAmelCase )
  SCREAMING_SNAKE_CASE				:					Optional[Any]		  =			angle_to_radians(__UpperCAmelCase )
  return round(2 * init_velocity * sin(__UpperCAmelCase ) / g  ,   2 )


def      lowerCamelCase__	(   ):

  """simple docstring"""






  SCREAMING_SNAKE_CASE  ,     SCREAMING_SNAKE_CASE				:					List[Any]		  =			25, 20
  assert horizontal_distance(__UpperCAmelCase  ,   __UpperCAmelCase ) == 40.97
  assert max_height(__UpperCAmelCase  ,   __UpperCAmelCase ) == 3.73
  assert total_time(__UpperCAmelCase  ,   __UpperCAmelCase ) == 1.74


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

   testmod()

   # Get input from user
   snake_case			 =						float(input("""Initial Velocity: """).strip())

   # Get input from user
   snake_case			 =						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]""")











from .chunk_utils import chunk_layer
from .data_transforms import make_atomaa_masks
from .feats import atomaa_to_atomaa, frames_and_literature_positions_to_atomaa_pos, torsion_angles_to_frames
from .loss import compute_predicted_aligned_error, compute_tm
from .protein import Protein as OFProtein
from .protein import to_pdb
from .rigid_utils import Rigid, Rotation
from .tensor_utils import dict_multimap, flatten_final_dims, permute_final_dims





