'''simple docstring'''

from ..utils import DummyObject, requires_backends


class 					_lowercase						(   metaclass=lowerCAmelCase ):
      '''simple docstring'''


      UpperCAmelCase_   :   Union[str, Any]   				= ['''note_seq''']




      def __init__(					self       ,*lowerCamelCase_       ,**lowerCamelCase_				)      ->      Optional[Any]:



         '''simple docstring'''



         requires_backends(self       ,['''note_seq''']				)




      @classmethod
      def 		lowerCAmelCase__       (					cls       ,*lowerCamelCase_       ,**lowerCamelCase_				)      ->      List[Any]:



         '''simple docstring'''



         requires_backends(cls       ,['''note_seq''']				)




      @classmethod
      def 		lowerCAmelCase__       (					cls       ,*lowerCamelCase_       ,**lowerCamelCase_				)      ->      Tuple:



         '''simple docstring'''



         requires_backends(cls       ,['''note_seq''']				)





'''simple docstring'''

from math import factorial, radians







def __UpperCamelCase( _A       :					float	,      _A       :					int = 18	,      _A       :					int = 10     ):
   '''simple docstring'''
   UpperCAmelCase__				:					int 					=	angle_in_degrees - ((angle_in_degrees // 3_6_0.0) * 3_6_0.0)

   # Converting from degrees to radians
   UpperCAmelCase__				:					Dict 					=	radians(_A     )

   UpperCAmelCase__				:					Union[str, Any] 					=	angle_in_radians
   UpperCAmelCase__				:					List[str] 					=	3
   UpperCAmelCase__				:					int 					=	-1

   for _ in range(_A     ):
      result += (b * (angle_in_radians**a)) / factorial(_A     )

      UpperCAmelCase__				:					List[str] 					=	-b  # One positive term and the next will be negative and so on...
      a += 2  # Increased by 2 for every term.

   return round(_A	,      _A     )


if __name__ == "__main__":
  __import__('doctest').testmod()




