H2Lib  3.0
Functions
h2update

Functions for computing a low rank update for an h2matrix. More...

Functions

real norm2_rkupdate_uniform (puniform u, uint k)
 Computes the Euclidean norm of the extended coupling matrix of the low rank update multiplied by weight matrices. More...
 
real normfrob_rkupdate_uniform (puniform u, uint k)
 Computes the Frobenius norm of the extended coupling matrix of the low rank update multiplied by weight matrices. More...
 
void rkupdate_h2matrix (prkmatrix R, ph2matrix Gh2, pclusteroperator rwf, pclusteroperator cwf, ptruncmode tm, real eps)
 Computes the low rank update $ G \gets G + R $. More...
 
pclusteroperator prepare_row_clusteroperator (pclusterbasis rb, pclusterbasis cb, ptruncmode tm)
 Prepares the weights of the row clusterbasis used by rkupdate_h2matrix and the arithmetic functions in h2arith. More...
 
pclusteroperator prepare_col_clusteroperator (pclusterbasis rb, pclusterbasis cb, ptruncmode tm)
 Prepares the weights of the column clusterbasis used by rkupdate_h2matrix and the arithmetic functions in h2arith. More...
 

Detailed Description

Functions for computing a low rank update for an h2matrix.

The functions in this module can be used to compute low rank updates for $\mathcal{H}^2$-matrices. The module also provides functions to initialise the auxilliary structures required by the low rank update and the arithmetic functions in h2arith.

Function Documentation

real norm2_rkupdate_uniform ( puniform  u,
uint  k 
)

Computes the Euclidean norm of the extended coupling matrix of the low rank update multiplied by weight matrices.

Depending on given row and column clusterbasis of the uniform matrix this function computes one of the following four values via vector iteration:

\[ \left\lVert \begin{pmatrix} S_b & \\ & I_k \end{pmatrix} \right\rVert_2, \quad \left\lVert C_t \begin{pmatrix} S_b & \\ & I_k \end{pmatrix} \right\rVert_2, \quad \left\lVert \begin{pmatrix} S_b & \\ & I_k \end{pmatrix} C_s^* \right\rVert_2 \quad \text{or} \quad \left\lVert C_t \begin{pmatrix} S_b & \\ & I_k \end{pmatrix} C_s^* \right\rVert_2 \]

with $C_t$=u->rb->Z and $C_s$=u->cb->Z. $C_t$ is omitted if u->rb->Z==NULL and $C_s$ is omitted if u->cb->Z==NULL

Parameters
uuniform object
krank of the low rank matrix
Returns
Approximation of the Euclidean norm of one of the matrices mentioned above.
real normfrob_rkupdate_uniform ( puniform  u,
uint  k 
)

Computes the Frobenius norm of the extended coupling matrix of the low rank update multiplied by weight matrices.

Depending on given row and column clusterbasis of the uniform matrix this functions computed one of the following four values:

\[ \left\lVert \begin{pmatrix} S_b & \\ & I_k \end{pmatrix} \right\rVert_F, \quad \left\lVert C_t \begin{pmatrix} S_b & \\ & I_k \end{pmatrix} \right\rVert_F, \quad \left\lVert \begin{pmatrix} S_b & \\ & I_k \end{pmatrix} C_s^* \right\rVert_F \quad \text{or} \quad \left\lVert C_t \begin{pmatrix} S_b & \\ & I_k \end{pmatrix} C_s^* \right\rVert_F \]

with $C_t$=u->rb->Z and $C_s$=u->cb->Z. $C_t$ is omitted if u->rb->Z==NULL and $C_s$ is omitted if u->cb->Z==NULL

Parameters
uuniform object
krank of the low rank matrix
Returns
Approximation of the Frobenius norm of one of the matrices mentioned above.
pclusteroperator prepare_col_clusteroperator ( pclusterbasis  rb,
pclusterbasis  cb,
ptruncmode  tm 
)

Prepares the weights of the column clusterbasis used by rkupdate_h2matrix and the arithmetic functions in h2arith.

Parameters
rbrow clusterbasis
cbcolumn clusterbasis
tmoptions for the total weights
Returns
new clusteroperator
pclusteroperator prepare_row_clusteroperator ( pclusterbasis  rb,
pclusterbasis  cb,
ptruncmode  tm 
)

Prepares the weights of the row clusterbasis used by rkupdate_h2matrix and the arithmetic functions in h2arith.

Parameters
rbrow clusterbasis
cbcolumn clusterbasis
tmoptions for the total weights
Returns
new clusteroperator
void rkupdate_h2matrix ( prkmatrix  R,
ph2matrix  Gh2,
pclusteroperator  rwf,
pclusteroperator  cwf,
ptruncmode  tm,
real  eps 
)

Computes the low rank update $ G \gets G + R $.

Parameters
RLow-rank matrix $R$.
Gh2Target matrix $G$.
rwfhas to be the father of the total weights of the row clusterbasis of C,
e.g. initialised by prepare_row_clusteroperator
cwfhas to be the father of the total weights of the col clusterbasis of C,
e.g. initialised by prepare_col_clusteroperator
tmoptions of truncation
epstolerance of truncation