code: def update_display(self, iteration, disp_level, col_width=12):  # pragma: no cover
          
  
          # exit and print nothing if disp_level is zero
          if disp_level == 0:
              return
  
          else:
  
              # simple update, no table
              if disp_level == 1 and iteration >= 0:
                  print('[Iteration %i]' % iteration)
  
              # fancy table updates
              if disp_level > 1:
  
                  # get the metadata from this iteration
                  data = valmap(last, self.metadata)
  
                  # choose what keys to use
                  keys = ['Time (s)', 'Primal resid', 'Dual resid', 'rho']
  
                  # initial update. print out table headers
                  if iteration == 1:
                      print(tableprint.header(keys, width=col_width))
  
                  # print data
                  print(tableprint.row([data[k] for k in keys], width=col_width, format_spec='4g'))
  
                  if iteration == -1:
                      print(tableprint.bottom(len(keys), width=col_width) + '\n')
  
              # print convergence statement
              if iteration == -1 and self.converged:
                  print('Converged after %i iterations!' % len(self.metadata['Primal resid']))
docs: Prints information about the optimization procedure to standard output
  
          Parameters
          ----------
          iteration : int
              The current iteration. Must either a positive integer or -1, which indicates the end of the algorithm
  
          disp_level : int
              An integer which controls how much information to display, ranging from 0 (nothing) to 3 (lots of stuff)
  
          col_width : int
              The width of each column in the data table, used if disp_level > 1