# Include <cstdio> # include <cmath> double A, B, l, R; // The double F (Double X) function used by the Simpson formula) {return SQRT (B * B * (_x * x/(A * A);} // three-point Simpson method. F is required to be a global function Double Simpson (double A, double B) {double C = a + (B-a)/2; Return (f () + 4 * F (c) + F (B) * (B-a)/6;} // adaptive Simpson formula (recursive process ). We know the three-point Simpson value of the entire interval [a, B] Adouble Asr (double A, double B, double EPS, double A) {double C = a + (B-) /2; double L = Simpson (a, c), r = Simpson (C, B); If (FABS (L + R-A) <= 15 * EPS) return L + R + (L + R-A)/15.0; return Asr (A, C, EPS/2, L) + Asr (C, B, EPS/2, r);} // adaptive Simpson formula (main process) Double Asr (double A, double B, double EPS) {return Asr (a, B, EPS, Simpson (, b);} double solve () {return Asr (L, R, 1e-6) * 2;} int main () {int t; scanf ("% d ", & T); While (t --) {double ans; scanf ("% lf", & A, & B, & L, & R ); ans = solve (); printf ("%. 3lf \ n ", ANS);} return 0 ;}