code: def getViolatingPair(Iint, Iub, Ilb, F, tau):
      # The heuristic is to focus attention to Iint
      FIint = F[Iint]
      if FIint and max(FIint) - min(FIint) > tau:
          # the first index set (is nonempty and) has offending elements.
          ihigh, ilow = FIint.argmax(), FIint.argmin()
          return Iint[ilow], Iint[ihigh]
      else:
          # nothing within the first index set, need to scan
          # MathSVM is dumber than usual
          Sub, Slb = set(Iub), set(Ilb)
          l = F.size
          for i in range(l):
              for j in range(i, l):
                  if ViolatingPairQ(Sub, Slb, i, j, F, tau):
                      return i, j
      # the fact that this function is called means that it
      # should never reach here
      return None
  
file_path: mystic/_examples/test_smo1.py
imports: from numpy import *
  import matplotlib.pyplot
  from mystic.svc import *
  from mystic.symbolic import linear_symbolic, solve, generate_solvers, generate_constraint
  from mystic import suppressed
  from mystic.solvers import diffev
label_desc: Use image node_id 8 for calling a global function with example usage: getViolatingPair(Iint, Iub, Ilb, F, tau) and returns: None, Iint,  Iint, i,  j