code: def get_jtimes(self):
          
          if self._jtimes is False:
              return False
  
          if self._jtimes is True:
              r = self.be.Dummy('r')
              v = tuple(self.be.Dummy('v_{0}'.format(i)) for i in range(self.ny))
              f = self.be.Matrix(1, self.ny, self.exprs)
              f = f.subs([(x_i, x_i + r * v_i) for x_i, v_i in zip(self.dep, v)])
              return v, self.be.flatten(f.diff(r).subs(r, 0))
          else:
              return tuple(zip(*self._jtimes))
docs: Derive the jacobian-vector product from ``self.exprs`` and ``self.dep``