H2Lib  3.0
harith2.h
Go to the documentation of this file.
1 
2 /* ------------------------------------------------------------
3  This is the file "harith2.h" of the H2Lib package.
4  All rights reserved, Steffen Boerm 2015
5  ------------------------------------------------------------ */
6 
11 #ifndef HARITH2_H
12 #define HARITH2_H
13 
18 typedef struct _haccum haccum;
19 
21 typedef haccum *phaccum;
22 
24 typedef const haccum *pchaccum;
25 
27 typedef struct _hprodentry hprodentry;
28 
31 
32 #include "harith.h"
33 
42 struct _haccum {
45 
48 
51 
54 
57 };
58 
67 
71 HEADER_PREFIX void
73 
82 HEADER_PREFIX void
84  bool xtrans, pchmatrix x, bool ytrans, pchmatrix y,
85  phaccum za);
86 
96 
101 HEADER_PREFIX void
103 
117 HEADER_PREFIX void
118 add_amatrix_destructive_rkmatrix(field alpha, bool atrans, pamatrix a,
120 
134 HEADER_PREFIX void
135 add_amatrix_destructive_hmatrix(field alpha, bool atrans, pamatrix a,
137 
153 HEADER_PREFIX void
154 addmul2_hmatrix(field alpha,
155  bool xtrans, pchmatrix x, bool ytrans, pchmatrix y,
157 
169 HEADER_PREFIX void
170 lowersolve_haccum(bool aunit, bool atrans, pchmatrix a,
171  bool xtrans, phaccum xa);
172 
187 HEADER_PREFIX void
188 lowersolve2_hmatrix_hmatrix(bool aunit, bool atrans, pchmatrix a,
190  bool xtrans, phmatrix x);
191 
203 HEADER_PREFIX void
204 uppersolve_haccum(bool aunit, bool atrans, pchmatrix a,
205  bool xtrans, phaccum xa);
206 
221 HEADER_PREFIX void
222 uppersolve2_hmatrix_hmatrix(bool aunit, bool atrans, pchmatrix a,
224  bool xtrans, phmatrix x);
225 
238 HEADER_PREFIX void
240 
255 HEADER_PREFIX void
257 
269 HEADER_PREFIX void
271 
285 HEADER_PREFIX void
287 
290 #endif
void addproduct_haccum(field alpha, bool xtrans, pchmatrix x, bool ytrans, pchmatrix y, phaccum za)
Add a product to an accumulator.
phprodentry xy
Accumulator for structured updates.
Definition: harith2.h:56
void lowersolve_haccum(bool aunit, bool atrans, pchmatrix a, bool xtrans, phaccum xa)
Solve a lower triangular system using accumulators, or .
haccum * phaccum
Pointer to haccum object.
Definition: harith2.h:21
phaccum * split_haccum(phmatrix z, phaccum za)
Create H-matrix accumulators for submatrices.
void uppersolve2_hmatrix_hmatrix(bool aunit, bool atrans, pchmatrix a, pctruncmode tm, real eps, bool xtrans, phmatrix x)
Solve an upper triangular system using accumulators, or .
void flush_haccum(phaccum ha)
Flush an H-matrix accumulator, i.e., add all accumulated products to the target matrix and clear the ...
void lrdecomp2_hmatrix(phmatrix a, pctruncmode tm, real eps)
Compute the LR factorization using accumulators, .
struct _hprodentry hprodentry
Unhandled H-matrix products.
Definition: harith2.h:27
Representation of -matrices.
Definition: hmatrix.h:49
void add_amatrix_destructive_rkmatrix(field alpha, bool atrans, pamatrix a, pctruncmode tm, real eps, prkmatrix b)
Truncated addition of a matrix to a low-rank matrices in rkmatrix representation, ...
void add_amatrix_destructive_hmatrix(field alpha, bool atrans, pamatrix a, pctruncmode tm, real eps, phmatrix b)
Locally truncated addition of a matrix in amatrix representation to a hierarchical matrix in hmatrix ...
double _Complex field
Field type.
Definition: settings.h:171
void choldecomp_haccum(phaccum aa)
Compute the Cholesky factorization using accumulators, .
void del_haccum(phaccum ha)
Delete an accumulator.
Accumulator for H-matrix products.
Definition: harith2.h:42
void lowersolve2_hmatrix_hmatrix(bool aunit, bool atrans, pchmatrix a, pctruncmode tm, real eps, bool xtrans, phmatrix x)
Solve a lower triangular system using accumulators, or .
Define different strategies used by various truncation and compression algorithms for hmatrices and h...
Definition: truncation.h:43
void addmul2_hmatrix(field alpha, bool xtrans, pchmatrix x, bool ytrans, pchmatrix y, pctruncmode tm, real eps, phmatrix z)
Multiply two H-matrices using accumulators, .
pctruncmode tm
Truncation mode.
Definition: harith2.h:47
#define HEADER_PREFIX
Prefix for function declarations.
Definition: settings.h:43
double real
real floating point type.
Definition: settings.h:97
hprodentry * phprodentry
Points to hprodentry object.
Definition: harith2.h:30
phaccum new_haccum(phmatrix z, pctruncmode tm, real eps)
Create a new H-matrix accumulator.
phmatrix z
Target matrix.
Definition: harith2.h:44
prkmatrix r
Accumulator for low-rank updates.
Definition: harith2.h:53
void choldecomp2_hmatrix(phmatrix a, pctruncmode tm, real eps)
Compute the Cholesky factorization using accumulators, .
Representation of a low-rank matrix in factorized form .
Definition: rkmatrix.h:36
void lrdecomp_haccum(phaccum aa)
Compute the LR factorization using accumulators, .
Representation of a matrix as an array in column-major order.
Definition: amatrix.h:43
real eps
Truncation accuracy.
Definition: harith2.h:50
void uppersolve_haccum(bool aunit, bool atrans, pchmatrix a, bool xtrans, phaccum xa)
Solve an upper triangular system using accumulators, or .
const haccum * pchaccum
Pointer to constant haccum object.
Definition: harith2.h:24