code: def apply_bin_op(left, right, op):
      """
      Finds binary expression class suitable for combination of left and right
      expressions depending on whether their output is scalar or vector and
      creates instance of this expression with specified operation.
      """
      exr_class = BIN_EXPR_CLASSES.get(
          (left.output_size > 1, right.output_size > 1)
      )
      if exr_class is None:
          # change the positions of left and right
          left, right = right, left
          exr_class = ast.BinVectorNumExpr
  
      return exr_class(left, right, op)
  
file_path: m2cgen/m2cgen/assemblers/utils.py
imports: import numpy
  from m2cgen import ast
label_desc: Use image node_id 9 for calling a global function with example usage: apply_bin_op(left, right, op) and returns: exr_class