



from math import radians as angle_to_radians
from math import sin

# Acceleration Constant on Earth (unit m/s^2)
UpperCamelCase_	       =   9.8_06_65







def 				A			(		__UpperCAmelCase							,					__UpperCAmelCase	)       ->       None:



						'''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 				A			(		__UpperCAmelCase							,					__UpperCAmelCase	)       ->       float:



						'''simple docstring'''






						check_args(__UpperCAmelCase							,					__UpperCAmelCase	)
						UpperCAmelCase_     							=     angle_to_radians(2 * angle	)
						return round(init_velocity**2 * sin(__UpperCAmelCase	) / g							,					2	)







def 				A			(		__UpperCAmelCase							,					__UpperCAmelCase	)       ->       float:



						'''simple docstring'''






						check_args(__UpperCAmelCase							,					__UpperCAmelCase	)
						UpperCAmelCase_     							=     angle_to_radians(__UpperCAmelCase	)
						return round(init_velocity**2 * sin(__UpperCAmelCase	) ** 2 / (2 * g)							,					2	)







def 				A			(		__UpperCAmelCase							,					__UpperCAmelCase	)       ->       float:



						'''simple docstring'''






						check_args(__UpperCAmelCase							,					__UpperCAmelCase	)
						UpperCAmelCase_     							=     angle_to_radians(__UpperCAmelCase	)
						return round(2 * init_velocity * sin(__UpperCAmelCase	) / g							,					2	)







def 				A			(		)       ->       None:



						'''simple docstring'''






						UpperCAmelCase_							,      UpperCAmelCase_     							=     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
							UpperCamelCase_	       =   float(input("Initial Velocity: ").strip())

							# Get input from user
							UpperCamelCase_	       =   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





