Suppose we have $6$ constants, $(x_l, x_m, x_u$, $y_l, y_m, y_u)\in \mathbb R^6$ such as:
$$x_l < x_m < x_u$$
$$y_l < y_m < y_u$$
Let $D = \left\{(x, y) : x_l\le x\le x_u, \quad y_l \le y \le y_u, \quad y < x\right\}$
I want to compute:
$$\displaystyle \iint_D (x-y)f(x, x_l, x_m,x_u)f(y,y_l,y_m,y_u)dxdy$$
Where $(a,b,c) \in \mathbb R^3, a<b<c$ and
$\displaystyle f(x, a, b, c) = \begin{cases}\dfrac{2(x-a)}{(c-a)(b-a)} &\text{ if } a \le x < b \\ \dfrac{2(x-c)}{(c-a)(b-c)} &\text{ if }b < x \le c\\ \dfrac2{(c-a)} &\text{ if } x = b\\ 0& \text{ otherwise}\end{cases} $
The following picture is an example of $f$ with $x$ in abscissa where $a = 50, b = 55, c = 60, \dfrac{2}{c - a} = 0.2$. Note that $c-b$ can be different from $b-a$.
Actually, the area under $f$ is always equal to $1$ no matter its arguments (it's a distribution law, but that's not necessary to be known for solving the integral).
I have started to try computing this double integral by separating in several cases:
When $y_l \ge x_u$, this integral is $0$
When $x_m \le y_l \le x_u$ and $y_m \ge x_u$
When $x_l \le y_l \le x_m$ and $y_m \ge x_u$
When...
And so on until all values of the $6$ constants are matched. But that is particularly inefficient and long as it requires the computation of the double integrals a lot of times (see EDIT 1). Is there a quickest way?
EDIT 1: Actually, lot of times here means 20 times as there are 20 possible combinations for the 6 constants.
EDIT 2: if you do tell me there is no quickest way, I will compute the 20 integrals thanks to this related question I posted before this one.
EDIT 3: I tried to write a code in SAGEMath to have a clue about what to find. The final result is quite expanded:
var('x,y,xl,xm,xu,yl,ym,yu')
assume(yl<ym)
assume(ym<yu)
assume(xl<xm)
assume(xm<xu)
assume(xl<x)
assume(x<xu)
assume(yl<y)
assume(y<yu)
C1x = 2/((xu-xl)*(xm-xl))
C2x = 2/((xu-xl)*(xm-xu))
C1y = 2/((yu-yl)*(ym-yl))
C2y = 2/((yu-yl)*(ym-yu))
fx(x,a,b,c) = unit_step(x-a) * unit_step(b-x) * (C1x * x - a*C1x) + unit_step(x - b)*unit_step(c - x)* (C2x* x - C2x*c)
fy(y,a,b,c) = unit_step(y-a) * unit_step(b-y) * (C1y * y - a*C1y) + unit_step(y - b)*unit_step(c - y)* (C2y* y - C2y*c)
expr1 = integrate((x-y)*fx(x,xl,xm,xu)*fy(y,yl,ym,yu), x, max_symbolic(xl, y),xu)
expr2 = integrate(expr1, y, yl, yu)
SAGEMaths returns the following result which is, I guess, correct, if we assume my code is. However that's not a proof but that would be ok if we are certain it's the correct result. What's more annoying is, this is a really complicated form. Just converting it in correct LaTeX would take a huge amount of time for instance.
1/120*((xl - xm)*xu^5*yl*sgn(-xu + yl) - ((xm - xu)*yl*sgn(-xl + yl) - (xl - xu)*yl*sgn(-xm + yl) + (xl - xm)*yl*sgn(-xu + yl))*ym^5 + 5*((xl - xm)*xu*yl*sgn(-xu + yl) - 8*xl^2*xm + 8*xl*xm^2 - 8*(xl - xm)*xu^2 + (xl*xm - xl*xu)*yl*sgn(-xl + yl) - (xl*xm - xm*xu)*yl*sgn(-xm + yl) + 8*(xl^2 - xm^2)*xu)*ym^4 - 10*((xl - xm)*xu^2*yl*sgn(-xu + yl) - 2*xl^3*xm + 2*xl*xm^3 - 2*(xl - xm)*xu^3 + (xl^2*xm - xl^2*xu)*yl*sgn(-xl + yl) - (xl*xm^2 - xm^2*xu)*yl*sgn(-xm + yl) + 2*(xl^3 - xm^3)*xu - 6*(xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl)*ym^3 + 10*((xl - xm)*xu^3*yl*sgn(-xu + yl) + (xl^3*xm - xl^3*xu)*yl*sgn(-xl + yl) - (xl*xm^3 - xm^3*xu)*yl*sgn(-xm + yl) - 4*(xl^3*xm - xl*xm^3 + (xl - xm)*xu^3 - (xl^3 - xm^3)*xu)*yl)*ym^2 + (xl^5*xm - xl^5*xu)*yl*sgn(-xl + yl) - (xl*xm^5 - xm^5*xu)*yl*sgn(-xm + yl) - (20*(xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl^3 - 20*(xl^3*xm - xl*xm^3 + (xl - xm)*xu^3 - (xl^3 - xm^3)*xu)*yl^2 + (2*xl^5*xm - 2*xl^5*xu - 2*(xm - xu)*yl^5 + 10*(xl*xm - xl*xu)*yl^4 - 20*(xl^2*xm - xl^2*xu)*yl^3 + 20*(xl^3*xm - xl^3*xu)*yl^2 - 5*(xl^4*xm - xl^4*xu)*yl)*sgn(-xl + yl) - (2*xl*xm^5 - 2*xm^5*xu - 2*(xl - xu)*yl^5 + 10*(xl*xm - xm*xu)*yl^4 - 20*(xl*xm^2 - xm^2*xu)*yl^3 + 20*(xl*xm^3 - xm^3*xu)*yl^2 - 5*(xl*xm^4 - xm^4*xu)*yl)*sgn(-xm + yl) + (2*(xl - xm)*xu^5 - 5*(xl - xm)*xu^4*yl + 20*(xl - xm)*xu^3*yl^2 - 20*(xl - xm)*xu^2*yl^3 + 10*(xl - xm)*xu*yl^4 - 2*(xl - xm)*yl^5)*sgn(-xu + yl))*ym + (((xm - xu)*sgn(-xl + yl) - (xl - xu)*sgn(-xm + yl) + (xl - xm)*sgn(-xu + yl))*ym^5 - 5*((xl - xm)*xu*sgn(-xu + yl) + (xl*xm - xl*xu)*sgn(-xl + yl) - (xl*xm - xm*xu)*sgn(-xm + yl))*ym^4 + 20*(xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl^3 + 10*((xl - xm)*xu^2*sgn(-xu + yl) + 4*xl^2*xm - 4*xl*xm^2 + 4*(xl - xm)*xu^2 - 4*(xl^2 - xm^2)*xu + (xl^2*xm - xl^2*xu)*sgn(-xl + yl) - (xl*xm^2 - xm^2*xu)*sgn(-xm + yl))*ym^3 - 20*(xl^3*xm - xl*xm^3 + (xl - xm)*xu^3 - (xl^3 - xm^3)*xu)*yl^2 - 10*((xl - xm)*xu^3*sgn(-xu + yl) + 2*xl^3*xm - 2*xl*xm^3 + 2*(xl - xm)*xu^3 - 2*(xl^3 - xm^3)*xu + 6*(xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl + (xl^3*xm - xl^3*xu)*sgn(-xl + yl) - (xl*xm^3 - xm^3*xu)*sgn(-xm + yl))*ym^2 + 5*((xl - xm)*xu^4*sgn(-xu + yl) + 8*(xl^3*xm - xl*xm^3 + (xl - xm)*xu^3 - (xl^3 - xm^3)*xu)*yl + (xl^4*xm - xl^4*xu)*sgn(-xl + yl) - (xl*xm^4 - xm^4*xu)*sgn(-xm + yl))*ym + (xl^5*xm - xl^5*xu - 2*(xm - xu)*yl^5 + 10*(xl*xm - xl*xu)*yl^4 - 20*(xl^2*xm - xl^2*xu)*yl^3 + 20*(xl^3*xm - xl^3*xu)*yl^2 - 10*(xl^4*xm - xl^4*xu)*yl)*sgn(-xl + yl) - ((xm - xu)*ym^5*sgn(-xl + yl) - 5*(xl*xm - xl*xu)*ym^4*sgn(-xl + yl) + 10*(xl^2*xm - xl^2*xu)*ym^3*sgn(-xl + yl) - 10*(xl^3*xm - xl^3*xu)*ym^2*sgn(-xl + yl) + 5*(xl^4*xm - xl^4*xu)*ym*sgn(-xl + yl) - (xl^5*xm - xl^5*xu)*sgn(-xl + yl))*sgn(-xl + ym) - (xl*xm^5 - xm^5*xu - 2*(xl - xu)*yl^5 + 10*(xl*xm - xm*xu)*yl^4 - 20*(xl*xm^2 - xm^2*xu)*yl^3 + 20*(xl*xm^3 - xm^3*xu)*yl^2 - 10*(xl*xm^4 - xm^4*xu)*yl)*sgn(-xm + yl) + ((xl - xu)*ym^5*sgn(-xm + yl) - 5*(xl*xm - xm*xu)*ym^4*sgn(-xm + yl) + 10*(xl*xm^2 - xm^2*xu)*ym^3*sgn(-xm + yl) - 10*(xl*xm^3 - xm^3*xu)*ym^2*sgn(-xm + yl) + 5*(xl*xm^4 - xm^4*xu)*ym*sgn(-xm + yl) - (xl*xm^5 - xm^5*xu)*sgn(-xm + yl))*sgn(-xm + ym) + ((xl - xm)*xu^5 - 10*(xl - xm)*xu^4*yl + 20*(xl - xm)*xu^3*yl^2 - 20*(xl - xm)*xu^2*yl^3 + 10*(xl - xm)*xu*yl^4 - 2*(xl - xm)*yl^5)*sgn(-xu + yl) + ((xl - xm)*xu^5*sgn(-xu + yl) - 5*(xl - xm)*xu^4*ym*sgn(-xu + yl) + 10*(xl - xm)*xu^3*ym^2*sgn(-xu + yl) - 10*(xl - xm)*xu^2*ym^3*sgn(-xu + yl) + 5*(xl - xm)*xu*ym^4*sgn(-xu + yl) - (xl - xm)*ym^5*sgn(-xu + yl))*sgn(-xu + ym))*yu + ((xm - xu)*yl*ym^5*sgn(-xl + yl) - 5*(xl*xm - xl*xu)*yl*ym^4*sgn(-xl + yl) + 10*(xl^2*xm - xl^2*xu)*yl*ym^3*sgn(-xl + yl) - 10*(xl^3*xm - xl^3*xu)*yl*ym^2*sgn(-xl + yl) + 5*(xl^4*xm - xl^4*xu)*yl*ym*sgn(-xl + yl) - (xl^5*xm - xl^5*xu)*yl*sgn(-xl + yl))*sgn(-xl + ym) - ((xl - xu)*yl*ym^5*sgn(-xm + yl) - 5*(xl*xm - xm*xu)*yl*ym^4*sgn(-xm + yl) + 10*(xl*xm^2 - xm^2*xu)*yl*ym^3*sgn(-xm + yl) - 10*(xl*xm^3 - xm^3*xu)*yl*ym^2*sgn(-xm + yl) + 5*(xl*xm^4 - xm^4*xu)*yl*ym*sgn(-xm + yl) - (xl*xm^5 - xm^5*xu)*yl*sgn(-xm + yl))*sgn(-xm + ym) - ((xl - xm)*xu^5*yl*sgn(-xu + yl) - 5*(xl - xm)*xu^4*yl*ym*sgn(-xu + yl) + 10*(xl - xm)*xu^3*yl*ym^2*sgn(-xu + yl) - 10*(xl - xm)*xu^2*yl*ym^3*sgn(-xu + yl) + 5*(xl - xm)*xu*yl*ym^4*sgn(-xu + yl) - (xl - xm)*yl*ym^5*sgn(-xu + yl))*sgn(-xu + ym))/((xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl^2*ym - (xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl*ym^2 + ((xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl - (xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*ym)*yu^2 - ((xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl^2 - (xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*ym^2)*yu) + 1/120*(40*(xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*ym^4 + 20*(xl^3*xm - xl*xm^3 + (xl - xm)*xu^3 - (xl^3 - xm^3)*xu)*yl*ym^2 - 20*(xl^3*xm - xl*xm^3 + (xl - xm)*xu^3 - (xl^3 - xm^3)*xu + 2*(xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl)*ym^3 - 20*((xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl - (xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*ym)*yu^3 + 20*((xl^3*xm - xl*xm^3 + (xl - xm)*xu^3 - (xl^3 - xm^3)*xu)*yl - (xl^3*xm - xl*xm^3 + (xl - xm)*xu^3 - (xl^3 - xm^3)*xu)*ym)*yu^2 - 20*(3*(xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*ym^3 + 2*(xl^3*xm - xl*xm^3 + (xl - xm)*xu^3 - (xl^3 - xm^3)*xu)*yl*ym - (2*xl^3*xm - 2*xl*xm^3 + 2*(xl - xm)*xu^3 - 2*(xl^3 - xm^3)*xu + 3*(xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl)*ym^2)*yu - ((xm - xu)*yl*ym^5 - 5*(xl*xm - xl*xu)*yl*ym^4 - 2*((xm - xu)*yl - (xm - xu)*ym)*yu^5 + 10*(xl^2*xm - xl^2*xu)*yl*ym^3 + 10*((xl*xm - xl*xu)*yl - (xl*xm - xl*xu)*ym)*yu^4 - 10*(xl^3*xm - xl^3*xu)*yl*ym^2 - 20*((xl^2*xm - xl^2*xu)*yl - (xl^2*xm - xl^2*xu)*ym)*yu^3 + 20*((xl^3*xm - xl^3*xu)*yl - (xl^3*xm - xl^3*xu)*ym)*yu^2 + (xl^5*xm - xl^5*xu)*yl - (2*xl^5*xm - 2*xl^5*xu - 5*(xl^4*xm - xl^4*xu)*yl)*ym + (xl^5*xm - xl^5*xu - (xm - xu)*ym^5 + 5*(xl*xm - xl*xu)*ym^4 - 10*(xl^2*xm - xl^2*xu)*ym^3 + 10*(xl^3*xm - xl^3*xu)*ym^2 - 10*(xl^4*xm - xl^4*xu)*yl + 5*(xl^4*xm - xl^4*xu)*ym + (xl^5*xm - xl^5*xu - (xm - xu)*ym^5 + 5*(xl*xm - xl*xu)*ym^4 - 10*(xl^2*xm - xl^2*xu)*ym^3 + 10*(xl^3*xm - xl^3*xu)*ym^2 - 5*(xl^4*xm - xl^4*xu)*ym)*sgn(-xl + ym))*yu + ((xm - xu)*yl*ym^5 - 5*(xl*xm - xl*xu)*yl*ym^4 + 10*(xl^2*xm - xl^2*xu)*yl*ym^3 - 10*(xl^3*xm - xl^3*xu)*yl*ym^2 + 5*(xl^4*xm - xl^4*xu)*yl*ym - (xl^5*xm - xl^5*xu)*yl)*sgn(-xl + ym))*sgn(-xl + yu) + ((xl - xu)*yl*ym^5 - 5*(xl*xm - xm*xu)*yl*ym^4 - 2*((xl - xu)*yl - (xl - xu)*ym)*yu^5 + 10*(xl*xm^2 - xm^2*xu)*yl*ym^3 + 10*((xl*xm - xm*xu)*yl - (xl*xm - xm*xu)*ym)*yu^4 - 10*(xl*xm^3 - xm^3*xu)*yl*ym^2 - 20*((xl*xm^2 - xm^2*xu)*yl - (xl*xm^2 - xm^2*xu)*ym)*yu^3 + 20*((xl*xm^3 - xm^3*xu)*yl - (xl*xm^3 - xm^3*xu)*ym)*yu^2 + (xl*xm^5 - xm^5*xu)*yl - (2*xl*xm^5 - 2*xm^5*xu - 5*(xl*xm^4 - xm^4*xu)*yl)*ym + (xl*xm^5 - xm^5*xu - (xl - xu)*ym^5 + 5*(xl*xm - xm*xu)*ym^4 - 10*(xl*xm^2 - xm^2*xu)*ym^3 + 10*(xl*xm^3 - xm^3*xu)*ym^2 - 10*(xl*xm^4 - xm^4*xu)*yl + 5*(xl*xm^4 - xm^4*xu)*ym + (xl*xm^5 - xm^5*xu - (xl - xu)*ym^5 + 5*(xl*xm - xm*xu)*ym^4 - 10*(xl*xm^2 - xm^2*xu)*ym^3 + 10*(xl*xm^3 - xm^3*xu)*ym^2 - 5*(xl*xm^4 - xm^4*xu)*ym)*sgn(-xm + ym))*yu + ((xl - xu)*yl*ym^5 - 5*(xl*xm - xm*xu)*yl*ym^4 + 10*(xl*xm^2 - xm^2*xu)*yl*ym^3 - 10*(xl*xm^3 - xm^3*xu)*yl*ym^2 + 5*(xl*xm^4 - xm^4*xu)*yl*ym - (xl*xm^5 - xm^5*xu)*yl)*sgn(-xm + ym))*sgn(-xm + yu) - ((xl - xm)*xu^5*yl - 10*(xl - xm)*xu^3*yl*ym^2 + 10*(xl - xm)*xu^2*yl*ym^3 - 5*(xl - xm)*xu*yl*ym^4 + (xl - xm)*yl*ym^5 - 2*((xl - xm)*yl - (xl - xm)*ym)*yu^5 + 10*((xl - xm)*xu*yl - (xl - xm)*xu*ym)*yu^4 - 20*((xl - xm)*xu^2*yl - (xl - xm)*xu^2*ym)*yu^3 + 20*((xl - xm)*xu^3*yl - (xl - xm)*xu^3*ym)*yu^2 - (2*(xl - xm)*xu^5 - 5*(xl - xm)*xu^4*yl)*ym + ((xl - xm)*xu^5 - 10*(xl - xm)*xu^4*yl + 5*(xl - xm)*xu^4*ym + 10*(xl - xm)*xu^3*ym^2 - 10*(xl - xm)*xu^2*ym^3 + 5*(xl - xm)*xu*ym^4 - (xl - xm)*ym^5 + ((xl - xm)*xu^5 - 5*(xl - xm)*xu^4*ym + 10*(xl - xm)*xu^3*ym^2 - 10*(xl - xm)*xu^2*ym^3 + 5*(xl - xm)*xu*ym^4 - (xl - xm)*ym^5)*sgn(-xu + ym))*yu - ((xl - xm)*xu^5*yl - 5*(xl - xm)*xu^4*yl*ym + 10*(xl - xm)*xu^3*yl*ym^2 - 10*(xl - xm)*xu^2*yl*ym^3 + 5*(xl - xm)*xu*yl*ym^4 - (xl - xm)*yl*ym^5)*sgn(-xu + ym))*sgn(-xu + yu))/((xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl^2*ym - (xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl*ym^2 + ((xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl - (xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*ym)*yu^2 - ((xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*yl^2 - (xl^2*xm - xl*xm^2 + (xl - xm)*xu^2 - (xl^2 - xm^2)*xu)*ym^2)*yu)

