/usr/include/deal.II/lac/lapack_templates.h.in is in libdeal.ii-dev 6.3.1-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | // vector update of the form y += alpha*x with a scalar, x,y vectors
void daxpy_ (const int* n, const double* alpha, const double* x,
const int* incx, double* y, const int* incy);
// General Matrix
// Matrix vector product
void dgemv_ (const char* trans, const int* m, const int* n,
const double* alpha, const double* A, const int* lda,
const double* x, const int* incx,
const double* b, double* y, const int* incy);
// Matrix matrix product
void dgemm_ (const char* transa, const char* transb,
const int* m, const int* n, const int* k,
const double* alpha, const double* A, const int* lda,
const double* B, const int* ldb,
const double* beta, double* C, const int* ldc);
// Compute LU factorization
void dgetrf_ (const int* m, const int* n, double* A,
const int* lda, int* ipiv, int* info);
// Apply forward/backward substitution to LU factorization
void dgetrs_ (const char* trans, const int* n, const int* nrhs,
const double* A, const int* lda, const int* ipiv,
double* b, const int* ldb, int* info);
// Invert matrix from LU factorization
void dgetri_ (const int* n, double* A, const int* lda,
int* ipiv, double* inv_work, const int* lwork, int* info);
// Compute QR factorization (Householder)
void dgeqrf_ (const int* m, const int* n, double* A,
const int* lda, double* tau, double* work,
const int* lwork, int* info);
// Compute vector Q^T B, where Q is the result from dgeqrf_
void dormqr_ (const char* side, const char* trans, const int* m,
const int* n, const int* k, const double* A, const int* lda,
const double* tau, double* B, const int* ldb,
double* work, const int* lwork, int* info);
// Compute matrix Q from the result of dgeqrf_
void dorgqr_ (const int* m, const int* n, const int* k, const double* A,
const int* lda, const double* tau, double* work, const int* lwork,
int* info);
// Compute Rx = b
void dtrtrs_ (const char* uplo, const char* trans,
const char* diag, const int* n, const int* n_rhs,
const double* A, const int* lda, double* B, const int* ldb,
int* info);
// Compute eigenvalues and vectors
void dgeev_ (const char* jobvl, const char* jobvr,
const int* n, double* A, const int* lda,
double* lambda_re, double* lambda_im,
double* vl, const int* ldvl,
double* vr, const int* ldva,
double* work, const int* lwork,
int* info);
// Compute eigenvalues and vectors (expert)
void dgeevx_ (const char* balanc, const char* jobvl, const char* jobvr,
const char* sense,
const int* n, double* A, const int* lda,
double* lambda_re, double* lambda_im,
double* vl, const int* ldvl,
double* vr, const int* ldvr,
int* ilo, int* ihi,
double* scale, double* abnrm,
double* rconde, double* rcondv,
double* work, const int* lwork,
int* iwork, int* info);
// Eigenvalues for a symmetric matrix
void dsyev_ (const char *jobz, const char *uplo, const int *n,
double *A, const int *lda, double *w,
double *work, const int *lwork, int *info);
// General eigenvalues and eigenvectors of
// 1: A*x = lambda*B*x; 2: A*B*x = lambda*x; 3: B*A*x = lambda*x
// A and B are symmetric and B is definite
void dsygv_ (const int* itype, const char* jobz, const char* uplo,
const int* n, double* A, const int* lda, double* B,
const int* ldb, double* w, double* work,
const int* lwork, int* info);
// Compute singular value decomposition
void dgesvd_ (int* jobu, int* jobvt,
const int* n, const int* m, double* A, const int* lda,
double* s,
double* u, const int* ldu,
double* vt, const int* ldvt,
double* work, const int* lwork,
int* info);
// Symmetric tridiagonal matrix
void dstev_ (const char* jobz, const int* n,
double* d, double* e, double* z,
const int* ldz, double* work,
int* info);
|