This file is indexed.

/usr/include/trilinos/fei_impl_utils.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
79
80
81
82
83
84
85
86
87
#ifndef _fei_impl_utils_hpp_
#define _fei_impl_utils_hpp_

/*--------------------------------------------------------------------*/
/*    Copyright 2008 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.                    */
/*--------------------------------------------------------------------*/

#include <fei_macros.hpp>
#include <fei_fwd.hpp>
#include <fei_mpi.h>

#include <Teuchos_ParameterList.hpp>

#include <string>
#include <vector>
#include <map>


/** The fei namespace contains public functions, classes and interfaces.
*/
namespace fei {

/** The impl_utils namespace contains implementation-utilities. Helpers
  for implementation code, not part of the public API.
*/
namespace impl_utils {

/** Given a vector of sources and a vector of targets, fill the offsets vector
   such that if offsets[i] >= 0, then sources[i] == targets[offsets[i]].
   For any i such that sources[i] is not found in targets, then offsets[i] == -1.
   The offsets vector will have length equal to the length of sources.

   For efficiency, it is assumed that both sources and targets are sorted.
*/
void find_offsets(const std::vector<int>& sources,
                  const std::vector<int>& targets,
                  std::vector<int>& offsets);

/** pack an fei::FillableMat object into a pair of std::vector objects.
*/
void pack_FillableMat(const fei::FillableMat& mat,
                      std::vector<int>& intdata,
                      std::vector<double>& doubledata);

/** unpack a pair of std::vector objects into an fei::FillableMat object.
    The std::vector objects are assumed to have been produced by the
    function pack_FillableMat(...).
*/
void unpack_FillableMat(const std::vector<int>& intdata,
                        const std::vector<double>& doubledata,
                        fei::FillableMat& mat,
                        bool clear_mat_on_entry = true,
                        bool overwrite_entries = true);

void separate_BC_eqns(const fei::FillableMat& mat,
                    std::vector<int>& bcEqns,
                    std::vector<double>& bcVals);

void create_col_to_row_map(const fei::FillableMat& mat,
                           std::multimap<int,int>& crmap);

int remove_couplings(fei::FillableMat& mat);

void global_union(MPI_Comm comm,
                  const fei::FillableMat& localMatrix,
                  fei::FillableMat& globalUnionMatrix);

void global_union(MPI_Comm comm,
                  const fei::CSVec& localVec,
                  fei::CSVec& globalUnionVec);

void translate_to_reduced_eqns(const fei::Reducer& reducer, fei::CSRMat& mat);

void translate_to_reduced_eqns(const fei::Reducer& reducer, fei::CSVec& vec);

void add_to_graph(const fei::CSRMat& inmat, fei::Graph& graph);

void add_to_matrix(const fei::CSRMat& inmat, bool sum_into, fei::Matrix& matrix);

}//namespace impl_utils
}//namespace fei

#endif