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.

def GDTF(self):
        """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.
        """
        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)