def _F2(a, b, c): if b == c: return 6 * _H(a, c) return (a + b + c)**2 / (3 * (b - c)**2) * ( (b + c) / (math.sqrt(b * c)) * float(mpm.elliprf(a / b, a / c, 1)) + (2 * a - b - c) / (3 * math.sqrt(b * c)) * float(mpm.elliprd(a / b, a / c, 1)) - 2)
def _F1(a, b, c): if a == b: return 3 * _H(c, a) if a == c: return 3 * _H(b, a) return (a + b + c)**2 / (18 * (a - b) * (a - c)) * ( math.sqrt(b * c) / a * float(mpm.elliprf(a / b, a / c, 1)) + (3 * a**2 - a * b - a * c - b * c) / (3 * a * math.sqrt(b * c)) * float(mpm.elliprd(a / b, a / c, 1)) - 1)
def bi(ai): # ->> t: time list <<- # #b=np.zeros(3) idxall = np.arange(3) b = [] for i in range(3): idx = np.delete(idxall, i) #print 'calculating RD at', idx[0], idx[1], i #b.append(2./3.*(mpmath.elliprd(ai[idx[0]], ai[idx[1]], ai[i])*np.prod(ai)-1.)) b.append( np.float64( 2. / 3. * mpmath.elliprd(ai[idx[0]]**2., ai[idx[1]]**2., ai[i]**2.) * np.prod(ai))) return b
def get_Ax(*, x, y, z): """ Returns the degenerate Carlson symmetric elliptic integral of the third kind. Note that the permutation of the first two arguments does not change the result """ return float(2 / 3 * (elliprd(y**2, z**2, x**2)))