I want to know if there is a good way to compute the following determinant $$D_n= \begin{vmatrix}a_1b_1& a_1b_2 & a_1b_3&\cdots & a_1b_n \\a_1b_2 & a_2b_2 & a_2b_3 &\cdots& a_2b_n \\ a_1b_3 & a_2b_3 & a_3b_3&\cdots& a_3b_n \\\vdots&\vdots&\vdots&\ddots&\vdots\\a_1b_n & a_2b_n & a_3b_n &\cdots&a_nb_n \end{vmatrix} $$
It's not hard to show that $D_n$ can be reduced to the following
$$D_n=a_1 \begin{vmatrix}b_1& a_1b_2-a_2b_1 & a_1b_3-a_3b_1&\cdots & a_1b_n-b_1a_n \\b_2 & 0 & a_2b_3-a_3b_2 &\cdots& a_2b_n-b_2a_n \\ b_3 & 0 & 0&\cdots& a_3b_n-b_3a_n \\\vdots&\vdots&\vdots&\ddots&\vdots\\b_n & 0 & 0&\cdots&0\end{vmatrix}. $$ Then is there a good way to compute this determinant efficiently?
Also, if $n=2$, the corresponding matrix can be written as multiplication by two simpler matrix. But I don't know if one can do similar things in higher dimensions