Welcome to NNCAlib’s Documentation!

About \(\texttt{NNCAlib}\):

NNCA (New Nested Cross Approximation) is an \(\mathcal{O}(N)\) complexity algorithm to construct \(\mathcal{H}^{2}\) matrices. \(\texttt{NNCAlib}\) library constructs a H2 matrix representation of a given matrix using NNCA. Further it demonstrates:

  1. the performance of the fast \(\mathcal{H}^{2}\) matrix vector product using NNCA in 2D, 3D, and nD

  2. the performance of fast kernel based SVM, where the matrix vector products encountered are accelerated using NNCA.

NCA is a technique developed to construct the \(\mathcal{H}^{2}\) matrix approximation of a given matrix arising out of \(N\) body problems. NNCA is a new variant of the Nested Cross Approximation (NCA). NNCA differs from the existing NCAs in the following ways. The existing NCA by Bebendorf et al. is not an analytic method, whereas NNCA is an algebraic method. Another existing NNCA by Zhao et al. is an algebraic method and uses two tree traversals in its algorithm. Whereas NNCA uses a single tree traversal in its algorithm. It has been numerically shown in the NNCA article that NNCA performs computationally better than the existing NCAs.

The code is written in C++ and features an easy-to-use interface.

More about NNCA can be found in the article.

Doc Contents