This file is indexed.

/usr/include/JAGS/sarray/RangeIterator.h is in jags 3.1.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
#ifndef RANGE_ITERATOR_H_
#define RANGE_ITERATOR_H_

#include <vector>

#include <sarray/Range.h>

/**
 * @short Mutable index that traverses a Range
 *
 * A RangeIterator is a numeric vector that is bound to be inside a given
 * Range.  It has operators to allow traversing the Range in row- or
 * column-major order.
 *
 * @see Range
 */
class RangeIterator : public std::vector<int> {
    std::vector<int> _lower, _upper;
    unsigned int  _atend;
    //Forbid assignment
    RangeIterator &operator=(std::vector<int> const &);
public:
    /**
     * Constructor. The initial value of a RangeIterator is
     * the lower limit of the range argument.
     *
     * @param range. Range to traverse
     */
    RangeIterator(Range const &range);
    /**
     * Goes to the next index in column-major order, (i.e. moving the
     * left hand index fastest). If the RangeIterator at the upper
     * limit of the Range, then a call to nextLeft will move it to the
     * lower limit.
     * 
     * @return reference to self after incrementation
     * @see nextRight
     */
    RangeIterator &nextLeft();
    /**
     * Goes to the next index in row-major order (i.e. moving the right
     * hand index fastest) but otherwise behaves line nextLeft.
     *
     * @return reference to self after incrementation
     * @see nextLeft
     */
    RangeIterator &nextRight();
    /**
     * Returns a numeric counter of the number of times the
     * RangeIterator has gone past the upper bound of the Range (and
     * returned to the lower bound) in a call to nexLeft or nextRight.
     * The initial value is zero.
     */
    unsigned int atEnd() const;
};

#endif /* RANGE_ITERATOR_H_ */