code: def PDCF(self):
          
          A = self.A()
          # TODO: can we do that more efficiently?
          return np.abs(A / np.sqrt(np.einsum('aj..., ab..., bj... ->j...',
                                              A.conj(), self.Cinv(), A)))
docs: Partial directed coherence factor.
  
          .. math:: \mathrm{PDCF}_{ij}(f) =
          \\frac{A_{ij}(f)}{\sqrt{A_{:j}'(f) \mathbf{C}^{-1} A_{:j}(f)}}
  
          References
          ----------
          L. A. Baccalá, K. Sameshima. Partial directed coherence: a new concept
          in neural structure determination. Biol. Cybernetics 84(6): 463-474,
          2001.