This file is indexed.

/usr/include/root/Math/GSLQuasiRandom.h is in libroot-math-mathmore-dev 5.34.14-1build1.

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
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
// @(#)root/mathmore:$Id$
// Author: L. Moneta, A. Zsenei   08/2005 

 /**********************************************************************
  *                                                                    *
  * Copyright (c) 2004 ROOT Foundation,  CERN/PH-SFT                   *
  *                                                                    *
  * This library is free software; you can redistribute it and/or      *
  * modify it under the terms of the GNU General Public License        *
  * as published by the Free Software Foundation; either version 2     *
  * of the License, or (at your option) any later version.             *
  *                                                                    *
  * This library is distributed in the hope that it will be useful,    *
  * but WITHOUT ANY WARRANTY; without even the implied warranty of     *
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   *
  * General Public License for more details.                           *
  *                                                                    *
  * You should have received a copy of the GNU General Public License  *
  * along with this library (see file COPYING); if not, write          *
  * to the Free Software Foundation, Inc., 59 Temple Place, Suite      *
  * 330, Boston, MA 02111-1307 USA, or contact the author.             *
  *                                                                    *
  **********************************************************************/

// Header file for class GSLQuasiRandom
// 
// Created by: moneta  at Sun Nov 21 16:26:03 2004
// 
// Last update: Sun Nov 21 16:26:03 2004
// 
#ifndef ROOT_Math_GSLQuasiRandom
#define ROOT_Math_GSLQuasiRandom

#include <string>
#include <vector>

namespace ROOT {
namespace Math {


   class GSLQRngWrapper; 

   //_________________________________________________________________
   /**
      GSLQuasiRandomEngine
      Base class for all GSL quasi random engines, 
      normally user instantiate the derived classes
      which creates internally the generator and uses the class ROOT::Math::QuasiRandom

       
      @ingroup Random
   */ 
   class GSLQuasiRandomEngine { 

   public: 

     /** 
         default constructor. No creation of rng is done. 
         If then Initialize() is called an engine is created 
         based on default GSL type (MT) 
     */
      GSLQuasiRandomEngine();  

      /** 
          create from an existing rng. 
          User manage the rng pointer which is then deleted olny by calling Terminate()
      */
      GSLQuasiRandomEngine( GSLQRngWrapper * rng);  

      /**
         Copy constructor : clone the contained GSL generator
       */
      GSLQuasiRandomEngine(const GSLQuasiRandomEngine & eng);  

      /**
         Assignment operator : make a deep copy of the contained GSL generator
       */
      GSLQuasiRandomEngine & operator=(const GSLQuasiRandomEngine & eng);  

      /**
         initialize the generator giving the dimension of the sequence
         If no rng is present the default one based on Mersenne and Twister is created 
       */
      void Initialize(unsigned int dimension);

      /**
         delete pointer to contained rng 
       */
      void Terminate(); 

      /**
         call Terminate()
      */
      virtual ~GSLQuasiRandomEngine();

      /**
         Generate a  random number between ]0,1[
      */
      double operator() () const;  

      /**
         Fill array x with random numbers between ]0,1[
      */
      bool operator() (double * x) const;  

      /**
         Skip the next n random numbers
       */
      bool Skip(unsigned int n) const;    

      /**
         Generate an array of quasi random numbers 
         The iterators points to the random numbers 
      */
      bool GenerateArray(double * begin, double * end) const;  

      /**
         return name of generator
      */ 
      std::string Name() const; 

      /**
         return the state size of generator 
      */ 
      unsigned int Size() const; 

      /**
         return the dimension of generator 
      */ 
      unsigned int NDim() const;

      

   protected: 

      /// internal method used by the derived class to set the type of generators 
      void SetType(GSLQRngWrapper * r) { 
         fQRng = r; 
      }

   private: 

      GSLQRngWrapper * fQRng;                // pointer to GSL generator wrapper (managed by the class)
      

   }; 
   
   //_____________________________________________________________________________________
   /**
      Sobol generator
      gsl_qrng_sobol from 
      <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Quasi_002drandom-number-generator-algorithms.html#Quasi_002drandom-number-generator-algorithms">here</A>

      
      @ingroup Random
   */
   class GSLQRngSobol : public GSLQuasiRandomEngine { 
   public: 
      GSLQRngSobol(); 
   };

   //_____________________________________________________________________________________
   /**
      Niederreiter generator
      gsl_qrng_niederreiter_2 from 
      <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Quasi_002drandom-number-generator-algorithms.html#Quasi_002drandom-number-generator-algorithms">here</A>

      @ingroup Random
   */
   class GSLQRngNiederreiter2 : public GSLQuasiRandomEngine { 
   public: 
      GSLQRngNiederreiter2(); 
   };




} // namespace Math
} // namespace ROOT


#endif /* ROOT_Math_GSLQuasiRandom */