This file is indexed.

/usr/include/singular/gfanlib/gfanlib_traversal.h is in libsingular4-dev-common 1:4.1.0-p3+ds-2build1.

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
#ifndef GFANLIB_TRAVERSAL_H_INCLUDED
#define GFANLIB_TRAVERSAL_H_INCLUDED

#include "gfanlib_zfan.h"

namespace gfan{
/*
 This file contains the generic algorithm for traversing a connected component of a pure fan up to symmetry.
 */
class FanTraverser
{
public:
        /**
         * Go to the cone which is connected to the current facet through the ridge in direction ray.
         * The "ridge" is a relative interior point of the ridge.
         */
        virtual void changeCone(ZVector const &ridgeVector, ZVector const &rayVector)=0;
/**
 * Compute the link of the fan in the ridge given by the vector ridge IS THIS A FACET NORMAL OR AN INTERIOR POINT?
 * This gives a list of symmetry invariant points under the actions keeping the link fixed.
 */
        virtual std::list<ZVector> link(ZVector const &ridgeVector)=0;
        virtual ZCone & refToPolyhedralCone()=0;
/**
 * If there is no cone state data for the traverser, half of the changeCone() calls can be avoided.
 * That this is a valid of optimization for the ConeTraverser is indicated returning true in the following function.
 */
        virtual bool hasNoState()const;
};

class Target
{
public:
        virtual bool process(FanTraverser &traverser)=0;
};

class FanBuilder : public Target
{
        ZFan coneCollection;
public:
        ZFan const &getFanRef(){return coneCollection;}
        FanBuilder(int n, SymmetryGroup const &sym);
        bool process(FanTraverser &Traverser);
};

void traverse(FanTraverser &traverser, Target &target, SymmetryGroup const *sym=0);
};
#endif