class_docstr: Interface for implementing Hessian update strategies.
  
  Many optimization methods make use of Hessian (or inverse Hessian)
  approximations, such as the quasi-Newton methods BFGS, SR1, L-BFGS.
  Some of these  approximations, however, do not actually need to store
  the entire matrix or can compute the internal matrix product with a
  given vector in a very efficiently manner. This class serves as an
  abstract interface between the optimization algorithm and the
  quasi-Newton update strategies, giving freedom of implementation
  to store and update the internal matrix as efficiently as possible.
  Different choices of initialization and update procedure will result
  in different quasi-Newton strategies.
  
  Four methods should be implemented in derived classes: ``initialize``,
  ``update``, ``dot`` and ``get_matrix``.
  
  Notes
  -----
  Any instance of a class that implements this interface,
  can be accepted by the method ``minimize`` and used by
  the compatible solvers to approximate the Hessian (or
  inverse Hessian) used by the optimization algorithms.
docstr: Update internal matrix.
  
  Update Hessian matrix or its inverse (depending on how 'approx_type'
  is defined) using information about the last evaluated points.
  
  Parameters
  ----------
  delta_x : ndarray
      The difference between two points the gradient
      function have been evaluated at: ``delta_x = x2 - x1``.
  delta_grad : ndarray
      The difference between the gradients:
      ``delta_grad = grad(x2) - grad(x1)``.
docstr_tok: ["Update","internal","matrix",".","Update","Hessian","matrix","or","its","inverse","(","depending","on","how","'approx_type'","is","defined",")","using","information","about","the","last","evaluated","points",".","Parameters","--","--","--","--","--","delta_x",":","ndarray","The","difference","between","two","points","the","gradient","function","have","been","evaluated","at",":","``","delta_x","=","x2","-","x1","``",".","delta_grad",":","ndarray","The","difference","between","the","gradients",":","``","delta_grad","=","grad","(","x2",")","-","grad","(","x1",")","``","."]
code: def update(self, delta_x, delta_grad):
      """Update internal matrix.
  
      Update Hessian matrix or its inverse (depending on how 'approx_type'
      is defined) using information about the last evaluated points.
  
      Parameters
      ----------
      delta_x : ndarray
          The difference between two points the gradient
          function have been evaluated at: ``delta_x = x2 - x1``.
      delta_grad : ndarray
          The difference between the gradients:
          ``delta_grad = grad(x2) - grad(x1)``.
      """
      raise NotImplementedError(
          "The method ``update(delta_x, delta_grad)``"
          " is not implemented."
      )
  
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 2 for calling the HessianUpdateStrategy obj's underlying member method code with example usage: obj.update(delta_x, delta_grad) without return types