This file is indexed.

/usr/include/polybori/CDelayedTermIter.h is in libpolybori-dev 0.5~rc1-2.1build2.

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
// -*- c++ -*-
//*****************************************************************************
/** @file CDelayedTermIter.h
 *
 * @author Alexander Dreyer
 * @date 2006-09-04
 * 
 * A specialization of CTermIter, which construct terms only if on explicite
 * calls. 
 *
 * @par Copyright:
 *   (c) 2006 by The PolyBoRi Team
 *
 * @internal 
 * @version \$Id: CDelayedTermIter.h,v 1.9 2008/07/08 21:41:58 alexanderdreyer Exp $
 *
 * @par History:
 * @verbatim
 * $Log: CDelayedTermIter.h,v $
 * Revision 1.9  2008/07/08 21:41:58  alexanderdreyer
 * Merge: from developer's repository
 *
 * Revision 1.5  2007/11/06 15:03:34  dreyer
 * CHANGE: More generic copyright
 *
 * Revision 1.4  2007/03/21 08:55:08  dreyer
 * ADD: first version of block_dlex running
 *
 * Revision 1.3  2007/02/14 10:30:13  dreyer
 * FIX: wrong constant term
 *
 * Revision 1.2  2006/09/07 16:04:32  dreyer
 * ADD: CDegLexIter.h
 *
 * Revision 1.1  2006/09/04 15:58:42  dreyer
 * ADD: DegLexOrder and preparations
 *
 * @endverbatim
**/
//*****************************************************************************

// include basic definitions
#include "pbori_defs.h"

// include CTermIter definitions
#include "CTermIter.h"

#ifndef CDelayedTermIter_h_
#define CDelayedTermIter_h_

BEGIN_NAMESPACE_PBORI

/** @class CDelayedTermIter
 * @brief This class defines extend a given PolyBoRi degree iterator
 *
 **/

template <class TermType, class AppendOp, class TerminalValueOp, class DegIterBase>
class CDelayedTermIter:
  public DegIterBase {

public:
  typedef TermType term_type;
  typedef typename term_type::size_type size_type;
  typedef DegIterBase base;


  typedef CDelayedTermIter<term_type, AppendOp, TerminalValueOp, DegIterBase> self;

  typedef typename base::stack_type stack_type;
  typedef AppendOp appendop_type;
  typedef TerminalValueOp terminalop_type;

  /// Default constructor
  CDelayedTermIter(): base() {}

  /// Copy constructor
  CDelayedTermIter(const self& rhs): base(rhs) {}

  /// Construct from degree iterator type
  CDelayedTermIter(const base& rhs): base(rhs) {}

  /// Destructor
  ~CDelayedTermIter() {}

  term_type term() const {
    stack_type the_stack(base::getStack());

    term_type result;
    result = terminalop_type()(result, !the_stack.empty());

    appendop_type do_append;

    while(!the_stack.empty() && the_stack.top().isValid()) {

      result =  do_append(result, *the_stack.top() );
      the_stack.pop();
    }

    return result;
  }
};


END_NAMESPACE_PBORI

#endif