PaStiX Handbook
6.3.2
|
#include "common.h"
#include <cblas.h>
#include <lapacke.h>
#include "flops.h"
#include "kernels_trace.h"
#include "blend/solver.h"
#include "pastix_dcores.h"
#include "pastix_dlrcores.h"
#include "d_nan_check.h"
#include "common/frobeniusupdate.h"
Go to the source code of this file.
Functions | |
static double | core_dlassq (int n, const double *x, int incx) |
Compute the frobenius norm of a vector. More... | |
pastix_fixdbl_t | core_dge2lr_svd (int use_reltol, pastix_fixdbl_t tol, pastix_int_t rklimit, pastix_int_t m, pastix_int_t n, const void *Avoid, pastix_int_t lda, pastix_lrblock_t *Alr) |
Convert a full rank matrix in a low rank matrix, using SVD. More... | |
pastix_fixdbl_t | core_drradd_svd (const pastix_lr_t *lowrank, pastix_trans_t transA1, const void *alphaptr, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offx, pastix_int_t offy) |
Add two LR structures A=(-u1) v1^T and B=u2 v2^T into u2 v2^T. More... | |
PaStiX low-rank kernel routines using SVD based on Lapack DGESVD.
Definition in file core_dgelrops_svd.c.
|
inlinestatic |
Compute the frobenius norm of a vector.
This routine is inspired from LAPACK dlassq function, and allows to accumulate the contribution backward for better accuracy as opposed to dnrm2 which allows only positive increment.
[in] | n | The number of elemnts in the vector |
[in] | x | The vector of size n * incx |
[in] | incx | The increment between two elments in the vector x. |
Definition at line 64 of file core_dgelrops_svd.c.
Referenced by core_dge2lr_svd().