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体问题实现快速矩阵-向量乘的新代数算法,即nHODLRdD(嵌套算法)和s-nHODLRdD(半嵌套或部分嵌套算法)。nHODLRdD和s-nHODLRdD算法分别是基于我们先前提出的快速算法——d维层次化非对角低秩矩阵(HODLRdD)的嵌套版本与半嵌套版本,其中可容许簇为特定远场簇和共享顶点簇。我们借助代数低秩逼近技术(ACA和NCA),以黑盒(核无关)方式开发了这两种算法。所提出层次化结构的初始化时间呈拟线性增长。利用nHODLRdD和s-nHODLRdD层次化结构,可分别实现来自N体问题的稠密矩阵与向量的乘法,其复杂度为$\mathcal{O}(pN)$和$\mathcal{O}(pN \log(N))$,其中$p$随$N$的增长至多为多对数级。二维与三维($d=2,3$)的数值结果表明,所提出的nHODLRdD算法在矩阵-向量积时间与空间复杂度方面可与d维代数快速多极方法相媲美。本文提出的算法采用OpenMP并行化的C++实现,代码开源在\url{https://github.com/riteshkhan/nHODLRdD/}。