





__lowercase  :   str						      =tuple[float, float, float]
__lowercase  :   List[Any]						      =tuple[float, float, float]




def     a__ (					lowercase__  ,    lowercase__  ):






   '''simple docstring'''






   UpperCAmelCase_											=end_pointa[0] - end_pointa[0]
   UpperCAmelCase_											=end_pointa[1] - end_pointa[1]
   UpperCAmelCase_											=end_pointa[2] - end_pointa[2]
   return (x, y, z)




def     a__ (					lowercase__  ,    lowercase__  ):






   '''simple docstring'''






   UpperCAmelCase_											=ab[1] * ac[2] - ab[2] * ac[1]  # *i
   UpperCAmelCase_											=(ab[0] * ac[2] - ab[2] * ac[0]) * -1  # *j
   UpperCAmelCase_											=ab[0] * ac[1] - ab[1] * ac[0]  # *k
   return (x, y, z)




def     a__ (					lowercase__  ,    lowercase__  ):






   '''simple docstring'''






   return tuple(round(lowercase__  ,    lowercase__  ) for x in vector  ) == (0, 0, 0)





def     a__ (					lowercase__  ,    lowercase__  ,    lowercase__  ,    lowercase__ = 1_0  ):






   '''simple docstring'''






   UpperCAmelCase_											=create_vector(lowercase__  ,    lowercase__  )
   UpperCAmelCase_											=create_vector(lowercase__  ,    lowercase__  )
   return is_zero_vector(get_ad_vectors_cross(lowercase__  ,    lowercase__  )  ,    lowercase__  )











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


__lowercase  :   Optional[int]						      =logging.get_logger(__name__)

__lowercase  :   Union[str, Any]						      ={
    """Visual-Attention-Network/van-base""": (
        """https://huggingface.co/Visual-Attention-Network/van-base/blob/main/config.json"""
    ),
}

class      A       (	__lowercase						):
      _snake_case							     ='''van'''



      def __init__(	self:						str		,  _lowerCAmelCase:						List[Any]=224		,  _lowerCAmelCase:						Any=3		,  _lowerCAmelCase:						Tuple=[7, 3, 3, 3]		,  _lowerCAmelCase:						Union[str, Any]=[4, 2, 2, 2]		,  _lowerCAmelCase:						List[str]=[64, 128, 320, 512]		,  _lowerCAmelCase:						Tuple=[3, 3, 12, 3]		,  _lowerCAmelCase:						Union[str, Any]=[8, 8, 4, 4]		,  _lowerCAmelCase:						Any="gelu"		,  _lowerCAmelCase:						Optional[int]=0.02		,  _lowerCAmelCase:						List[str]=1e-6		,  _lowerCAmelCase:						Any=1e-2		,  _lowerCAmelCase:						Any=0.0		,  _lowerCAmelCase:						Optional[Any]=0.0		,  **_lowerCAmelCase:						List[str]		,  )						->    Dict:
         '''simple docstring'''

         super().__init__(**_lowerCAmelCase       )
         UpperCAmelCase_											=image_size
         UpperCAmelCase_											=num_channels
         UpperCAmelCase_											=patch_sizes
         UpperCAmelCase_											=strides
         UpperCAmelCase_											=hidden_sizes
         UpperCAmelCase_											=depths
         UpperCAmelCase_											=mlp_ratios
         UpperCAmelCase_											=hidden_act
         UpperCAmelCase_											=initializer_range
         UpperCAmelCase_											=layer_norm_eps
         UpperCAmelCase_											=layer_scale_init_value
         UpperCAmelCase_											=drop_path_rate
         UpperCAmelCase_											=dropout_rate




