This file is indexed.

/usr/include/trilinos/fei_FillableMat.hpp is in libtrilinos-dev 10.4.0.dfsg-1ubuntu2.

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
/*--------------------------------------------------------------------*/
/*    Copyright 2005 Sandia Corporation.                              */
/*    Under the terms of Contract DE-AC04-94AL85000, there is a       */
/*    non-exclusive license for use of this work by or on behalf      */
/*    of the U.S. Government.  Export of this program may require     */
/*    a license from the United States Government.                    */
/*--------------------------------------------------------------------*/

#ifndef _fei_FillableMat_hpp_
#define _fei_FillableMat_hpp_

#include <vector>
#include <fei_FillableVec.hpp>
#include <fei_EqnBuffer.hpp>

namespace fei {

class FillableMat {
 public:
  FillableMat();
  FillableMat(EqnBuffer& eqnbuf);
  virtual ~FillableMat();

  FillableMat& operator=(const FillableMat& src);

  void setValues(double value);

  void createPosition(int row, int col);

  void sumInCoef(int row, int col, double coef);
  void putCoef(int row, int col, double coef);

  void sumInRow(int row, const int* cols, const double* coefs, unsigned len);
  void putRow(int row, const int* cols, const double* coefs, unsigned len);

  unsigned getNumRows() const;

  bool hasRow(int row) const;

  /** If row is not present and if 'create_if_not_already_present' is false,
      then throw std::runtime_error. */
  FillableVec* getRow(int row, bool create_if_not_already_present=false);

  typedef std::map<int, FillableVec*, std::less<int>,
                fei_Pool_alloc<std::pair<const int,FillableVec*> > > feipoolmat;

  typedef feipoolmat::iterator iterator;
  typedef feipoolmat::const_iterator const_iterator;

  iterator begin() {return matdata_.begin();}
  iterator end() {return matdata_.end();}

  const_iterator begin() const {return matdata_.begin();}
  const_iterator end() const {return matdata_.end();}

  void clear();

  bool operator==(const FillableMat& rhs) const;

  bool operator!=(const FillableMat& rhs) const;

 private:
  feipoolmat matdata_;
  fei_Pool_alloc<FillableVec> vecpool_;
}; //class FillableMat

/** Print the contents of a FillableMat to the given std::ostream. */
void print(std::ostream& os, const FillableMat& mat);

/** Return the number of nonzeros in mat. */
int count_nnz(const FillableMat& mat);

/** Fill a std::vector with the row-numbers from the given matrix. */
void get_row_numbers(const FillableMat& mat, std::vector<int>& rows);

}//namespace fei

#endif