if name == 'I.18.4' or name == 21:
symbol = m1, r1, m2, r2 = symbols('m1 r1 m2 r2')
expr = (m1*r1+m2*r2)/(m1+m2)
f = lambda x: (x[:,[0]]*x[:,[1]]+x[:,[2]]*x[:,[3]])/(x[:,[0]]+x[:,[2]])
ranges = [[0.5,1],[-1,1],[0.5,1],[-1,1]]
if name == 'I.18.4' or name == 22:
symbol = r, F, theta = symbols('r F theta')
expr = r*F*sin(theta)
f = lambda x: x[:,[0]]*x[:,[1]]*torch.sin(x[:,[2]])
ranges = [[-1,1],[-1,1],[0,2*tpi]]