





'''simple docstring'''

UpperCAmelCase					:		Optional[Any]		=							'Tobias Carryer'

from time import time





class lowerCamelCase						:







  def __init__(		self     ,     lowercase__     ,     lowercase__     ,     lowercase__     ,     lowercase__=int(time()		)		)		->						Any:  # noqa: B008






        """simple docstring"""





        _snake_case		:	Dict					     =     multiplier
        _snake_case		:	str					     =     increment
        _snake_case		:	Dict					     =     modulo
        _snake_case		:	str					     =     seed







  def 				UpperCAmelCase_				(		self		)		->						Tuple:






        """simple docstring"""





        _snake_case		:	str					     =     (self.multiplier * self.seed + self.increment) % self.modulo
        return self.seed


if __name__ == "__main__":
   # Show the LCG in action.
   UpperCAmelCase					:		Any		=							LinearCongruentialGenerator(1_6_6_4_5_2_5, 1_0_1_3_9_0_4_2_2_3, 2 << 3_1)
   while True:
      print(lcg.next_number())









'''simple docstring'''

UpperCAmelCase					:		Union[str, Any]		=							tuple[float, float, float]
UpperCAmelCase					:		int		=							tuple[float, float, float]




def    _a    (							lowerCAmelCase_			,      lowerCAmelCase_	):





      """simple docstring"""



      _snake_case		:	str					     =     end_pointa[0] - end_pointa[0]
      _snake_case		:	Tuple					     =     end_pointa[1] - end_pointa[1]
      _snake_case		:	Any					     =     end_pointa[2] - end_pointa[2]
      return (x, y, z)




def    _a    (							lowerCAmelCase_			,      lowerCAmelCase_	):





      """simple docstring"""



      _snake_case		:	Dict					     =     ab[1] * ac[2] - ab[2] * ac[1]  # *i
      _snake_case		:	List[str]					     =     (ab[0] * ac[2] - ab[2] * ac[0]) * -1  # *j
      _snake_case		:	Optional[int]					     =     ab[0] * ac[1] - ab[1] * ac[0]  # *k
      return (x, y, z)




def    _a    (							lowerCAmelCase_			,      lowerCAmelCase_	):





      """simple docstring"""



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




def    _a    (							lowerCAmelCase_			,      lowerCAmelCase_			,      lowerCAmelCase_			,      lowerCAmelCase_ = 10	):





      """simple docstring"""



      _snake_case		:	str					     =     create_vector(lowerCAmelCase_			,      lowerCAmelCase_	)
      _snake_case		:	Tuple					     =     create_vector(lowerCAmelCase_			,      lowerCAmelCase_	)
      return is_zero_vector(get_ad_vectors_cross(lowerCAmelCase_			,      lowerCAmelCase_	)			,      lowerCAmelCase_	)


