class_docstr: Symmetric-rank-1 Hessian update strategy.
  
  Parameters
  ----------
  min_denominator : float
      This number, scaled by a normalization factor,
      defines the minimum denominator magnitude allowed
      in the update. When the condition is violated we skip
      the update. By default uses ``1e-8``.
  init_scale : {float, 'auto'}, optional
      Matrix scale at first iteration. At the first
      iteration the Hessian matrix or its inverse will be initialized
      with ``init_scale*np.eye(n)``, where ``n`` is the problem dimension.
      Set it to 'auto' in order to use an automatic heuristic for choosing
      the initial scale. The heuristic is described in [1]_, p.143.
      By default uses 'auto'.
  
  Notes
  -----
  The update is based on the description in [1]_, p.144-146.
  
  References
  ----------
  .. [1] Nocedal, Jorge, and Stephen J. Wright. "Numerical optimization"
         Second Edition (2006).
code: def __init__(self, min_denominator=1e-8, init_scale="auto"):
      self.min_denominator = min_denominator
      super(SR1, self).__init__(init_scale)
  
imports: from __future__ import division, print_function, absolute_import
  import numpy
  from numpy.linalg import norm
  from scipy.linalg import get_blas_funcs
  from warnings import warn
label_desc: Use image node_id 1 to create a new SR1 object from inherited base classes: FullHessianUpdateStrategy with example: obj = SR1(min_denominator, init_scale)