- double f(double a, double b) {
- return a == 0 ? 0.0 : (1.0 / 6.0) * pow(a, 3) * ((b * sqrt(a * a + b * b) / (a * a)) + log(abs(sqrt(a * a + b * b) / a + b / a)));
- }
- double integral(double lx, double rx, double ly, double ry) {
- return f(rx, ry) - f(rx, ly) - f(lx, ry) + f(lx, ly) + f(ry, rx) - f(ry, lx) - f(ly, rx) + f(ly, lx);
- }
复制代码 |