phmatrix read_cdfcomplete_hmatrix(const char *name)
Read hmatrix from NetCDF file, including cluster trees.
void mvm_hmatrix_avector(field alpha, bool atrans, pchmatrix a, pcavector x, pavector y)
Matrix-vector multiplication or .
phmatrix read_cdfpart_hmatrix(int nc_file, const char *prefix, pccluster rc, pccluster cc)
Read a matrix from a NetCDF file.
phmatrix new_super_hmatrix(pccluster rc, pccluster cc, uint rsons, uint csons)
Create a new hmatrix object representing a subdivided matrix.
void unref_hmatrix(phmatrix hm)
Reduce the reference counter of a hmatrix object.
uint getrows_hmatrix(pchmatrix a)
Get the number of rows of a hmatrix .
Definition: hmatrix.h:278
Representation of -matrices.
Definition: hmatrix.h:49
const hmatrix * pchmatrix
Pointer to constant hmatrix object.
Definition: hmatrix.h:28
phmatrix init_hmatrix(phmatrix hm, pccluster rc, pccluster cc)
Initialize a hmatrix object.
uint getcols_hmatrix(pchmatrix a)
Get the number of columns of a hmatrix .
Definition: hmatrix.h:286
phmatrix clonestructure_hmatrix(pchmatrix src)
Clones the structure of an existing hmatrix.
uint rsons
Number of block rows.
Definition: hmatrix.h:64
pccluster cc
Column cluster.
Definition: hmatrix.h:53
unsigned uint
Unsigned integer type.
Definition: settings.h:70
phmatrix build_from_block_hmatrix(pcblock b, uint k)
Build an hmatrix object from a block tree using a given local rank.
void addevalsymm_hmatrix_avector(field alpha, pchmatrix hm, pcavector x, pavector y)
Matrix-vector multiplication with symmetric matrix .
pccluster rc
Row cluster.
Definition: hmatrix.h:51
phmatrix * son
Submatrices.
Definition: hmatrix.h:62
phmatrix read_hlibsymm_hmatrix(const char *filename)
Read a symmetric matrix from an ASCII file in the old HLib format.
double _Complex field
Field type.
Definition: settings.h:171
#define INLINE_PREFIX
Prefix for inline functions.
Definition: settings.h:36
size_t getfarsize_hmatrix(pchmatrix hm)
Get size of the farfield part of a given hmatrix object.
uint refs
Number of references to this hmatrix.
Definition: hmatrix.h:69
void write_cdfpart_hmatrix(pchmatrix G, int nc_file, const char *prefix)
Write a matrix into a NetCDF file.
void del_hmatrix(phmatrix hm)
Delete a hmatrix object.
uint csons
Number of block columns.
Definition: hmatrix.h:66
void draw_cairo_hmatrix(cairo_t *cr, pchmatrix hm, bool storage, uint levels)
Draw a hierarchical matrix.
void update_hmatrix(phmatrix hm)
Complete the initialisation of a hmatrix object.
size_t getsize_hmatrix(pchmatrix hm)
Get size of a given hmatrix object.
phmatrix clone_hmatrix(pchmatrix src)
Creates a clone of an existing hmatrix.
void fastaddevalsymm_hmatrix_avector(field alpha, pchmatrix hm, pcavector xp, pavector yp)
Matrix-vector multiplication with symmetric matrix .
phmatrix new_hmatrix(pccluster rc, pccluster cc)
Create a new hmatrix object.
void addevaltrans_hmatrix_avector(field alpha, pchmatrix hm, pcavector x, pavector y)
Adjoint matrix-vector multiplication .
size_t getnearsize_hmatrix(pchmatrix hm)
Get size of the nearfield part of a given hmatrix object.
uint desc
Number of descendants in matrix tree.
Definition: hmatrix.h:71
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...
void ref_hmatrix(phmatrix *ptr, phmatrix hm)
Set a pointer to a hmatrix object, increase its reference counter, and decrease reference counter of ...
real norm2_hmatrix(pchmatrix H)
Approximate the spectral norm of a matrix .
phmatrix new_rk_hmatrix(pccluster rc, pccluster cc, uint k)
Create a new hmatrix object representing a low-rank matrix.
void copy_sparsematrix_hmatrix(psparsematrix sp, phmatrix hm)
Copy entries of a sparsematrix into a hierarchical matrix.
void write_cdfcomplete_hmatrix(pchmatrix G, const char *name)
Write hmatrix to NetCDF file, including cluster trees.
#define HEADER_PREFIX
Prefix for function declarations.
Definition: settings.h:43
double real
real floating point type.
Definition: settings.h:97
void clear_hmatrix(phmatrix hm)
Set a hmatrix to zero by clearing all far- and nearfield matrices.
pblock build_from_hmatrix_block(pchmatrix G)
Build an block tree from an hmatrix.
Representation of block trees.
Definition: block.h:48
void fastaddevaltrans_hmatrix_avector(field alpha, pchmatrix hm, pcavector xp, pavector yp)
Adjoint matrix-vector multiplication .
void identity_hmatrix(phmatrix hm)
Fill a hmatrix with an identity matrix.
pamatrix f
Standard matrix, for inadmissible leaves.
Definition: hmatrix.h:59
hmatrix * phmatrix
Pointer to a hmatrix object.
Definition: hmatrix.h:25
Representation of cluster trees.
Definition: cluster.h:40
void copy_hmatrix(pchmatrix src, phmatrix trg)
Copy a matrix src to an existing matrix dst.
void write_hlib_hmatrix(pchmatrix G, const char *filename)
Write a matrix into an ASCII file in the old HLib format.
void write_cdf_hmatrix(pchmatrix G, const char *name)
Write a matrix into a NetCDF file.
Representation of a low-rank matrix in factorized form .
Definition: rkmatrix.h:36
void random_hmatrix(phmatrix hm, uint kmax)
Fill a hmatrix with random field values. The maximal rank for admissible leaves is determined by kmax...
void addeval_hmatrix_avector(field alpha, pchmatrix hm, pcavector x, pavector y)
Matrix-vector multiplication .
prkmatrix r
Low-rank matrix, for admissible leaves.
Definition: hmatrix.h:56
Representation of a sparse matrix in compressed row format.
Definition: sparsematrix.h:42
phmatrix read_cdf_hmatrix(const char *name, pccluster rc, pccluster cc)
Read a matrix from a NetCDF file.
Representation of a matrix as an array in column-major order.
Definition: amatrix.h:43
void fastaddeval_hmatrix_avector(field alpha, pchmatrix hm, pcavector xp, pavector yp)
Matrix-vector multiplication .
real norm2diff_hmatrix(pchmatrix a, pchmatrix b)
Approximate the spectral norm of the difference of two matrices and .
uint size
Number of indices.
Definition: cluster.h:42
phmatrix new_full_hmatrix(pccluster rc, pccluster cc)
Create a new hmatrix object representing a standard dense matrix.
phmatrix read_hlib_hmatrix(const char *filename)
Read a matrix from an ASCII file in the old HLib format.
phmatrix * enumerate_hmatrix(pcblock b, phmatrix hm)
Enumerate hmatrix according to block tree.
void uninit_hmatrix(phmatrix hm)
Uninitialize a hmatrix object.