code: def GDTF(self):
          
          H = self.H()
          tmp = H / np.sqrt(np.einsum('ia..., aa..., ia..., j... ->ij...',
                                      H.conj(), self.c, H,
                                      1 / self.c.diagonal()))
          return np.abs(tmp)
docs: Generalized directed transfer function.
  
          .. math:: \mathrm{GPDC}_{ij}(f) = \\frac{\sigma_j |H_{ij}(f)|}
              {\sqrt{H_{i:}(f) \mathrm{diag}(\mathbf{C}) H_{i:}'(f)}}
  
          References
          ----------
          L. Faes, S. Erla, G. Nollo. Measuring connectivity in linear
          multivariate processes: definitions, interpretation, and practical
          analysis. Comput. Math. Meth. Med. 2012: 140513, 2012.