Hierarchical compression

Available customizations

Compression via htool::HMatrixTreeBuilder can be customized in the following aspects:

  1. For admissible condition, i.e., the geometric a priori we have to define admissible bloc, see Hierarchical clustering, the current strategy is:

  2. For low-rank compression, see Low-rank compression, the available strategies are:

Strategies are then given to htool::HMatrixTreeBuilder via its constructor or its function members

  1. htool::HMatrixTreeBuilder::set_admissibility_condition(),

  2. htool::HMatrixTreeBuilder::set_low_rank_generator().

The constructor of htool::HMatrixTreeBuilder also takes the usual parameters for \(\mathcal{H}\)-matrix compression (tolerance for low-rank compression, symmetry, etc.), see its documentation.

Visualisation

Leaves from a htool::HMatrix can be exported to a file with htool::save_leaves_with_rank(). The output is a csv-like file where

  • The first row corresponds to the number of rows, and then the number of columns, of the initial matrix.

  • Then each row corresponds to a leaf of the hierarchical matrix with:

    • the index of its first row,

    • its number of rows,

    • the index of its first column,

    • its number of columns,

    • and its rank if the block is compressed, \(-1\) otherwise.

A script is provided here to visualize a \(\mathcal{H}\)-matrix using this type of file, but feel free to use your own.

Information about compression can also be accessed from a htool::HMatrix with

or directly exported to an output stream with