code: def hessian_local_log_likelihood(self, x):
          
          C, D, u, y = self.C, self.D, self.inputs, self.data
          psi = x.dot(C.T) + u.dot(D.T)
          p = 1. / (1 + np.exp(-psi))
          dp_dpsi = p * (1 - p)
          return np.einsum('tn, ni, nj ->tij', -dp_dpsi, self.C, self.C)
docs: d/dx  (y - p) * C
              = -dpsi/dx (dp/d\psi)  C
              = -C p (1-p) C