User:Dcx/sandbox/ripples

in01.cpp

 * $$\hat{C_S}^{-1}=$$ src_covar [num_src_pix*nchan, num_src_pix*nchan]


 * $$F=$$ FourierOperator [2*size(u), num_im_pix]
 * $$1/\sigma^2=$$ C_N_inversenew = CNinvVEC = sigma_squared_inv [2*size(u), 1]


 * $$(C_N=\sigma)$$
 * $$F[i,:]=F[i,:]/\sigma[i]$$ [2*size(u), num_im_pix]
 * $$F^TC_N^{-1}F=F^TF$$ [num_im_pix, num_im_pix], write this matrix in disk


 * $$D_r= $$ obsdata = vis_data, [2*size(u), num_chan]
 * $$D_r[i,:]=D_r[i,:]/\sigma[i]$$ [2*size(u), num_chan]
 * $$F^TC_N^{-1}D=F^TD_r$$ [num_im_pix, num_chan]


 * after reconst_source: $$F[i,:]=\sigma[i]F[i,:]$$ [2*size(u), num_im_pix]

reconst_source

 * $$L=$$ myLensOp [nchan*num_im_pix,nchan*num_src_pix]
 * $$\texttt{FLcols}=F^TC_N^{-1}FL$$ [num_im_pix, num_src_pix*nchan]
 * $$\texttt{LtFL}=\texttt{FLcols}^TL=L^TF^T(C_N^{-1})^TFL$$ [nchan*num_src_pix, nchan*num_src_pix]
 * $$\texttt{LtFL}=\lambda\hat{C_S}^{-1}+L^TF^T(C_N^{-1})^TFL$$ [nchan*num_src_pix, nchan*num_src_pix]


 * $$\texttt{LtFtCNinvD}=(F^TC_N^{-1}D)^TL=D^T(C_N^{-1})^TFL$$ [nchan, num_src_pix*nchan]
 * $$(\texttt{LtFtCNinvD})^T=(D^T(C_N^{-1})^TFL)^T=L^TF^TC_N^{-1}D$$ [num_src_pix*nchan, nchan]


 * solve $$\texttt{LtFL}S=(\texttt{LtFtCNinvD})^T$$ [nchan*num_src_pix, nchan*num_src_pix] [num_src_pix*nchan, nchan]=[num_src_pix*nchan, nchan]
 * i.e. $$(\lambda\hat{C_S}^{-1}+L^TF^T(C_N^{-1})^TFL)S=L^TF^TC_N^{-1}D$$


 * $$S=$$ SMP [num_src_pix*nchan, nchan]