This file is indexed.

/usr/include/opengm/utilities/shape_accessor.hxx is in libopengm-dev 2.3.6-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
 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
#pragma once
#ifndef OPENGM_SHAPE_ACCESSOR_HXX
#define OPENGM_SHAPE_ACCESSOR_HXX

namespace opengm {

/// \cond HIDDEN_SYMBOLS

   template<class FUNCTION>
   class FunctionShapeAccessor {
   public:
      typedef size_t value_type;
      typedef const value_type reference;
      typedef const value_type* pointer;
      typedef const FUNCTION& factor_reference;
      typedef const FUNCTION* factor_pointer;

      FunctionShapeAccessor(factor_pointer f = NULL)
         : factor_(f) 
         {}
      FunctionShapeAccessor(factor_reference f)
         : factor_(&f) 
         {}
      size_t size() const { 
         return factor_ == NULL ? 0 : factor_->dimension();
      }
      value_type operator[](const size_t j) { 
         OPENGM_ASSERT(j<factor_->dimension());
         return factor_->shape(j); 
      }
      const value_type operator[](const size_t j) const { 
         OPENGM_ASSERT(j<factor_->dimension());
         return factor_->shape(j); 
      }
      bool operator==(const FunctionShapeAccessor<FUNCTION> & other) const 
         { return factor_ == other.factor_; }
   
   private:
      factor_pointer factor_;
   };

   template<class FACTOR>
   class FactorShapeAccessor {
   public:
      typedef size_t value_type;
      typedef const value_type reference;
      typedef const value_type* pointer;
      typedef const FACTOR& factor_reference;
      typedef const FACTOR* factor_pointer;

      FactorShapeAccessor(factor_pointer f = 0)
         : factor_(f) 
         {}
      FactorShapeAccessor(factor_reference f)
         : factor_(&f) 
         {}
      size_t size() const 
         { return factor_ == 0 ? 0 : factor_->numberOfVariables(); }
      reference operator[](const size_t j) 
         { return factor_->numberOfLabels(j); }
      const value_type operator[](const size_t j) const 
         { return factor_->numberOfLabels(j); }
      bool operator==(const FactorShapeAccessor<FACTOR> & other) const 
         { return factor_ == other.factor_; }
   
   private:
      factor_pointer factor_;
   };
   
   template<class FACTOR>
   class FactorVariablesAccessor {
   public:
      typedef typename FACTOR::IndexType IndexType;
      typedef IndexType value_type;
      typedef const value_type reference;
      typedef const value_type* pointer;
      typedef const FACTOR& factor_reference;
      typedef const FACTOR* factor_pointer;

      FactorVariablesAccessor(factor_pointer f = 0)
         : factor_(f) 
         {}
      FactorVariablesAccessor(factor_reference f)
         : factor_(&f) 
         {}
      IndexType size() const 
         { return factor_ == 0 ? 0 : factor_->numberOfVariables(); }
      reference operator[](const size_t j) 
         { return factor_->numberOfLabels(j); }
      const value_type operator[](const size_t j) const 
         { return factor_->variableIndex(j); }
      bool operator==(const FactorVariablesAccessor<FACTOR> & other) const 
         { return factor_ == other.factor_; }
   
   private:
      factor_pointer factor_;
   };

/// \endcond

} // namespace opengm

#endif // #ifndef OPENGM_SHAPE_ACCESSOR_HXX