This article presents two new algebraic algorithms to perform fast matrix-vector product for $N$-body problems in $d$ dimensions, namely nHODLR$d$D (nested algorithm) and s-nHODLR$d$D (semi-nested or partially nested algorithm). The nHODLR$d$D and s-nHODLR$d$D algorithms are the nested and semi-nested version of our previously proposed fast algorithm, the hierarchically off-diagonal low-rank matrix in $d$ dimensions (HODLR$d$D), respectively, where the admissible clusters are the certain far-field and the vertex-sharing clusters. We rely on algebraic low-rank approximation techniques (ACA and NCA) and develop both algorithms in a black-box (kernel-independent) fashion. The initialization time of the proposed hierarchical structures scales quasi-linearly. Using the nHODLR$d$D and s-nHODLR$d$D hierarchical structures, one can perform the multiplication of a dense matrix (arising out of $N$-body problems) with a vector that scales as $\mathcal{O}(pN)$ and $\mathcal{O}(pN \log(N))$, respectively, where $p$ grows at most poly logarithmically with $N$. The numerical results in $2$D and $3$D $(d=2,3)$ show that the proposed nHODLR$d$D algorithm is competitive to the algebraic Fast Multipole Method in $d$ dimensions with respect to the matrix-vector product time and space complexity. The C++ implementation with OpenMP parallelization of the proposed algorithms is available at \url{https://github.com/riteshkhan/nHODLRdD/}.
翻译:本文提出了两种新型代数算法,用于实现$d$维$N$体问题中的快速矩阵-向量乘积,即nHODLR$d$D(嵌套算法)和s-nHODLR$d$D(半嵌套或部分嵌套算法)。nHODLR$d$D和s-nHODLR$d$D算法分别是我们先前提出的快速算法——$d$维分层非对角低秩矩阵(HODLR$d$D)的嵌套和半嵌套版本,其中可容许簇为特定远场簇和共享顶点簇。我们依赖代数低秩近似技术(ACA和NCA),以黑箱(核无关)方式开发这两种算法。所提出的分层结构的初始化时间呈拟线性增长。利用nHODLR$d$D和s-nHODLR$d$D分层结构,可分别以$\mathcal{O}(pN)$和$\mathcal{O}(pN \log(N))$的复杂度实现由$N$体问题产生的稠密矩阵与向量的乘法,其中$p$随$N$至多以多对数方式增长。二维与三维($d=2,3$)的数值结果表明,所提出的nHODLR$d$D算法在矩阵-向量乘积时间及空间复杂度方面,与$d$维代数快速多极子方法具有竞争力。本文算法的C++实现(含OpenMP并行化)可在\url{https://github.com/riteshkhan/nHODLRdD/}获取。