# hm-toolbox
**Repository Path**: alphakappa/hm-toolbox
## Basic Information
- **Project Name**: hm-toolbox
- **Description**: Toolbox for HODLR and HSS matrices in MATLAB
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-03-20
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Hierarchical matrix toolbox
[](https://travis-ci.org/numpi/hm-toolbox)
The hm-toolbox is a toolbox implementing the arithmetic of HODLR and HSS matrices in MATLAB.
The HODLR case is handled in the @hodlr class, and correspond to H-matrices with partitioning
recursively done in 2 x 2 blocks, where the off-diagonal blocks are of low-rank. The HSS
arithmetic uses the same partitioning (with nested bases), and is available through the
@hss class.
Routines to compute matrix functions [1] and to solve matrix equations are included [1,2].
# Installation instructions
To install the toolbox download the latest revision from Github by running
```
git clone https://github.com/numpi/hm-toolbox.git
```
or downloading the ZIP file from the webpage [github.com/numpi/hm-toolbox](https://github.com/numpi/hm-toolbox).
Rename the folder to hm-toolbox if needed. Then, add it to your MATLAB path by running
```Matlab
>> addpath /path/to/hm-toolbox
```
You are now ready to create new @hodlr and @hss objects. Check some examples in the
examples/ folder.
## Octave compatibility
The toolbox is compatible with GNU Octave >= 4.4. The easiest way to get a
recent version of Octave on Linux is to enable Flatpak following the instructions
[here](https://flatpak.org/setup/), and then run the command
```
flatpak install flathub org.octave.Octave
```
You can then run Octave from the menu or by typing flatpak run org.octave.Octave in a terminal.
Some functions require dependencies found in additional packages, namely octave-control
(for the solvers of Lyapunov and Sylvester equations) and octave-statistics (for
the ACA code that is used inside the HODLR handle constructor).
# References
1. Massei, S., Palitta, D., & Robol, L. (2018). Solving Rank-Structured Sylvester and Lyapunov Equations. SIAM Journal on Matrix Analysis and Applications, 39(4), 1564-1590.
2. Kressner, D., Massei, S., & Robol, L. (2019). Low-rank updates and a divide-and-conquer method for linear matrix equations. SIAM Journal on Scientific Computing 41 (2), A848-A876.
3. Kressner, D., Massei, S., & Robol, L. (2019). hm-toolbox: Matlab software for HODLR and HSS matrices, arXiv preprint arXiv:1909.07909.