code: def _compute_MFP_matrix(self):
          
          self.MFP = np.zeros(self.Lp.shape)
          for i in range(self.Lp.shape[0]):
              for k in range(self.Lp.shape[1]):
                  for j in range(self.Lp.shape[1]):
                      self.MFP[i, k] += (self.Lp[i, j] - self.Lp[i, k]
                                         - self.Lp[k, j] + self.Lp[k, k]) * self.z[j]
          settings.mt(0, 'computed mean first passage time matrix')
          self.distances_dpt = self.MFP
docs: See Fouss et al. (2006).
  
          This is the mean-first passage time matrix. It's not a distance.
  
          Mfp[i, k] := m(k|i) in the notation of Fouss et al. (2006). This
          corresponds to the standard notation for transition matrices (left index
          initial state, right index final state, i.e. a right-stochastic
          matrix, with each row summing to one).