diff --git a/src/FISTA_secondOrder.m b/src/FISTA_secondOrder.m
index 8501cc74bd972b90bb1f3a0de2ed6f05ec584c55..7162c415d26a4e0b1b7d3f6fdbbfbb0f4e8cf14d 100644
--- a/src/FISTA_secondOrder.m
+++ b/src/FISTA_secondOrder.m
@@ -1,176 +1,170 @@
-function [F, nr_of_iterations, Resnorm] = FISTA_secondOrder(G, sampling, kappa, P_OmegaC, z, kmax)
-%% L1SCHEME:
-%  INPUT:   farfield - far field matrix
-%           kappa - wave number
-%           Omega - part of [0,2pi] where the far field pattern is unkown
-%           z - 2xm-vector containing the centers of the circles describing 
-%               the a priori information on the source locations
-%           r - 1xm-vector containing the radii of the circles describing 
-%               the a priori information on the source locations
-%  OUTPUT:  f - cell array containing the m source components
-%  EXAMPLE USAGE: 
-
-nr_of_sources = size(z,2);
-
-
-% split and complete far field using iterated soft shrinkage
-landweberparam.kmax = kmax;  % max nr of iterations of iterated soft shrinkage algorithm
-landweberparam.tol = 1e-3; % tolerance to be met in the Landweber iteration (stopping criterion)
-landweberparam.omega = 1/(nr_of_sources+1); % relaxation parameter in the Landweber itertation
-softshrinkparam.mu = 1e-3; % threshold parameter in the soft shrinkage operatore
-softshrinkparam.type = 'complex'; % type of soft-shrinkage to be used ('real'/'complex')
-
-softshrinkparam.weights = landweberparam.omega * softshrinkparam.mu;
-
-% fast iteraitve thresholding algorithm:
-
-[F, nr_of_iterations, Resnorm] = fista_secondOrder(G, sampling, kappa, P_OmegaC, z, landweberparam, softshrinkparam);
-
-indOfInterest = sub2ind([nr_of_sources,nr_of_sources],1:nr_of_sources,1:nr_of_sources);
-
-F =  {mysum(F, nr_of_sources^2), F{indOfInterest}};
-
-end
-
-function [F, nr_of_iterations, Resnorm] = fista_secondOrder(G, sampling, kappa, P_OmegaC, z, landweberparam, softshrinkparam)
-%% FISTA:
-%  INPUT:   umeas - far field pattern
-%           kappa - wave number
-%           Omega - 
-%           z - 2xnr_of_sources vector containing presumed source positions
-%           landweberparam.Nmax -- max nr of iterations
-%           landweberparam.tol -- tolerance to be met in the Landweber iteration
-%           landweberparam.omega -- relaxation parameter in the Landweber itertation
-%           softshrinkparam.mu -- threshold parameter in the soft shrinkage operatore
-%           softshrinkparam.type -- type of soft-shrinkage to be used ('real'/'complex')
-%  OUTPUT:  f - cell array containing split far field components
-%           
-%  EXAMPLE USAGE: 
-
-
-% initialize some variables
-nxhat = sampling.nxhat;
-nd = sampling.nd;
-
-nr_of_sources = size(z,2);
-
-[X,Y] = meshgrid(1:nr_of_sources, 1:nr_of_sources);
-indices = [reshape(X,nr_of_sources^2,1),reshape(Y,nr_of_sources^2,1)]; % (J^2+1)*2-array that indicates the finite dimensional subspace where the corresponding block should lie in.
-% (0,0) indicates $V_\Omega$; (j,l) indicates $V_{N_l,N_j}$, i.e.
-% cutoff-parameter N_l in row direction und N_j in column direction
-clear X Y
-
-% initialize some more variables
-X = cell(nr_of_sources^2,1);  % columns of B correspond to the vectors b_j in the manuscript
-for iters=1:nr_of_sources^2
-    X{iters} = zeros(nxhat,nd);
-end
-KstarRes = cell(nr_of_sources^2,1);
-iteri = 1;  % iteration counter
-Resnorm = zeros(landweberparam.kmax, 1);  % norm of the residual in each step of the iteration
-Resnorm(1) = landweberparam.tol+1;  % just needed to get iteration started; will be removed later
-
-Y = X; Xalt = X;
-Yhelp = Y;
-talt = 1;
-
-% disp('FISTA Algorithm starts.')
-% tic
-
-% fast iterated soft shrinkage
-while (Resnorm(iteri) > landweberparam.tol) && (iteri < landweberparam.kmax)
-   
-    % apply operator K
-    for iters = 1 : nr_of_sources^2
-       incidentDir = indices(iters,1);
-       detectorPos = indices(iters,2);
-       Yhelp{iters} = fft2(translOp(ifft2(Y{iters})*(nxhat*nd),sampling,-z(:,incidentDir),-z(:,detectorPos), kappa))/(nxhat*nd);
-       clear incidentDir detectorPos
-    end    
-    KB = ifft2(mysum(Yhelp,nr_of_sources^2))*(nxhat*nd);
-    KB = KB .* P_OmegaC;  % apply P_OmegaC
-    
-    % evaluate residual
-    Res = G - KB;
-    
-    % apply operator K^*
-    Res = Res .* P_OmegaC;  % apply P_OmegaC
-    Res = fft2(Res)/(nxhat*nd);
-    for iters = 1 : nr_of_sources^2
-       incidentDir = indices(iters,1);
-       detectorPos = indices(iters,2);
-       KstarRes{iters} = fft2(translOp(ifft2(Res)*(nxhat*nd),sampling,z(:,incidentDir),z(:,detectorPos),kappa))/(nxhat*nd);
-       clear incidentDir detectorPos
-    end
-    
-    X = myplus(Y, myprod(landweberparam.omega,KstarRes,nr_of_sources^2),nr_of_sources^2);
-    
-    % apply soft shrinkage
-    X = softshrink(X, softshrinkparam.weights, softshrinkparam.type, nr_of_sources^2);
-    
-    t = (1+sqrt(1+4*talt^2))/2;
-    
-    Y = myplus(X,myprod((talt-1)/t,(myplus(X,myprod(-1,Xalt,nr_of_sources^2),nr_of_sources^2)),nr_of_sources^2),nr_of_sources^2);
-    
-    Xalt = X;
-    talt = t;
-    
-    Resnorm(iteri+1) = norm(Res);  % HS norm of residual    
-    iteri = iteri+1;  % update iteration counter
-    
-end
-
-% toc
-% disp('FISTA Algorithm finished.')
-% 
-% fprintf('\n\nNumber of iterations: %i\n', iteri);
-
-nr_of_iterations = iteri;
-
-%% shift back and compute inverse Fourier transform
-
-F = cell(nr_of_sources^2, 1);  % cell array containing splitted far field components
-for iters = 1 : nr_of_sources^2
-    Fhelp = ifft2(X{iters})*(nxhat*nd);
-    incidentDir = indices(iters,1);
-    detectorPos = indices(iters,2);
-    F{iters} = translOp(Fhelp,sampling,-z(:,incidentDir),-z(:,detectorPos),kappa);
-    clear incidentDir detectorPos
-end
-
-
-end
-
-
-
-function Bsum = mysum(B, nr_of_sources)
-
-Bsum = B{1};
-for iterk = 2:nr_of_sources
-    
-    Bsum = Bsum + B{iterk};
-    
-end
-end
-
-
-function Z = myplus(X, Y, nr_of_sources)
-
-Z = cell(nr_of_sources, 1);
-for iterk = 1:nr_of_sources
-    
-    Z{iterk} = X{iterk} + Y{iterk};
-    
-end
-end
-
-
-function Z = myprod(alpha, X, nr_of_sources)
-
-Z = cell(nr_of_sources, 1);
-for iterk = 1:nr_of_sources
-    
-    Z{iterk} = alpha*X{iterk};
-    
-end
-end
\ No newline at end of file
+function [F, nr_of_iterations, Res] = FISTA_secondOrder(G, sampling, kappa, P_OmegaC, z, kmax)
+
+% Solves the l1xl1 minimization problem for the splitting and/ or completion problem in Born
+% approximation of order 2 numerically by using the FISTA algorithm.
+%
+% INPUT:    G           Observed far field matrix, nxhat*nd-array.
+%           sampling    Structure containing information about the discretization.
+%           kappa       Wave number, >0.
+%           P_OmegaC    Projection operator corresponding to observable part Omega^C, nxhat*nd-array
+%                       with only 0- and 1-entries, only 1-entries for splitting only.
+%           z           Positions of the individual scatterers, 2*nr_of_sources-array,
+%                       2*1-array for completion only.
+%           kmax        Maximal number of FISTA iterations for stopping criterion.
+%
+% OUTPUT:   F                   Structure containing numerical reconstructions for solutions of
+%                               l1xl1 minimization problem.
+%           nr_of_iterations    Number of performed FISTA iterations.
+%           Res                 Residuum-norms for all FISTA iterations, vector of length nr_of_iterations.
+%
+% *********************************************************************************************************
+
+nr_of_sources = size(z,2);
+
+% split and complete far field using iterated soft shrinkage:
+landweberparam.kmax = kmax;  % max nr of iterations of iterated soft shrinkage algorithm
+landweberparam.tol = 1e-3; % tolerance to be met in the Landweber iteration (stopping criterion)
+landweberparam.omega = 1/(nr_of_sources+1); % relaxation parameter in the Landweber itertation
+softshrinkparam.mu = 1e-3; % threshold parameter in the soft shrinkage operatore
+softshrinkparam.type = 'complex'; % type of soft-shrinkage to be used ('real'/'complex')
+
+softshrinkparam.weights = landweberparam.omega * softshrinkparam.mu;
+
+% fast iteraitve thresholding algorithm:
+
+[F, nr_of_iterations, Res] = fista_secondOrder(G, sampling, kappa, P_OmegaC, z, landweberparam, softshrinkparam);
+
+indOfInterest = sub2ind([nr_of_sources,nr_of_sources],1:nr_of_sources,1:nr_of_sources);
+
+F =  {mysum(F, nr_of_sources^2), F{indOfInterest}};
+
+end
+
+
+function [F, nr_of_iterations, Res] = fista_secondOrder(G, sampling, kappa, P_OmegaC, z, landweberparam, softshrinkparam) 
+
+% initialize some variables:
+nxhat = sampling.nxhat;
+nd = sampling.nd;
+
+nr_of_sources = size(z,2);
+
+[X,Y] = meshgrid(1:nr_of_sources, 1:nr_of_sources);
+indices = [reshape(X,nr_of_sources^2,1),reshape(Y,nr_of_sources^2,1)]; % (J^2+1)*2-array that indicates the finite dimensional subspace where the corresponding block should lie in.
+% (0,0) indicates $V_\Omega$; (j,l) indicates $V_{N_l,N_j}$, i.e.
+% cutoff-parameter N_l in row direction und N_j in column direction
+clear X Y
+
+% initialize some more variables:
+X = cell(nr_of_sources^2,1);  % columns of B correspond to the vectors b_j in the manuscript
+for iters=1:nr_of_sources^2
+    X{iters} = zeros(nxhat,nd);
+end
+KstarRes = cell(nr_of_sources^2,1);
+iteri = 1;  % iteration counter
+Res = zeros(landweberparam.kmax, 1);  % norm of the residual in each step of the iteration
+Res(1) = landweberparam.tol+1;  % just needed to get iteration started; will be removed later
+
+Y = X; Xalt = X;
+Yhelp = Y;
+talt = 1;
+
+% disp('FISTA Algorithm starts.')
+% tic
+
+% fast iterated soft shrinkage:
+while (Res(iteri) > landweberparam.tol) && (iteri < landweberparam.kmax)
+   
+    % apply operator K:
+    for iters = 1 : nr_of_sources^2
+       incidentDir = indices(iters,1);
+       detectorPos = indices(iters,2);
+       Yhelp{iters} = fft2(translOp(ifft2(Y{iters})*(nxhat*nd),sampling,-z(:,incidentDir),-z(:,detectorPos), kappa))/(nxhat*nd);
+       clear incidentDir detectorPos
+    end    
+    KB = ifft2(mysum(Yhelp,nr_of_sources^2))*(nxhat*nd);
+    KB = KB .* P_OmegaC;  % apply P_OmegaC
+    
+    % evaluate residual:
+    Res = G - KB;
+    
+    % apply operator K^*:
+    Res = Res .* P_OmegaC;  % apply P_OmegaC
+    Res = fft2(Res)/(nxhat*nd);
+    for iters = 1 : nr_of_sources^2
+       incidentDir = indices(iters,1);
+       detectorPos = indices(iters,2);
+       KstarRes{iters} = fft2(translOp(ifft2(Res)*(nxhat*nd),sampling,z(:,incidentDir),z(:,detectorPos),kappa))/(nxhat*nd);
+       clear incidentDir detectorPos
+    end
+    
+    X = myplus(Y, myprod(landweberparam.omega,KstarRes,nr_of_sources^2),nr_of_sources^2);
+    
+    % apply soft shrinkage:
+    X = softshrink(X, softshrinkparam.weights, softshrinkparam.type, nr_of_sources^2);
+    
+    t = (1+sqrt(1+4*talt^2))/2;
+    
+    Y = myplus(X,myprod((talt-1)/t,(myplus(X,myprod(-1,Xalt,nr_of_sources^2),nr_of_sources^2)),nr_of_sources^2),nr_of_sources^2);
+    
+    Xalt = X;
+    talt = t;
+    
+    Res(iteri+1) = norm(Res);  % HS norm of residual    
+    iteri = iteri+1;  % update iteration counter
+    
+end
+
+% toc
+% disp('FISTA Algorithm finished.')
+% 
+% fprintf('\n\nNumber of iterations: %i\n', iteri);
+
+nr_of_iterations = iteri;
+
+% shift back and compute inverse Fourier transform:
+
+F = cell(nr_of_sources^2, 1);  % cell array containing splitted far field components
+for iters = 1 : nr_of_sources^2
+    Fhelp = ifft2(X{iters})*(nxhat*nd);
+    incidentDir = indices(iters,1);
+    detectorPos = indices(iters,2);
+    F{iters} = translOp(Fhelp,sampling,-z(:,incidentDir),-z(:,detectorPos),kappa);
+    clear incidentDir detectorPos
+end
+
+
+end
+
+
+function Bsum = mysum(B, nr_of_sources)
+
+Bsum = B{1};
+for iterk = 2:nr_of_sources
+    
+    Bsum = Bsum + B{iterk};
+    
+end
+end
+
+
+function Z = myplus(X, Y, nr_of_sources)
+
+Z = cell(nr_of_sources, 1);
+for iterk = 1:nr_of_sources
+    
+    Z{iterk} = X{iterk} + Y{iterk};
+    
+end
+end
+
+
+function Z = myprod(alpha, X, nr_of_sources)
+
+Z = cell(nr_of_sources, 1);
+for iterk = 1:nr_of_sources
+    
+    Z{iterk} = alpha*X{iterk};
+    
+end
+end