StarNEig User's Guide
v0.1.8
A task-based library for solving dense nonsymmetric eigenvalue problems
|
Go to the documentation of this file.
40 #ifndef STARNEIG_DISTR_MATRIX_H
41 #define STARNEIG_DISTR_MATRIX_H
49 #ifndef STARNEIG_ENABLE_MPI
50 #error "This header should be included only when STARNEIG_ENABLE_MPI is defined."
68 struct starneig_distr;
155 int (*func)(
int row,
int col,
void *arg),
void *arg,
size_t arg_size);
184 struct starneig_distr_matrix;
349 int sr,
int sc,
int dr,
int dc,
int rows,
int cols,
472 #endif // STARNEIG_DISTR_MATRIX_H
@ STARNEIG_ORDER_ROW_MAJOR
Row-major natural ordering.
Definition: distr_matrix.h:80
int starneig_distr_matrix_get_col_blksz(starneig_distr_matrix_t matrix)
Returns the number of columns in a distribution block.
void starneig_distr_matrix_copy_region(int sr, int sc, int dr, int dc, int rows, int cols, starneig_distr_matrix_t source, starneig_distr_matrix_t dest)
Copies region of a distributed matrix to a second distributed matrix.
starneig_distr_matrix_t starneig_distr_matrix_create_local(int rows, int cols, starneig_datatype_t type, int owner, double *A, int ldA)
Creates a single-owner distributed matrix from a local matrix.
starneig_distr_t starneig_distr_init()
Creates a default data distribution.
int glo_col
The leftmost global column that belong to the block.
Definition: distr_matrix.h:205
starneig_distr_t starneig_distr_init_mesh(int rows, int cols, starneig_distr_order_t order)
Creates a two-dimensional block cyclic data distribution.
void starneig_distr_matrix_get_blocks(starneig_distr_matrix_t matrix, struct starneig_distr_block **blocks, int *num_blocks)
Returns the locally owned distributed blocks.
void starneig_distr_matrix_destroy(starneig_distr_matrix_t matrix)
Destroys a distributed matrix.
void starneig_distr_destroy(starneig_distr_t distr)
Destroys a data distribution.
void * ptr
A pointer to the local array.
Definition: distr_matrix.h:207
@ STARNEIG_ORDER_COL_MAJOR
Column-major natural ordering.
Definition: distr_matrix.h:81
int row_blksz
The number of rows in the block.
Definition: distr_matrix.h:202
starneig_datatype_t starneig_distr_matrix_get_datatype(starneig_distr_matrix_t matrix)
Returns the matrix element data type.
void starneig_distr_matrix_copy(starneig_distr_matrix_t source, starneig_distr_matrix_t dest)
Copies the contents of a distributed matrix to a second distributed matrix.
starneig_distr_t starneig_distr_init_func(int(*func)(int row, int col, void *arg), void *arg, size_t arg_size)
Creates a distribution using a data distribution function.
starneig_distr_order_t
Process mapping order.
Definition: distr_matrix.h:78
size_t starneig_distr_matrix_get_elemsize(starneig_distr_matrix_t matrix)
Returns the matrix element size.
int starneig_distr_matrix_get_cols(starneig_distr_matrix_t matrix)
Returns the number of (global) columns.
int glo_row
The topmost global row that belong to the block.
Definition: distr_matrix.h:204
int ld
The leading dimension of the local array.
Definition: distr_matrix.h:206
struct starneig_distr_matrix * starneig_distr_matrix_t
Distributed matrix.
Definition: distr_matrix.h:189
@ STARNEIG_REAL_DOUBLE
Double precision real numbers.
Definition: distr_matrix.h:195
starneig_distr_matrix_t starneig_distr_matrix_create(int rows, int cols, int row_blksz, int col_blksz, starneig_datatype_t type, starneig_distr_t distr)
Creates a distributed matrix with uninitialized matrix elements.
This file contains StarNEig library configuration.
Distributed block.
Definition: distr_matrix.h:201
@ STARNEIG_ORDER_DEFAULT
Default ordering.
Definition: distr_matrix.h:79
starneig_datatype_t
Distributed matrix element data type.
Definition: distr_matrix.h:194
starneig_distr_t starneig_distr_matrix_get_distr(starneig_distr_matrix_t matrix)
Returns the distribution that is associated with a distributed matrix.
starneig_distr_t starneig_distr_duplicate(starneig_distr_t distr)
Duplicates a data distribution.
void starneig_broadcast(int root, size_t size, void *buffer)
Broadcast a buffer. Deprecated.
int starneig_distr_matrix_get_row_blksz(starneig_distr_matrix_t matrix)
Returns the number of rows in a distribution block.
struct starneig_distr * starneig_distr_t
Data distribution.
Definition: distr_matrix.h:73
int col_blksz
The number of columns in the block.
Definition: distr_matrix.h:203
int starneig_distr_matrix_get_rows(starneig_distr_matrix_t matrix)
Returns the number of (global) rows.