


"""simple docstring"""






from ...configuration_utils import PretrainedConfig
from ...utils import logging


_lowerCAmelCase							:    List[str]					   =	logging.get_logger(__name__)

_lowerCAmelCase							:    List[str]					   =	{
    '''google/vivit-b-16x2-kinetics400''': (
        '''https://huggingface.co/google/vivit-b-16x2-kinetics400/resolve/main/config.json'''
    ),
    # See all Vivit models at https://huggingface.co/models?filter=vivit
}




class 							A_      (       _a ):
  lowerCAmelCase__      			=	'vivit'


  def __init__(			self:						List[Any]							,__lowerCAmelCase:						int=224							,__lowerCAmelCase:						Any=32							,__lowerCAmelCase:						str=[2, 16, 16]							,__lowerCAmelCase:						Optional[Any]=3							,__lowerCAmelCase:						List[str]=768							,__lowerCAmelCase:						List[Any]=12							,__lowerCAmelCase:						Optional[int]=12							,__lowerCAmelCase:						Optional[Any]=3_072							,__lowerCAmelCase:						Any="gelu_fast"							,__lowerCAmelCase:						Tuple=0.0							,__lowerCAmelCase:						Any=0.0							,__lowerCAmelCase:						Union[str, Any]=0.02							,__lowerCAmelCase:						List[str]=1e-06							,__lowerCAmelCase:						Optional[Any]=True							,**__lowerCAmelCase:						Optional[int]							,):







     '''simple docstring'''







     _lowerCamelCase   :				Any							=     hidden_size
     _lowerCamelCase   :				List[str]							=     num_hidden_layers
     _lowerCamelCase   :				Union[str, Any]							=     num_attention_heads
     _lowerCamelCase   :				Any							=     intermediate_size
     _lowerCamelCase   :				Tuple							=     hidden_act
     _lowerCamelCase   :				Tuple							=     hidden_dropout_prob
     _lowerCamelCase   :				Optional[Any]							=     attention_probs_dropout_prob
     _lowerCamelCase   :				List[Any]							=     initializer_range
     _lowerCamelCase   :				int							=     layer_norm_eps

     _lowerCamelCase   :				Tuple							=     image_size
     _lowerCamelCase   :				Dict							=     num_frames
     _lowerCamelCase   :				Optional[int]							=     tubelet_size
     _lowerCamelCase   :				int							=     num_channels
     _lowerCamelCase   :				List[str]							=     qkv_bias

     super().__init__(**__lowerCAmelCase    )





from math import factorial, radians





def 						__A						(      __lowerCamelCase				,     __lowerCamelCase = 18				,     __lowerCamelCase = 10       ) ->			float:
	a									=				angle_in_degrees - ((angle_in_degrees // 360.0) * 360.0)

	# Converting from degrees to radians
	a									=				radians(__lowerCamelCase       )

	a									=				angle_in_radians
	a									=				3
	a									=				-1

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

		a									=				-b  # One positive term and the next will be negative and so on...
		a += 2  # Increased by 2 for every term.

	return round(__lowerCamelCase				,     __lowerCamelCase       )


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

