class_docstr: Decorator that caches the value gradient of function each time it
  is called. 
class_docstr_tok: ["Decorator","that","caches","the","value","gradient","of","function","each","time","it","is","called","."]
code: def derivative(self, x, *args):
      if self.jac is not None and numpy.alltrue(x == self.x):
          return self.jac
      else:
          self(x, *args)
          return self.jac
  
imports: from __future__ import division, print_function, absolute_import
  import warnings
  import sys
  import numpy
  from scipy._lib.six import callable, xrange
  from numpy import atleast_1d, eye, mgrid, argmin, zeros, shape, squeeze, vectorize, asarray, sqrt, Inf, asfarray, isinf
  import numpy
  from .linesearch import line_search_wolfe1, line_search_wolfe2, line_search_wolfe2, LineSearchWarning
  from scipy._lib._util import getargspec_no_self
label_desc: Use image node_id 3 for calling the MemoizeJac obj's underlying member method code with example usage: obj.derivative(x) and returns: self, self