class_docstr: A class to manage the history along iterations of a solver
  
  Attributes
  ----------
  print_order : `list` or `str`
      The list of values to print along iterations
  
  values : `dict`
      A `dict` containing the history. Key is the value name and
      values are the values taken along the iterations
  
  last_values : `dict`
      A `dict` containing all the last history values
  
  _minimum_col_width : `int`
      Minimal size of a column when printing the history
  
  _minimizer : `None` or `numpy.ndarray`
      The minimizer of the objective. `None` if not specified.
      This is useful to compute a distance to the optimum.
  
  _minimum : `None` or `float`
      The minimal (optimal) value of the objective. `None` if not
      specified. This is useful to compute a distance to the optimum.
  
  _print_style : `list` or `str`
      The display style of all printed numbers
  
  _history_func : `dict`
      A dict given for all values the function to be applied before
      saving and displaying in history. This is useful for computing
      the sparsity, the rank, among other things, of the iterates
      along iterations of the solver
  
  _n_iter : `int`
      The current iteration number
  
  _col_widths : `list` or `int`
      A list containing the computed width of each column used for
      printing the history, based on the name length of the column
code: def __getstate__(self):
      return dill.dumps(self.__dict__)
  
imports: from collections import defaultdict
  import dill
  import numpy
  from tick.base import Base
  from numpy.linalg import norm
label_desc: Use image node_id 13 for calling the History obj's underlying member method code with example usage: obj.__getstate__() and returns: dill