def CAT(N, rho, k):
    'Criterion Autoregressive Transfer Function :\n\n    .. math::  CAT(k) = \\frac{1}{N} \\sum_{i=1}^k \\frac{1}{\\rho_i} - \\frac{\\rho_i}{\\rho_k}\n\n    .. todo:: validation\n    '
    from numpy import zeros, arange
    cat = zeros(len(rho))
    for p in arange(1, (len(rho) + 1)):
        rho_p = ((float(N) / (N - p)) * rho[(p - 1)])
        s = 0
        for j in range(1, (p + 1)):
            rho_j = ((float(N) / (N - j)) * rho[(j - 1)])
            s = (s + (1.0 / rho_j))
        cat[(p - 1)] = ((s / float(N)) - (1.0 / rho_p))
    return cat
Criterion Autoregressive Transfer Function :

.. math::  CAT(k) = \frac{1}{N} \sum_{i=1}^k \frac{1}{\rho_i} - \frac{\rho_i}{\rho_k}

.. todo:: validation
def CAT(N, rho, k):
    'Criterion Autoregressive Transfer Function :\n\n    .. math::  CAT(k) = \\frac{1}{N} \\sum_{i=1}^k \\frac{1}{\\rho_i} - \\frac{\\rho_i}{\\rho_k}\n\n    .. todo:: validation\n    '
    from numpy import zeros, arange
    cat = zeros(len(rho))
    for p in arange(1, (len(rho) + 1)):
        rho_p = ((float(N) / (N - p)) * rho[(p - 1)])
        s = 0
        for j in range(1, (p + 1)):
            rho_j = ((float(N) / (N - j)) * rho[(j - 1)])
            s = (s + (1.0 / rho_j))
        cat[(p - 1)] = ((s / float(N)) - (1.0 / rho_p))
    return cat