This file is indexed.

/usr/include/linbox/matrix/sliced3/sliced-stepper.h is in liblinbox-dev 1.4.2-3.

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

#include "dense-sliced.h"
#include "sliced-domain.h"
#include <linbox/field/modular.h>

namespace LinBox{

// To fill a sliced vector
struct stepper {

	typedef SlicedDomain<Givaro::Modular<uint8_t> > Domain;
	typedef Sliced<Domain > Matrix;
	typedef Matrix::Scalar Scalar;
	typedef Matrix::RawIterator RawIterator;
	typedef Matrix::SlicedUnit SlicedUnit;

	Matrix &_A;
	RawIterator _r;
	size_t _i; 
	const static size_t SIZE = sizeof(Domain::Word_T)*8;
	Scalar _store[SIZE];

	stepper(Matrix & A) : _A(A), _r(_A.rawBegin()), _i(SIZE-1) { }

	virtual inline void flush(){
			//_r.pinfo();
			//std::cerr << std::endl;
			SlicedUnit &t = (*_r);
			t.zero();
			for(size_t i = _i + 1; i < SIZE; ++i){
				//std::cerr << (int)_store[i] << " ";
				/*
				t <<= 1;
				if(_store[i] > 1) t |= 1;
				else t.b0 |= _store[i];
				*/
				t <<= 1;
				t.b1 |= ((_store[i] & 2) >> 1); 
				t.b0 |= ((_store[i] & 1) | t.b1);
				//std::cerr << (int)t.b0 <<  " & " << (int)t.b1 << std::endl;
			} 
			//std::cerr << "----------------" << std::endl;
			_i = SIZE-1;
			++_r;
	}

	inline void step(Scalar e) { 
		//std::cerr << (int)e << " ";
		_store[_i--] = e;
		if(_i > SIZE) flush();
	}

	inline void row(){
		if(_i != SIZE-1) flush();
	}

};

} // LinBox

#endif // __SLICED_STEPPER_H