This file is indexed.

/usr/include/givaro/givrandom.h is in libgivaro-dev 3.2.13-1.2.

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
// =================================================================== //
// Givaro : random generator
// a la Linbox ...
// Time-stamp: <13 Jul 07 14:40:27 Jean-Guillaume.Dumas@imag.fr> 
// =================================================================== //
#ifndef __GIVARO_RTANDOM__H__
#define __GIVARO_RTANDOM__H__
#include <givaro/givconfig.h>

extern "C" {
# include <sys/time.h>
# include <sys/resource.h>
}

// -----------------------------------------------------
// Fishman, G.S. "Multiplicative congruential random
// number generators ..." Math. Comp. 54:331-344 (1990)

#if __GIVARO__DONOTUSE_longlong__
#define _GIVRAN_MULTIPLYER_ 950706376UL
#define _GIVRAN_MODULO_     2147483647UL
#else
#define _GIVRAN_MULTIPLYER_ 950706376ULL
#define _GIVRAN_MODULO_     2147483647ULL
#endif

class GivRandom {
    mutable unsigned long _seed;
public:
    typedef GivRandom random_generator;

    GivRandom(const unsigned long s = 0) 
            : _seed(s) {
        if (! s) {
		struct timeval tp;
		gettimeofday(&tp, 0) ;
		_seed = (long)(tp.tv_usec);
	}
    }  
     
    GivRandom(const GivRandom& R) : _seed(R._seed) {}
    GivRandom& operator= (const GivRandom& R) { _seed = R._seed; return *this; }

    unsigned long seed() const { return _seed; }
    
#if defined(__GIVARO_INT64)
    unsigned long operator() () const {
        return _seed = (unsigned long)( 
            (__GIVARO_INT64)_GIVRAN_MULTIPLYER_ 
            * (__GIVARO_INT64)_seed
            % (__GIVARO_INT64)_GIVRAN_MODULO_ );
    }
#else
    unsigned long operator() () const {
        return _seed = (unsigned long)( 
            (unsigned long)_GIVRAN_MULTIPLYER_ 
            * _seed
            % (unsigned long)_GIVRAN_MODULO_ );
    }
#endif

    template<class XXX> XXX& operator() (XXX& x) const {
        return x = (XXX)this->operator() ();
    }        
    
};

#endif