code: def _assemble_multi_class_output(self):
      support_vectors = self.model.support_vectors_
      coef = self.model.dual_coef_
      intercept = self.model.intercept_
  
      n_support = self.model.n_support_
      n_support_len = len(n_support)
  
      kernel_exprs = self._apply_kernel(support_vectors, to_reuse=True)
  
      support_ranges = []
      for i in range(n_support_len):
          range_start = sum(n_support[:i])
          range_end = range_start + n_support[i]
          support_ranges.append((range_start, range_end))
  
      # One-vs-one decisions.
      decisions = []
      for i in range(n_support_len):
          for j in range(i + 1, n_support_len):
              kernel_weight_mul_ops = [
                  utils.mul(kernel_exprs[k], ast.NumVal(coef[i][k]))
                  for k in range(*support_ranges[j])
              ]
              kernel_weight_mul_ops.extend(
                  [
                      utils.mul(
                          kernel_exprs[k], ast.NumVal(coef[j - 1][k])
                      )
                      for k in range(*support_ranges[i])
                  ]
              )
              decision = utils.apply_op_to_expressions(
                  ast.BinNumOpType.ADD,
                  ast.NumVal(intercept[len(decisions)]),
                  *kernel_weight_mul_ops,
              )
              decisions.append(decision)
  
      return ast.VectorVal(decisions)
  
imports: import numpy
  from m2cgen import ast
  from m2cgen.assemblers import utils
  from m2cgen.assemblers.base import ModelAssembler
label_desc: Use image node_id 3 for calling the SklearnSVMModelAssembler obj's underlying member method code with example usage: obj._assemble_multi_class_output() and returns: ast