


def   lowerCamelCase_					( _a ):




		"""simple docstring"""






		if not isinstance(_a			,     _a ):
				lowerCAmelCase__     :    List[Any]					  =      (
				    '''operation can not be conducted on a object of type '''
				    f'{type(_a ).__name__}'
				)
				raise TypeError(_a )
		lowerCAmelCase__     :    Dict					  =      ''''''
		for _ in range(0			,     32 ):
				bit_string += str(number % 2 )
				lowerCAmelCase__     :    Optional[int]					  =      number >> 1
		return bit_string






def   lowerCamelCase_					( _a ):




		"""simple docstring"""






		if number < 0:
				raise ValueError('''the value of input must be positive''' )
		elif isinstance(_a			,     _a ):
				raise TypeError('''Input value must be a \'int\' type''' )
		elif isinstance(_a			,     _a ):
				raise TypeError('''\'<\' not supported between instances of \'str\' and \'int\'''' )
		lowerCAmelCase__     :    Any					  =      0
		# iterator over [1 to 32],since we are dealing with 32 bit integer
		for _ in range(1			,     33 ):
				# left shift the bits by unity
				lowerCAmelCase__     :    Any					  =      result << 1
				# get the end bit
				lowerCAmelCase__     :    Dict					  =      number % 2
				# right shift the bits by unity
				lowerCAmelCase__     :    Optional[Any]					  =      number >> 1
				# add that bit to our ans
				lowerCAmelCase__     :    Union[str, Any]					  =      result | end_bit
		return get_reverse_bit_string(_a )


if __name__ == "__main__":
		import doctest

		doctest.testmod()








from math import radians as angle_to_radians
from math import sin

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






def   lowerCamelCase_					( _a			,     _a ):




		"""simple docstring"""






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

		if not isinstance(_a			,     (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_					( _a			,     _a ):




		"""simple docstring"""






		check_args(_a			,     _a )
		lowerCAmelCase__     :    Any					  =      angle_to_radians(2 * angle )
		return round(init_velocity**2 * sin(_a ) / g			,     2 )






def   lowerCamelCase_					( _a			,     _a ):




		"""simple docstring"""






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






def   lowerCamelCase_					( _a			,     _a ):




		"""simple docstring"""






		check_args(_a			,     _a )
		lowerCAmelCase__     :    Optional[int]					  =      angle_to_radians(_a )
		return round(2 * init_velocity * sin(_a ) / g			,     2 )






def   lowerCamelCase_					( ):




		"""simple docstring"""






		lowerCAmelCase__  ,			lowerCAmelCase__     :    Optional[int]					  =      25, 20
		assert horizontal_distance(_a			,     _a ) == 40.97
		assert max_height(_a			,     _a ) == 3.73
		assert total_time(_a			,     _a ) == 1.74


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

		testmod()

		# Get input from user
		lowerCamelCase		=	float(input('''Initial Velocity: ''').strip())

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




