H2Lib  3.0
Data Structures | Typedefs | Functions
hmatrix.h File Reference
#include <cairo.h>
#include "amatrix.h"
#include "krylov.h"
#include "factorizations.h"
#include "block.h"
#include "rkmatrix.h"
#include "settings.h"
#include "eigensolvers.h"
#include "sparsematrix.h"

Go to the source code of this file.

Data Structures

struct  _hmatrix
 Representation of $\mathcal{H}$-matrices. More...
 

Typedefs

typedef struct _hmatrix hmatrix
 Representation of a hierarchical matrix.
 
typedef hmatrixphmatrix
 Pointer to a hmatrix object.
 
typedef const hmatrixpchmatrix
 Pointer to constant hmatrix object.
 

Functions

phmatrix init_hmatrix (phmatrix hm, pccluster rc, pccluster cc)
 Initialize a hmatrix object. More...
 
void uninit_hmatrix (phmatrix hm)
 Uninitialize a hmatrix object. More...
 
phmatrix new_hmatrix (pccluster rc, pccluster cc)
 Create a new hmatrix object. More...
 
phmatrix new_rk_hmatrix (pccluster rc, pccluster cc, uint k)
 Create a new hmatrix object representing a low-rank matrix. More...
 
phmatrix new_full_hmatrix (pccluster rc, pccluster cc)
 Create a new hmatrix object representing a standard dense matrix. More...
 
phmatrix new_super_hmatrix (pccluster rc, pccluster cc, uint rsons, uint csons)
 Create a new hmatrix object representing a subdivided matrix. More...
 
phmatrix clone_hmatrix (pchmatrix src)
 Creates a clone of an existing hmatrix. More...
 
phmatrix clonestructure_hmatrix (pchmatrix src)
 Clones the structure of an existing hmatrix. More...
 
void update_hmatrix (phmatrix hm)
 Complete the initialisation of a hmatrix object. More...
 
void del_hmatrix (phmatrix hm)
 Delete a hmatrix object. More...
 
void ref_hmatrix (phmatrix *ptr, phmatrix hm)
 Set a pointer to a hmatrix object, increase its reference counter, and decrease reference counter of original pointer target. More...
 
void unref_hmatrix (phmatrix hm)
 Reduce the reference counter of a hmatrix object. More...
 
size_t getsize_hmatrix (pchmatrix hm)
 Get size of a given hmatrix object. More...
 
size_t getnearsize_hmatrix (pchmatrix hm)
 Get size of the nearfield part of a given hmatrix object. More...
 
size_t getfarsize_hmatrix (pchmatrix hm)
 Get size of the farfield part of a given hmatrix object. More...
 
uint getrows_hmatrix (pchmatrix a)
 Get the number of rows of a hmatrix $A$. More...
 
uint getcols_hmatrix (pchmatrix a)
 Get the number of columns of a hmatrix $A$. More...
 
void clear_hmatrix (phmatrix hm)
 Set a hmatrix to zero by clearing all far- and nearfield matrices. More...
 
void clear_upper_hmatrix (phmatrix hm, bool strict)
 Set the upper triangular part of a hmatrix to zero by clearing all far- and nearfield matrices. More...
 
void copy_hmatrix (pchmatrix src, phmatrix trg)
 Copy a matrix src to an existing matrix dst. More...
 
void identity_hmatrix (phmatrix hm)
 Fill a hmatrix with an identity matrix. More...
 
void random_hmatrix (phmatrix hm, uint kmax)
 Fill a hmatrix with random field values. The maximal rank for admissible leaves is determined by kmax. More...
 
phmatrix build_from_block_hmatrix (pcblock b, uint k)
 Build an hmatrix object from a block tree using a given local rank. More...
 
pblock build_from_hmatrix_block (pchmatrix G)
 Build an block tree from an hmatrix. More...
 
void mvm_hmatrix_avector (field alpha, bool atrans, pchmatrix a, pcavector x, pavector y)
 Matrix-vector multiplication $y \gets y + \alpha A x$ or $y \gets y + \alpha A^* x$. More...
 
void fastaddeval_hmatrix_avector (field alpha, pchmatrix hm, pcavector xp, pavector yp)
 Matrix-vector multiplication $y \gets y + \alpha A x$. More...
 
void addeval_hmatrix_avector (field alpha, pchmatrix hm, pcavector x, pavector y)
 Matrix-vector multiplication $y \gets y + \alpha A x$. More...
 
void fastaddevaltrans_hmatrix_avector (field alpha, pchmatrix hm, pcavector xp, pavector yp)
 Adjoint matrix-vector multiplication $y \gets y + \alpha A^* x$. More...
 
void addevaltrans_hmatrix_avector (field alpha, pchmatrix hm, pcavector x, pavector y)
 Adjoint matrix-vector multiplication $y \gets y + \alpha A^* x$. More...
 
void fastaddevalsymm_hmatrix_avector (field alpha, pchmatrix hm, pcavector xp, pavector yp)
 Matrix-vector multiplication $y \gets y + \alpha A x$ with symmetric matrix $A$. More...
 
void addevalsymm_hmatrix_avector (field alpha, pchmatrix hm, pcavector x, pavector y)
 Matrix-vector multiplication $y \gets y + \alpha A x$ with symmetric matrix $A$. More...
 
phmatrixenumerate_hmatrix (pcblock b, phmatrix hm)
 Enumerate hmatrix according to block tree. More...
 
real norm2_hmatrix (pchmatrix H)
 Approximate the spectral norm $\|H\|_2$ of a matrix $H$. More...
 
real norm2diff_hmatrix (pchmatrix a, pchmatrix b)
 Approximate the spectral norm $\|A-B\|_2$ of the difference of two matrices $A$ and $B$. More...
 
void write_cdf_hmatrix (pchmatrix G, const char *name)
 Write a matrix into a NetCDF file. More...
 
void write_cdfpart_hmatrix (pchmatrix G, int nc_file, const char *prefix)
 Write a matrix into a NetCDF file. More...
 
phmatrix read_cdf_hmatrix (const char *name, pccluster rc, pccluster cc)
 Read a matrix from a NetCDF file. More...
 
phmatrix read_cdfpart_hmatrix (int nc_file, const char *prefix, pccluster rc, pccluster cc)
 Read a matrix from a NetCDF file. More...
 
void write_cdfcomplete_hmatrix (pchmatrix G, const char *name)
 Write hmatrix to NetCDF file, including cluster trees. More...
 
phmatrix read_cdfcomplete_hmatrix (const char *name)
 Read hmatrix from NetCDF file, including cluster trees. More...
 
void write_hlib_hmatrix (pchmatrix G, const char *filename)
 Write a matrix into an ASCII file in the old HLib format. More...
 
phmatrix read_hlib_hmatrix (const char *filename)
 Read a matrix from an ASCII file in the old HLib format. More...
 
phmatrix read_hlibsymm_hmatrix (const char *filename)
 Read a symmetric matrix from an ASCII file in the old HLib format. More...
 
void draw_cairo_hmatrix (cairo_t *cr, pchmatrix hm, bool storage, uint levels)
 Draw a hierarchical matrix. More...
 
void copy_sparsematrix_hmatrix (psparsematrix sp, phmatrix hm)
 Copy entries of a sparsematrix into a hierarchical matrix. More...
 

Detailed Description

Author
Steffen Börm