This file is indexed.

/usr/include/CGAL/Polynomial/Polynomial.h is in libcgal-dev 4.2-5ubuntu1.

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
// Copyright (c) 2005  Stanford University (USA).
// All rights reserved.
//
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 3 of the License,
// or (at your option) any later version.
//
// Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
//
// $URL$
// $Id$
// 
//
// Author(s)     : Daniel Russel <drussel@alumni.princeton.edu>

#ifndef CGAL_POLYNOMIAL_POLYNOMIAL_H_
#define CGAL_POLYNOMIAL_POLYNOMIAL_H_
#include <CGAL/Polynomial/basic.h>

#include <CGAL/Polynomial/internal/interval_arithmetic.h>
#include <CGAL/Polynomial/internal/Polynomial_impl.h>
//#include <utility>
#include <sstream>

namespace CGAL { namespace POLYNOMIAL {

//! A basic polynomial class
/*!  The implementation is proved by internal::Polynomial_impl. This
  strips leading 0s. When debugging is on, a string representation of
  the polynomial is stored. This is fairly key for debugging, but
  rather slow.
*/
template <class NTT>
class Polynomial: public internal::Polynomial_impl<Polynomial<NTT>, NTT>
{
    typedef Polynomial<NTT> This;
    typedef internal::Polynomial_impl<This, NTT>  Parent;

// friend class internal::Polynomial_impl<This, NTT>; // NOT SO CLEAN

#ifdef CGAL_POLYNOMIAL_STRING
    typedef std::string Approximation;
    void generate_approximation() const
    {
        std::ostringstream s;
        this->write(s);
        approximation_= s.str();
//return s.str();
    }
#endif

    void approximate() const
    {
#ifdef CGAL_POLYNOMIAL_STRING
        generate_approximation();
#endif
    }
    public:

// hack to try to fix pgCC
//using typename Parent::iterator;
        typedef typename Parent::iterator iterator;

//================
// CONSTRUCTORS
//================

//! Default
        Polynomial() {
#ifdef CGAL_POLYNOMIAL_STRING
            approximation_="Not initialized.";
#endif
        }

//! Make a constant polynomial
        Polynomial(const NTT& c): Parent(c) {
#ifdef CGAL_POLYNOMIAL_STRING
            approximate();
#endif
            strip_leading_zeros();
        }

//! Make a polynomial from an iterator range
        template<typename Iterator>
            Polynomial(Iterator first, Iterator beyond)
        : Parent(first,beyond) {
#ifdef CGAL_POLYNOMIAL_STRING
            approximate();
#endif
            strip_leading_zeros();
        }

        Polynomial(const Parent &p): Parent(p) {
#ifdef CGAL_POLYNOMIAL_STRING
            approximate();
#endif
            strip_leading_zeros();
        }

    protected:

        void strip_leading_zeros() {
            if ( this->is_zero() ) { return; }

            do {
                Sign s = CGAL::sign( this->coefs_[this->degree()] );
                if ( s == ZERO ) {
                    CGAL_Polynomial_assertion( this->coefs_.size() > 0 );
                    this->coefs_.resize(this->coefs_.size() - 1);
                }
                else {
                    break;
                }
            } while ( !this->is_zero() );
        }

    public:
        void finalize() {
            strip_leading_zeros();
        }

    private:
#ifdef CGAL_POLYNOMIAL_STRING
/*! A string represneting the approximation of the polynomial. For
  inspection in the debugger.*/
        mutable Approximation approximation_;
#endif
};

} } //namespace CGAL::POLYNOMIAL
#endif