This file is indexed.

/usr/include/ug/block.h is in libdune-uggrid-dev 2.5.0-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
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
/****************************************************************************/
/*                                                                          */
/* File:      block.h                                                       */
/*                                                                          */
/* Purpose:   block solver (header file)                                    */
/*                                                                          */
/* Author:    Christian Wieners                                             */
/*            Institut fuer Computeranwendungen III                         */
/*            Universitaet Stuttgart                                        */
/*            Pfaffenwaldring 27                                            */
/*            70569 Stuttgart                                               */
/* email:     ug@ica3.uni-stuttgart.de                                      */
/*                                                                          */
/* History:   Nov 27 95                                                     */
/*                                                                          */
/* Remarks:                                                                 */
/*                                                                          */
/****************************************************************************/



/****************************************************************************/
/*                                                                          */
/* auto include mechanism and other include files                           */
/*                                                                          */
/****************************************************************************/

#ifndef __BLOCK__
#define __BLOCK__

#include "np.h"
#include "disctools.h"
#include "namespace.h"

START_UGDIM_NAMESPACE

/****************************************************************************/
/*                                                                          */
/* defines in the following order                                           */
/*                                                                          */
/*        compile time constants defining static data size (i.e. arrays)    */
/*        other constants                                                   */
/*        macros                                                            */
/*                                                                          */
/****************************************************************************/

#define LOCAL_DIM MAX_NODAL_VALUES

/****************************************************************************/
/*                                                                          */
/* data structures exported by the corresponding source file                */
/*                                                                          */
/****************************************************************************/

/****************************************************************************/
/*                                                                          */
/* definition of exported global variables                                  */
/*                                                                          */
/****************************************************************************/

/****************************************************************************/
/*                                                                          */
/* function declarations                                                    */
/*                                                                          */
/****************************************************************************/


/****************************************************************************/
/** \brief Perform a matrix multiplication on the small blocks
 *
 * \param nr                    Number of rows
 * \param nc                    Number of columns
 * \param mcomp1                Components of matrix1
 * \param mat1                  Array of matrix1
 * \param mat2                  Array of matrix2
 * \param resmat                Store mat1*mat2 here
 *
 * \return 0: ok  1: error
 */
/****************************************************************************/
INT MatMulSmallBlock (SHORT nr, SHORT nc, SHORT n,
                      const SHORT *mcomp1, const DOUBLE *mat1,
                      const DOUBLE *mat2, DOUBLE *resmat);

/****************************************************************************/
/** \brief Invert a small system of equations
 *
 * \param n                     Size of the small system (n*n)
 * \param mcomp                 Components of matrix to invert
 * \param mat                   Array of this matrix
 * \param invmat                Store inverse matrix here
 *
 * \return 0: ok  1: error
 */
/****************************************************************************/
INT InvertSmallBlock (SHORT n, const SHORT *mcomp,
                      const DOUBLE *mat, DOUBLE *invmat);

/****************************************************************************/
/** \brief ???
 *
 * \param n                     Size of the small system (n*n)
 * \param scomp                 Components of the solution
 * \param sol                   Array of the solution
 * \param invcomp               Components of inverse matrix
 * \param inv                   Array of this matrix
 * \param rhs                   Find right hand side here
 *
 * \return 0: ok  1: error
 */
/****************************************************************************/
INT SolveInverseSmallBlock (SHORT n, const SHORT *scomp, DOUBLE *sol,
                            const SHORT *invcomp, const DOUBLE *inv,
                            const DOUBLE *rhs);

/****************************************************************************/
/** \brief Solve a small system of equations
 *
 * \param n                     Size of the small system (n*n)
 * \param scomp                 Components of the solution
 * \param sol                   Array of the solution
 * \param mcomp                 Components of matrix to invert
 * \param mat                   Array of this matrix
 * \param rhs                   Find right hand side here
 *
 * \return 0: ok  1: error
 */
/****************************************************************************/
INT SolveSmallBlock (SHORT n, const SHORT *scomp, DOUBLE *sol,
                     const SHORT *mcomp, const DOUBLE *mat, DOUBLE *rhs);


INT InvertFullMatrix (INT n, DOUBLE mat[LOCAL_DIM][LOCAL_DIM],
                      DOUBLE invmat[LOCAL_DIM][LOCAL_DIM]);
INT InvertSpdMatrix (INT n, DOUBLE mat[LOCAL_DIM][LOCAL_DIM],
                     DOUBLE invmat[LOCAL_DIM][LOCAL_DIM]);
INT Choleskydecomposition (INT n, DOUBLE *mat, DOUBLE *chol);
INT SolveFullMatrix (INT n, DOUBLE *sol, DOUBLE *mat, DOUBLE *rhs);
INT InvertFullMatrix_piv (INT n, DOUBLE *mat, DOUBLE *inv);
INT SolveFullMatrix2 (INT n, DOUBLE *sol, DOUBLE *mat, DOUBLE *rhs);
INT InvertFullMatrix_gen (INT n, DOUBLE *mat, DOUBLE *inv, DOUBLE *rhs,
                          INT *ipv);
END_UGDIM_NAMESPACE

#endif