STARS-H
Software for Testing Accuracy, Reliability and Scalability of Hierarchical computations
|
Set of low-rank routines for dense matrices. More...
Functions | |
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... | |
void | starsh_dense_dlrsdd_starpu (void *buffers[], void *cl_arg) |
STARPU kernel for DGESDD on a tile. | |
void | starsh_dense_dlrrsdd_starpu (void *buffers[], void *cl_arg) |
STARPU kernel for 1-way randomized SVD on a tile. | |
void | starsh_dense_dlrqp3_starpu (void *buffers[], void *cl_arg) |
STARPU kernel for RRQR on a tile. | |
void | starsh_dense_kernel_starpu (void *buffers[], void *cl_arg) |
STARPU kernel for matrix kernel. | |
void | starsh_dense_dgemm_starpu (void *buffers[], void *cl_arg) |
STARPU kernel for matrix kernel. | |
void | starsh_dense_fake_init_starpu (void *buffers[], void *cl_arg) |
STARPU kernel for matrix kernel. | |
Set of low-rank routines for dense matrices.
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
.
This function calls LAPACK and BLAS routines, so integer types are int instead of STARSH_int.
[in] | nrows | Number of rows of a matrix. |
[in] | ncols | Number of columns of a matrix. |
[in,out] | D | Pointer to dense matrix. |
[out] | U | Pointer to low-rank factor U . |
[out] | V | Pointer to low-rank factor V . |
[out] | rank | Address of rank variable. |
[in] | maxrank | Maximum possible rank. |
[in] | tol | Relative error for approximation. |
[in] | work | Working array. |
[in] | lwork | Size of work array. |
[in] | iwork | Temporary integer array. |
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.
This function calls LAPACK and BLAS routines, so integer types are int instead of STARSH_int.
[in] | nrows | Number of rows of a matrix. |
[in] | ncols | Number of columns of a matrix. |
[in,out] | D | Pointer to dense matrix. |
[in] | ldD | leading dimensions of D . |
[out] | U | Pointer to low-rank factor U . |
[in] | ldU | leading dimensions of U . |
[out] | V | Pointer to low-rank factor V . |
[in] | ldV | leading dimensions of V . |
[out] | rank | Address of rank variable. |
[in] | maxrank | Maximum possible rank. |
[in] | oversample | |
[in] | tol | Relative error for approximation. |
[in] | work | Working array. |
[in] | lwork | Size of work array. |
[in] | iwork | Temporary integer array. |
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.
This function calls LAPACK and BLAS routines, so integer types are int instead of STARSH_int.
[in] | nrows | Number of rows of a matrix. |
[in] | ncols | Number of columns of a matrix. |
[in,out] | D | Pointer to dense matrix. |
[in] | ldD | leading dimensions of D . |
[out] | U | Pointer to low-rank factor U . |
[in] | ldU | leading dimensions of U . |
[out] | V | Pointer to low-rank factor V . |
[in] | ldV | leading dimensions of V . |
[out] | rank | Address of rank variable. |
[in] | maxrank | Maximum possible rank. |
[in] | oversample | Size of oversampling subset. |
[in] | tol | Relative error for approximation. |
[in] | work | Working array. |
[in] | lwork | Size of work array. |
[in] | iwork | Temporary integer array. |
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.
This function calls LAPACK and BLAS routines, so integer types are int instead of STARSH_int.
[in] | nrows | Number of rows of a matrix. |
[in] | ncols | Number of columns of a matrix. |
[in,out] | D | Pointer to dense matrix. |
[in] | ldD | leading dimensions of D . |
[out] | U | Pointer to low-rank factor U . |
[in] | ldU | leading dimensions of U . |
[out] | V | Pointer to low-rank factor V . |
[in] | ldV | leading dimensions of V . |
[out] | rank | Address of rank variable. |
[in] | maxrank | Maximum possible rank. |
[in] | tol | Relative error for approximation. |
[in] | work | Working array. |
[in] | lwork | Size of work array. |
[in] | iwork | Temporary integer array. |
int starsh_dense_dsvfr | ( | int | size, |
double * | S, | ||
double | tol | ||
) |
Returns rank of double precision singular values.
Tries ranks size
, size
-1, size
-2 and so on. May be accelerated by binary search, but it requires additional temporary memory to be allocated.
[in] | size | Number of singular values. |
[in] | S | Array of singular values. |
[in] | tol | Relative error tolerance. |