This file is indexed.

/usr/include/scilab/gvn/VarExp.hxx is in scilab-include 6.0.1-1ubuntu1.

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
/*
 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 *  Copyright (C) 2015 - Scilab Enterprises - Calixte DENIZET
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 */

#ifndef __VAR_DEF_HXX__
#define __VAR_DEF_HXX__

#include <iostream>
#include <map>
#include <sstream>
#include <string>
#include <stdint.h>

namespace analysis
{

/**
 * \struct VarExp
 * \brief Represents a variable with an exponent
 *
 * This struct is mainly used in MultivariateMonomial.
 */
struct VarExp
{
    uint64_t var;

    // this field is mutable since it is not used in the hash computation
    // and could me modified.
    mutable unsigned int exp;

    /**
     * \brief constructor
     * \param _var the var number
     * \param _exp the exponent
     */
    VarExp(uint64_t _var, unsigned int _exp = 1) : var(_var), exp(_exp) { }

    /**
     * \brief Print this VarExp
     * \param vars a map containing association between var number and wstring
     * \return a wstring containing the representation of this VarExp
     */
    const std::wstring print(const std::map<uint64_t, std::wstring> & vars) const;

    /**
     * \brief Overload of the operator <<
     */
    friend std::wostream & operator<<(std::wostream & out, const VarExp & ve);

    /**
     * \brief Overload of the operator <<
     */
    inline bool operator==(const VarExp & R) const
    {
        return var == R.var && exp == R.exp;
    }

    /**
     * \struct Hash
     * \brief Helper struct to be used in unordered container
     */
    struct Hash
    {
        inline std::size_t operator()(const VarExp & ve) const
        {
            return ve.var;
        }
    };

    /**
     * \struct Eq
     * \brief Helper struct to be used in unordered container
     */
    struct Eq
    {
        inline bool operator()(const VarExp & L, const VarExp & R) const
        {
            return L.var == R.var;
        }
    };

    /**
     * \struct Compare
     * \brief Helper struct to be used in map or set
     */
    struct Compare
    {
        inline bool operator()(const VarExp & L, const VarExp & R) const
        {
            return L.var < R.var;
        }
    };
};

} // namespace analysis

#endif // __VAR_DEF_HXX__