


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCamelCase		=	{
    '''configuration_decision_transformer''': [
        '''DECISION_TRANSFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''DecisionTransformerConfig''',
    ],
}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		lowerCamelCase		=	[
		    '''DECISION_TRANSFORMER_PRETRAINED_MODEL_ARCHIVE_LIST''',
		    '''DecisionTransformerGPT2Model''',
		    '''DecisionTransformerGPT2PreTrainedModel''',
		    '''DecisionTransformerModel''',
		    '''DecisionTransformerPreTrainedModel''',
		]


if TYPE_CHECKING:
		from .configuration_decision_transformer import (
		    DECISION_TRANSFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP,
		    DecisionTransformerConfig,
		)

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_decision_transformer import (
				    DECISION_TRANSFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
				    DecisionTransformerGPTaModel,
				    DecisionTransformerGPTaPreTrainedModel,
				    DecisionTransformerModel,
				    DecisionTransformerPreTrainedModel,
				)


else:
		import sys

		lowerCamelCase		=	_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)








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]''')




