|
int | starsh_init () |
| Initialize backend and low-rank engine to be used. More...
|
|
int | starsh_set_backend (const char *string) |
| Set backend (MPI or OpenMP or other scheduler) for computations. More...
|
|
int | starsh_set_lrengine (const char *string) |
| Set low-rank engine (SVD, Randomized SVD or Cross) for computations. More...
|
|
int | starsh_set_oversample (const char *string) |
| Set oversampling size for randomized SVD and RRQR. More...
|
|
int | starsh_application (void **data, STARSH_kernel **kernel, STARSH_int count, char dtype, int problem_type, int kernel_type,...) |
| Generates data and matrix kernel for one of predefined applications. More...
|
|
int | array_from_buffer (Array **A, int ndim, int *shape, char dtype, char order, void *data) |
| Init array from given buffer. More...
|
|
int | array_new (Array **A, int ndim, int *shape, char dtype, char order) |
| Init array object and allocate memory for its buffer. More...
|
|
int | array_new_like (Array **A, Array *B) |
| Init new array object with the shape, dtype and order of other. More...
|
|
int | array_new_copy (Array **A, Array *B, char order) |
| Init new array object as copy of other with given data layout. More...
|
|
void | array_free (Array *A) |
|
void | array_info (Array *A) |
|
void | array_print (Array *A) |
|
int | array_to_matrix (Array *A, char kind) |
|
int | array_trans_inplace (Array *A) |
| Transpose A by changing shape, stride and order. More...
|
|
int | array_dot (Array *A, Array *B, Array **C) |
| GEMM for A and B into C . More...
|
|
int | array_SVD (Array *A, Array **U, Array **S, Array **V) |
| Compute SVD of a given 2-dimensional A . More...
|
|
int | SVD_get_rank (Array *S, double tol, char type, int *rank) |
| Returns rank by given singular values S , tolerance and type of norm. More...
|
|
int | array_scale (Array *A, char kind, Array *S) |
| Apply row or column scaling to A. More...
|
|
int | array_diff (Array *A, Array *B, double *result) |
| Measure Frobenius error of approximation of A by B . More...
|
|
int | array_norm (Array *A, double *result) |
| Measure Frobenius norm of A . More...
|
|
int | array_convert (Array **A, Array *B, char dtype) |
| Create A as a copy of B with different data type (precision). More...
|
|
int | array_cholesky (Array *A, char uplo) |
| Cholesky factorization for A . More...
|
|
int | starsh_problem_new (STARSH_problem **problem, int ndim, STARSH_int *shape, char symm, char dtype, void *row_data, void *col_data, STARSH_kernel *kernel, char *name) |
| Init STARSH_problem object. More...
|
|
void | starsh_problem_free (STARSH_problem *problem) |
|
void | starsh_problem_info (STARSH_problem *problem) |
|
int | starsh_problem_get_block (STARSH_problem *problem, int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, Array **A) |
| Get submatrix on given rows and columns. More...
|
|
int | starsh_problem_from_array (STARSH_problem **problem, Array *A, char symm) |
| Create STARSH_problem instance, based on dense array. More...
|
|
int | starsh_problem_to_array (STARSH_problem *problem, Array **A) |
| Generate dense array by a given problem. More...
|
|
int | starsh_cluster_new (STARSH_cluster **cluster, void *data, STARSH_int ndata, STARSH_int *pivot, STARSH_int nblocks, STARSH_int nlevels, STARSH_int *level, STARSH_int *start, STARSH_int *size, STARSH_int *parent, STARSH_int *child_start, STARSH_int *child, enum STARSH_CLUSTER_TYPE type) |
| Init STARSH_cluster object. More...
|
|
void | starsh_cluster_free (STARSH_cluster *cluster) |
|
void | starsh_cluster_info (STARSH_cluster *cluster) |
|
int | starsh_cluster_new_plain (STARSH_cluster **cluster, void *data, STARSH_int ndata, STARSH_int block_size) |
| Plain division of data into blocks of discrete elements. More...
|
|
int | starsh_blrf_new (STARSH_blrf **format, STARSH_problem *problem, char symm, STARSH_cluster *row_cluster, STARSH_cluster *col_cluster, STARSH_int nbrows, STARSH_int nbcols, STARSH_int nblocks_far, STARSH_int *block_far, STARSH_int *brow_far_start, STARSH_int *brow_far, STARSH_int *bcol_far_start, STARSH_int *bcol_far, STARSH_int nblocks_far_local, STARSH_int *block_far_local, STARSH_int nblocks_near, STARSH_int *block_near, STARSH_int *brow_near_start, STARSH_int *brow_near, STARSH_int *bcol_near_start, STARSH_int *bcol_near, STARSH_int nblocks_near_local, STARSH_int *block_near_local, enum STARSH_BLRF_TYPE type) |
| Init STARSH_blrf object. More...
|
|
int | starsh_blrf_new_from_coo (STARSH_blrf **format, STARSH_problem *problem, char symm, STARSH_cluster *row_cluster, STARSH_cluster *col_cluster, STARSH_int nblocks_far, STARSH_int *block_far, STARSH_int nblocks_near, STARSH_int *block_near, enum STARSH_BLRF_TYPE type) |
| Init STARSH_blrf object by lists of admissible blocks. More...
|
|
int | starsh_blrf_new_tlr (STARSH_blrf **format, STARSH_problem *problem, char symm, STARSH_cluster *row_cluster, STARSH_cluster *col_cluster) |
| TLR partitioning of problem with given plain clusters. More...
|
|
void | starsh_blrf_free (STARSH_blrf *format) |
|
void | starsh_blrf_info (STARSH_blrf *format) |
|
void | starsh_blrf_print (STARSH_blrf *format) |
|
int | starsh_blrf_get_block (STARSH_blrf *format, STARSH_int i, STARSH_int j, int *shape, void **D) |
| Returns dense block on intersection of given block row and column. More...
|
|
int | starsh_blrm_new (STARSH_blrm **matrix, STARSH_blrf *format, int *far_rank, Array **far_U, Array **far_V, int onfly, Array **near_D, void *alloc_U, void *alloc_V, void *alloc_D, char alloc_type) |
| Init STARSH_blrm object. More...
|
|
void | starsh_blrm_free (STARSH_blrm *matrix) |
|
void | starsh_blrm_info (STARSH_blrm *matrix) |
|
int | starsh_blrm_get_block (STARSH_blrm *matrix, STARSH_int i, STARSH_int j, int *shape, int *rank, void **U, void **V, void **D) |
| Get shape, rank and low-rank factors or dense representation of a block. More...
|
|
int | starsh_blrm__dsdd (STARSH_blrm **matrix, STARSH_blrf *format, int maxrank, double tol, int onfly) |
| Approximate each tile by divide-and-conquer SVD (GESDD function). More...
|
|
int | starsh_blrm__drsdd (STARSH_blrm **matrix, STARSH_blrf *format, int maxrank, double tol, int onfly) |
| Approximate each tile by randomized SVD. More...
|
|
int | starsh_blrm__dqp3 (STARSH_blrm **matrix, STARSH_blrf *format, int maxrank, double tol, int onfly) |
| Approximate each tile of BLR matrix with RRQR (GEQP3 function). More...
|
|
int | starsh_blrm__dsdd_omp (STARSH_blrm **matrix, STARSH_blrf *format, int maxrank, double tol, int onfly) |
| Approximate each tile by divide-and-conquer SVD (GESDD function). More...
|
|
int | starsh_blrm__drsdd_omp (STARSH_blrm **matrix, STARSH_blrf *format, int maxrank, double tol, int onfly) |
| Approximate each tile by randomized SVD. More...
|
|
int | starsh_blrm__dqp3_omp (STARSH_blrm **matrix, STARSH_blrf *format, int maxrank, double tol, int onfly) |
| Approximate each tile of BLR matrix with RRQR (GEQP3 function). More...
|
|
int | starsh_blrm__dmml (STARSH_blrm *matrix, int nrhs, double alpha, double *A, int lda, double beta, double *B, int ldb) |
| Multiply blr-matrix by dense matrix. More...
|
|
int | starsh_blrm__dmml_omp (STARSH_blrm *matrix, int nrhs, double alpha, double *A, int lda, double beta, double *B, int ldb) |
| Multiply blr-matrix by dense matrix. More...
|
|
double | starsh_blrm__dfe (STARSH_blrm *matrix) |
| Approximation error in Frobenius norm of double precision matrix. More...
|
|
double | starsh_blrm__dfe_omp (STARSH_blrm *matrix) |
| Approximation error in Frobenius norm of double precision matrix. More...
|
|
int | starsh_blrm__dca (STARSH_blrm *matrix, Array *A) |
| Convert double precision block low-rank matrix to dense Array. More...
|
|
int | starsh_dense_dsvfr (int size, double *S, double tol) |
| Returns rank of double precision singular values. More...
|
|
void | starsh_dense_dlrsdd (int nrows, int ncols, double *D, int ldD, double *U, int ldU, double *V, int ldV, int *rank, int maxrank, double tol, double *work, int lwork, int *iwork) |
| SVD approximation of a dense double precision matrix. More...
|
|
void | starsh_dense_dlrrsdd (int nrows, int ncols, double *D, int ldD, double *U, int ldU, double *V, int ldV, int *rank, int maxrank, int oversample, double tol, double *work, int lwork, int *iwork) |
| Randomized SVD approximation of a dense double precision matrix. More...
|
|
void | starsh_dense_dlrqp3 (int nrows, int ncols, double *D, int ldD, double *U, int ldU, double *V, int ldV, int *rank, int maxrank, int oversample, double tol, double *work, int lwork, int *iwork) |
| Rank-revealing QR approximation of a dense double precision matrix. More...
|
|
void | starsh_dense_dlrna (int nrows, int ncols, double *D, double *U, double *V, int *rank, int maxrank, double tol, double *work, int lwork, int *iwork) |
| Fake approximation schemes, that returns rank=-1 . More...
|
|
int | starsh_itersolvers__dcg_omp (STARSH_blrm *matrix, int nrhs, double *B, int ldb, double *X, int ldx, double tol, double *work) |
| Conjugate gradient method for STARSH_blrm object. More...
|
|