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: Compute the product of the internal matrix with the given vector.
  
  Parameters
  ----------
  p : array_like
      1-d array representing a vector.
  
  Returns
  -------
  Hp : array
      1-d  represents the result of multiplying the approximation matrix
      by vector p.
docstr_tok: ["Compute","the","product","of","the","internal","matrix","with","the","given","vector",".","Parameters","--","--","--","--","--","p",":","array_like","1-d","array","representing","a","vector",".","Returns","--","--","--","-","Hp",":","array","1-d","represents","the","result","of","multiplying","the","approximation","matrix","by","vector","p","."]
code: def dot(self, p):
      """Compute the product of the internal matrix with the given vector.
  
      Parameters
      ----------
      p : array_like
          1-d array representing a vector.
  
      Returns
      -------
      Hp : array
          1-d  represents the result of multiplying the approximation matrix
          by vector p.
      """
      raise NotImplementedError(
          "The method ``dot(p)``" " 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 3 for calling the HessianUpdateStrategy obj's underlying member method code with example usage: obj.dot(p) without return types