# A Scalable and Consistent Method for Multi-Component Gravity-Gradient Data Processing
## 2 Methodology
### Computational Performance  
To quantify the computational performance of our method, we use the total number of flops associated with the required matrix operations ([38] p. 12). We also refer the reader to ([39] Section 7) for a detailed explanation of the flops computation presented below. Previously, we established that the total number of observations and the total number of equivalent sources are given by \(N_{t}=NL\), where \(L\) is the number of measured gravity-gradient components (see Equations (15)-(18)) and \(N\) the number of observation points of each component. We now determine the total number of flops required to solve the normal equations (Equation (11)) using the classical Cholesky decomposition approach ([38] p. 262); see also ([39] Equation (27)):  
\[f_{\text{classical}}=\frac{7}{3}(NL)^{3}+4(NL)^{2}. \tag{20}\]  
The number of flops associated with the standard GGLS algorithm without exploring the structure of matrix \(\mathbf{H}\) (see ([38] Section 11.3) and ([37] p. 165); see also ([39] Equation (28)) is:  
\[f_{CGLS}=L\Big{(}2N^{2}+it(4N^{2}+4N)\Big{)}, \tag{21}\]  
where \"\(it\)\" is the number of iterations. If we now define the number of flops associated with the GGLS algorithm by considering that the matrix-vector products are efficiently computed as fast discrete convolutions, and the resulting flops for our method are given by:  
\[f_{our}=(\;L(\;\kappa(16N)\;\log_{2}(4N)+26N+it(\kappa(16N)\log_{2}(4N)+58N)), \tag{22}\]  
where \(\kappa=5\). We refer the reader to ([39], Section 7.7, Equation (67) and Algorithm 7) for a detailed explanation of the flops computation underlying the method, which has been adapted in this work to handle gradient-gravity data. It is important to note that we did not consider the flops associated with data transformations (Algorithm 1). Input: \(\mathbf{g}^{o}\) (defined in the data system), angle \(\psi\) (Figure 1)  
```
1: Transform the observed data from north-east system to data system (Equation (12)). 2: Interpolate the rotated data to produce a dataset closer to a regular grid (optional). 3: Estimate the discrete equivalent layer from the interpolated data by combining the Algorithm standard Conjugate Gradient Least Squares (CGLS) method ([37] p. 166) and the fast discrete convolution approach. 4: Compute the gravity-gradient data produced by the equivalent layer (predicted data). 5: Transform the observed and predicted data from data system to north-east system using Equation (14). ```  
**Algorithm 1** Convolutional equivalent-layer for gravity-gradient data in rotated coordinates. Figure 2 shows the number of flops using the classical (black line), standard CLGS (red line), and our method (blue line). The latter two methods were computed considering \(it=50\) and \(5\) components. This result demonstrates the excellent efficiency of our convolutional equivalent-layer method for processing gravity-gradient data. Note that the number of flops required to estimate the mass distribution by our method decreased by approximately \(8\) orders of magnitude compared with the classical approach. Figure 3 shows the runtime to solve the linear system with the maximum value of \(N\) equal to 10,000 points and \(L=5\) components, i.e., \(N_{t}\) 50,000 gravity-gradient data using the classical (black line), standard CLGS (red line), and our method (blue line). The quantity of data for runtime comparison is limited by using the classical equivalent layer technique on a processor Intel(R) Core(TM) i9-9880H CPU @ 2.30 GHz with 16 GB of RAM memory. We emphasize that the values of \(it\) (in Figure 2) and the maximum number of observations \(N\) (in Figure 3) were selected arbitrarily and serve solely illustrative purposes. These choices aim to highlight the scalability behavior of the methods.