Variables solve(Variables input) { Variables output = input.clone(); output.r_prime = ( k * (2 * m1 + m2) * (h - input.r) + 2 * m1 * (m1 + m2) * input.r * input.theta_prime * input.theta_prime + 2 * g * m1 * (m1 + m2) * Math.cos(input.theta) + 2 * s * m1 * m2 * input.phi_prime * input.phi_prime * Math.cos(input.theta - input.phi) - k * m2 * (h - input.r) * Math.cos(2 * input.theta - 2 * input.phi)) / (2 * m1 * (m1 + m2)); output.theta_prime = ( k * m2 * (h - input.r) * Math.sin(2 * input.theta - 2 * input.phi) - 2 * g * m1 * (m1 + m2) * Math.sin(input.theta) - 4 * m1 * (m1 + m2) * input.r_prime * input.theta_prime + 2 * s * m1 * m2 * input.phi_prime * input.phi_prime * Math.sin(input.theta - input.phi)) / (2 * m1 * (m1 + m2)); output.phi_prime = (k * (h - input.r) * Math.sin(input.theta - input.phi)) / (s * m1); return output; }