nodes: 0, module; 1, function_definition; 2, function_name:in1d_events; 3, parameters; 4, block; 5, identifier:ar1; 6, identifier:ar2; 7, expression_statement; 8, expression_statement; 9, comment:# change memory alignement for c++ library; 10, expression_statement; 11, comment:# change memory alignement for c++ library; 12, expression_statement; 13, comment:# temporary result array filled by c++ library, bool type is not supported with cython/numpy; 14, return_statement; 15, comment:"""
      Does the same than np.in1d but uses the fact that ar1 and ar2 are sorted and the c++ library. Is therefore much much faster.
  
      """; 16, assignment; 17, assignment; 18, assignment; 19, call; 20, identifier:ar1; 21, call; 22, identifier:ar2; 23, call; 24, identifier:tmp; 25, call; 26, attribute; 27, argument_list; 28, attribute; 29, argument_list; 30, attribute; 31, argument_list; 32, attribute; 33, argument_list; 34, identifier:analysis_functions; 35, identifier:get_in1d_sorted; 36, identifier:ar1; 37, identifier:ar2; 38, identifier:tmp; 39, identifier:np; 40, identifier:ascontiguousarray; 41, identifier:ar1; 42, identifier:np; 43, identifier:ascontiguousarray; 44, identifier:ar2; 45, identifier:np; 46, identifier:empty_like; 47, identifier:ar1; 48, keyword_argument; 49, identifier:dtype; 50, attribute; 51, identifier:np; 52, identifier:uint8
code: def in1d_events(ar1, ar2):
      """
      Does the same than np.in1d but uses the fact that ar1 and ar2 are sorted and the c++ library. Is therefore much much faster.
  
      """
      ar1 = np.ascontiguousarray(ar1)  # change memory alignement for c++ library
      ar2 = np.ascontiguousarray(ar2)  # change memory alignement for c++ library
      tmp = np.empty_like(ar1, dtype=np.uint8)  # temporary result array filled by c++ library, bool type is not supported with cython/numpy
      return analysis_functions.get_in1d_sorted(ar1, ar2, tmp)