|  | 
| 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 Aby changing shape, stride and order.  More...
 | 
|  | 
| int | array_dot (Array *A, Array *B, Array **C) | 
|  | GEMM for AandBintoC.  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 AbyB.  More...
 | 
|  | 
| int | array_norm (Array *A, double *result) | 
|  | Measure Frobenius norm of A.  More...
 | 
|  | 
| int | array_convert (Array **A, Array *B, char dtype) | 
|  | Create Aas a copy ofBwith 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... 
 | 
|  |