예제 #1
0
def _rankin_cohen_pair_det2_sym_pol(j, k, l):
    (r11, r12, r22, s11, s12, s22), _, (r, s) = _pair_gens_r_s()
    m = j // 2
    Q = sum([(-1) ** i * combination(m + l, i) * combination(m + k, m - i) *
             r ** i * s ** (m - i) for i in range(m + 1)])
    Qx = sum([(-1) ** i * combination(m + l, i) * combination(m + k, m - i) *
              i * r ** (i - 1) * s ** (m - i) for i in range(1, m + 1)])
    Qy = sum([(-1) ** i * combination(m + l, i) * combination(m + k, m - i) *
              (m - i) * r ** i * s ** (m - i - 1) for i in range(0, m)])
    detR = r11 * r22 - r12 ** 2
    detS = s11 * s22 - s12 ** 2
    # det(R+S)
    detRpS = (-r12 ** 2 + r11 * r22 + r22 * s11 - QQ(2) * r12 * s12
              - s12 ** 2 + r11 * s22 + s11 * s22)
    Q2 = ((2 * k - 1) * (2 * l - 1) * detRpS - (2 * k - 1) * (2 * k + 2 * l - 1) * detS -
          (2 * l - 1) * (2 * k + 2 * l - 1) * detR)
    Q = (QQ(4) ** (-1) * Q2 * Q +
         QQ(2) ** (-1) *
         ((2 * l - 1) * detR * s - (2 * k - 1) * detS * r) *
         (Qx - Qy))
    return Q
예제 #2
0
def _rankin_cohen_pair_sym_pol(j, k, l):
    _, _, (r, s) = _pair_gens_r_s()
    m = j // 2
    return sum([(-1) ** i * combination(m + l - 1, i) *
                combination(m + k - 1, m - i) *
                r ** i * s ** (m - i) for i in range(m + 1)])