StarNEig User's Guide  v0.1.5
A task-based library for solving dense nonsymmetric eigenvalue problems
distr_matrix.h File Reference

This file contains data types and functions for distributed matrices. More...

#include <starneig/configuration.h>
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  starneig_distr_block
 Distributed block. More...
 

Functions

void starneig_broadcast (int root, size_t size, void *buffer)
 
Query functions
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. More...
 
starneig_distr_t starneig_distr_matrix_get_distr (starneig_distr_matrix_t matrix)
 Returns the distribution that is associated with a distributed matrix. More...
 
starneig_datatype_t starneig_distr_matrix_get_datatype (starneig_distr_matrix_t matrix)
 Returns the matrix element data type. More...
 
size_t starneig_distr_matrix_get_elemsize (starneig_distr_matrix_t matrix)
 Returns the matrix element size. More...
 
int starneig_distr_matrix_get_rows (starneig_distr_matrix_t matrix)
 Returns the number of (global) rows. More...
 
int starneig_distr_matrix_get_cols (starneig_distr_matrix_t matrix)
 Returns the number of (global) columns. More...
 
int starneig_distr_matrix_get_row_blksz (starneig_distr_matrix_t matrix)
 Returns the number of rows in a distribution block. More...
 
int starneig_distr_matrix_get_col_blksz (starneig_distr_matrix_t matrix)
 Returns the number of columns in a distribution block. More...
 

Data distributions

enum  starneig_distr_order_t { STARNEIG_ORDER_DEFAULT, STARNEIG_ORDER_ROW_MAJOR, STARNEIG_ORDER_COL_MAJOR }
 Process mapping order. More...
 
typedef struct starneig_distr * starneig_distr_t
 Data distribution.
 
starneig_distr_t starneig_distr_init ()
 Creates a default data distribution. More...
 
starneig_distr_t starneig_distr_init_mesh (int rows, int cols, starneig_distr_order_t order)
 Creates a two-dimensional block cyclic data distribution. More...
 
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. More...
 
starneig_distr_t starneig_distr_duplicate (starneig_distr_t distr)
 Duplicates a data distribution. More...
 
void starneig_distr_destroy (starneig_distr_t distr)
 Destroys a data distribution. More...
 

Distributed matrices

enum  starneig_datatype_t { STARNEIG_REAL_DOUBLE }
 Distributed matrix element data type. More...
 
typedef struct starneig_distr_matrix * starneig_distr_matrix_t
 Distributed matrix.
 
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. More...
 
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. More...
 
void starneig_distr_matrix_destroy (starneig_distr_matrix_t matrix)
 Destroys a distributed matrix. More...
 
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. More...
 
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. More...
 

Detailed Description

This file contains data types and functions for distributed matrices.

Author
Mirko Myllykoski (mirko.nosp@m.m@cs.nosp@m..umu..nosp@m.se), Umeå University
Lars Karlsson (larsk.nosp@m.@cs..nosp@m.umu.s.nosp@m.e), Umeå University