H2Lib  3.0
Data Structures | Typedefs | Functions
dh2matrix.h File Reference
#include "settings.h"
#include "amatrix.h"
#include "krylov.h"
#include "h2matrix.h"
#include "dblock.h"
#include "duniform.h"
#include "dclusterbasis.h"
#include "dclusteroperator.h"

Go to the source code of this file.

Data Structures

struct  _dh2matrix
 Tree structure representing a $\mathcal{DH}^2$-matrix. More...
 

Typedefs

typedef struct _dh2matrix dh2matrix
 $\mathcal{DH}^2$-matrix.
 
typedef dh2matrixpdh2matrix
 Pointer to a dh2matrix.
 
typedef const dh2matrixpcdh2matrix
 Pointer to a constant dh2matrix.
 

Functions

pdh2matrix new_dh2matrix (pdclusterbasis rb, pdclusterbasis cb)
 Create a new empty dh2matrix object. More...
 
pdh2matrix new_uniform_dh2matrix (pdclusterbasis rb, uint rd, pdclusterbasis cb, uint cd)
 Create a new dh2matrix object representing an admissible leaf. More...
 
pdh2matrix new_full_dh2matrix (pdclusterbasis rb, pdclusterbasis cb)
 Create a new dh2matrix object representing an inadmissible leaf. More...
 
pdh2matrix new_super_dh2matrix (pdclusterbasis rb, pdclusterbasis cb, uint rsons, uint csons)
 Create a new dh2matrix object representing a subdivided matrix. More...
 
void update_dh2matrix (pdh2matrix h2)
 Update internal data structures after the sons have been modified, e.g., to recompute desc. More...
 
void del_dh2matrix (pdh2matrix h2)
 Delete a dh2matrix object. More...
 
pdh2matrix clone_dh2matrix (pcdh2matrix dh2, pdclusterbasis rb, pdclusterbasis cb)
 Builds a new dh2matrix with the same structure as dh2 and dclusterbasis rb as directional row cluster basis and cb for the columns. More...
 
size_t getsize_dh2matrix (pcdh2matrix h2)
 Compute the storage size of a dh2matrix, without the cluster bases. More...
 
size_t getnearsize_dh2matrix (pcdh2matrix h2)
 Compute the storage size of the inadmissible leaves of a dh2matrix. More...
 
size_t getfarsize_dh2matrix (pcdh2matrix h2)
 Compute the storage size of the admissible leaves of a dh2matrix. More...
 
size_t gettotalsize_dh2matrix (pcdh2matrix h2)
 Compute the storage size of a dh2matrix, including the cluster bases. More...
 
uint getrows_dh2matrix (pcdh2matrix h2)
 Return the number of rows of a dh2matrix. More...
 
uint getcols_dh2matrix (pcdh2matrix h2)
 Return the number of columns of a dh2matrix. More...
 
pdh2matrix buildfromblock_dh2matrix (pcdblock b, pdclusterbasis rb, pdclusterbasis cb)
 Construct a dh2matrix based on a dblock tree and cluster bases. More...
 
void copynear_dh2matrix (pcamatrix G, pdh2matrix Gh)
 Copy nearfield matrices from a given matrix. More...
 
void fastaddeval_dh2matrix_avector (field alpha, pcdh2matrix h2, pcavector xt, pavector yt)
 Fast matrix-vector multiplication. More...
 
void fastaddevaltrans_dh2matrix_avector (field alpha, pcdh2matrix h2, pcavector xt, pavector yt)
 Fast adjoint matrix-vector multiplication. More...
 
void addeval_dh2matrix_avector (field alpha, pcdh2matrix h2, pcavector x, pavector y)
 Matrix-vector multiplication $y \gets y + \alpha G x$. More...
 
void addevaltrans_dh2matrix_avector (field alpha, pcdh2matrix h2, pcavector x, pavector y)
 Adjoint matrix-vector multiplication $y \gets y + \alpha G^* x$. More...
 
void mvm_dh2matrix_avector (field alpha, bool h2trans, pcdh2matrix h2, pcavector x, pavector y)
 Matrix-vector multiplication $y \gets y + \alpha G x$ or $y \gets y + \alpha G^* x$. More...
 
void addeval_parallel_dh2matrix_avector (field alpha, pcdh2matrix h2, pcavector x, pavector y)
 Matrix-vector multiplication $y \gets y + \alpha G x$, parallelized version. More...
 
void addevaltrans_parallel_dh2matrix_avector (field alpha, pcdh2matrix h2, pcavector x, pavector y)
 Adjoint matrix-vector multiplication $y \gets y + \alpha G^* x$, parallelized version. More...
 
void slowaddeval_dh2matrix_avector (field alpha, pcdh2matrix h2, pcavector x, pavector y)
 Matrix-vector multiplication $y \gets y + \alpha G x$, slow version for debugging, all submatrices are handled independently. More...
 
void slowaddevaltrans_dh2matrix_avector (field alpha, pcdh2matrix h2, pcavector x, pavector y)
 Adjoint matrix-vector multiplication $y \gets y + \alpha G^* x$, slow version for debugging, all submatrices are handled independently. More...
 
void expand_dh2matrix (field alpha, pcdh2matrix h2, pamatrix G)
 Add a $\mathcal{DH}^2$-matrix to a standard matrix, $G \gets G + \alpha \widetilde{G}$. More...
 
pdh2matrixenumerate_dh2matrix (pdh2matrix h2)
 Enumerate all submatrices of a dh2matrix tree. More...
 
void iterate_dh2matrix (pdh2matrix G, uint mname, uint rname, uint cname, uint pardepth, void(*pre)(pdh2matrix G, uint mname, uint rname, uint cname, uint pardepth, void *data), void(*post)(pdh2matrix G, uint mname, uint rname, uint cname, uint pardepth, void *data), void *data)
 Apply functions to all submatrices of a dh2matrix tree. More...
 
real norm2_dh2matrix (pcdh2matrix DH2)
 Approximate the spectral norm $\|H\|_2$ of a matrix $H$. More...
 
real norm2diff_dh2matrix (pcdh2matrix a, pcdh2matrix b)
 Approximate the spectral norm $\|A-B\|_2$ of the difference of two matrices $A$ and $B$. More...
 
void draw_cairo_dh2matrix (cairo_t *cr, pcdh2matrix G, bool storage, bool ranks, uint levels)
 Draw a dh2matrix tree to a cairo surface. More...
 
void resize_coupling_dh2matrix (pdh2matrix A, pdclusteroperator ro, pdclusteroperator co)
 Computes new coupling matrices $S_b$ after the directional cluster basis has been orthogonalized. More...
 
pdh2matrix build_projected_dh2matrix (pcdh2matrix dh2, pdclusterbasis rb, pdclusterbasis cb, pdclusteroperator ro, pdclusteroperator co)
 Builds a new $\mathcal{DH}^2$-matrix approximation of a given $\mathcal{DH}^2$-matrix with new cluster bases. More...
 
pdh2matrix compress_dh2matrix_dh2matrix (pcdh2matrix G, bool rbortho, bool cbortho, pctruncmode tm, real eps)
 Computes a $\mathcal{DH}^2$-matrix approximation of a $\mathcal{DH}^2$-matrix. More...
 
void truncate_dclusterbasis (pdclusterbasis cold, pdclusterbasis cnew, pdclusteroperator co, pdclusteroperator bco, pctruncmode tm, real eps)
 Computes truncated directional cluster basis and save basis change matrices. More...
 

Detailed Description

Author
Steffen Börm