ParMooN
Main Page
Related Pages
Classes
Files
File List
All
Classes
Functions
Variables
Friends
Pages
include
PBE
aca.h
1
#ifndef ACA
2
#define ACA
3
4
typedef
enum
{
5
HLIB_ACA_DEFAULT,
/* Try to bound relative Euclidean error */
6
HLIB_ACA_ABSOLUTE,
/* Try to bound absolute Frobenius error */
7
HLIB_ACA_RELATIVE,
/* Try to bound relative Frobenius error */
8
HLIB_ACA_ABSOLUTE2,
/* Try to bound absolute Euclidean error */
9
HLIB_ACA_RELATIVE2
/* Try to bound relative Euclidean error */
10
} ACAStrategy;
11
12
/* Compute an adaptive cross approximation of a matrix with modified pivoting
13
(ACA+ algorithm). The return value will be the rank k <= kmax, the first
14
k colums of A and B will be filled by the rank-k-approximation of the matrix.
15
A: Row matrix, containing at least rows*kmax double variables
16
B: Column matrix, containing at least cols*kmax double variables
17
rows: Number of rows
18
cols: Number of columns
19
row_off: Row offset, rows [row_off ... row_off+rows-1] are considered
20
col_off: Column offset, columns [col_off ... col_off+cols-1] are considered
21
entry: Callback function for computing a matrix entry
22
data: Additional data for callback function "entry"
23
strategy: Truncation strategy
24
kmax: Maximal rank
25
eps: Tolerance for truncation */
26
int
27
newaca_fill_block(
double
*A,
double
*B,
int
rows,
int
cols,
28
int
row_off,
int
col_off,
29
double
(*entry)(
int
row,
int
col,
void
*data),
void
*data,
30
int
kmax,
double
eps, ACAStrategy strategy);
31
32
/* Compute an adaptive cross approximation of a matrix. The return value will
33
be the rank k <= kmax, the first k colums of A and B will be filled by
34
the rank-k-approximation of the matrix.
35
A: Row matrix, containing at least rows*kmax double variables
36
B: Column matrix, containing at least cols*kmax double variables
37
rows: Number of rows
38
cols: Number of columns
39
fillrow: Callback function for computing a matrix row
40
fillcol: Callback function for computing a matrix column
41
data: Additional data for callback functions "fillrow" and "fillcol"
42
strategy: Truncation strategy
43
kmax: Maximal rank
44
eps: Tolerance for truncation */
45
int
46
aca_fill_block(
double
*A,
double
*B,
int
rows,
int
cols,
47
int
row_start,
int
col_start,
48
double
(*entry)(
int
row,
int
col,
void
*data),
49
void
*data,
int
kmax,
double
eps, ACAStrategy strategy);
50
51
#endif
52
Generated on Tue May 10 2016 09:08:01 for ParMooN by
1.8.5