This file is indexed.

/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);