This file is indexed.

/usr/include/trilinos/IterationPack_AlgorithmStep.hpp is in libtrilinos-dev 10.4.0.dfsg-1ubuntu2.

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
// @HEADER
// ***********************************************************************
// 
// Moocho: Multi-functional Object-Oriented arCHitecture for Optimization
//                  Copyright (2003) Sandia Corporation
// 
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
// license for use of this work by or on behalf of the U.S. Government.
// 
// This library is free software; 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 2.1 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
// Lesser General Public License for more details.
//  
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
// Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov) 
// 
// ***********************************************************************
// @HEADER

#ifndef ALGORITHM_STEP_H
#define ALGORITHM_STEP_H

#include <iosfwd>

#include "IterationPack_Types.hpp"

namespace IterationPack {

/** \brief Base type for all objects that perform steps in an <tt>Algorithm</tt>.
  */
class AlgorithmStep {
public:

  /** \brief . */
  typedef size_t poss_type;

  /** @name Pure virtual functions that must be overridden */
  //@{

  /** \brief Called by <tt>Algorithm</tt> to perform a main, pre or post step at step_poss and assoc_step_poss.
    *
    * @return Should return false if this step object has terminated the algorithm or
    * redirected control to another step.  In this case it is assumed that <tt>this</tt> called
    * <tt>algo\ref Algorithm::terminate ".terminate(...)"</tt>
    * or <tt>algo\ref Algorithm::do_step_next ".do_step_next(...)"</tt>.
    */
  virtual bool do_step(
    Algorithm&             algo
    ,poss_type             step_poss
    ,EDoStepType           type
    ,poss_type             assoc_step_poss
    ) = 0;

  //@}

  /** @name Virtual functions with default implementations */
  //@{

  /** \brief . */
  virtual ~AlgorithmStep() {}

  /** \brief Called by <tt>Algorithm</tt> just before the algorithm is run.
   *
   * This allows step objects to reinitialize themselves just before
   * an algorithm is run.
   *
   * The default implementation does nothing.
   */
  virtual void initialize_step(
    Algorithm&             algo
    ,poss_type             step_poss
    ,EDoStepType           type
    ,poss_type             assoc_step_poss
    )
    {}

  /** \brief Called by <tt>Algorithm</tt> to inform when a runtime configuration change
   * is finihed.
   *
   * This function is only called when the algorithm is already running
   * but the configuration has changed.
   *
   * The default implementation does nothing.
   */
  virtual void inform_updated(
    Algorithm&             algo
    ,poss_type             step_poss
    ,EDoStepType           type
    ,poss_type             assoc_step_poss
    )
    {}

  /** \brief Called by <tt>Algorithm</tt> just after an algorithm is terminiated.
   *
   * This allows step objects to perform any final processing or cleanup
   * just after an algorithm is finished.
   *
   * The default implementation does nothing.
   */
  virtual void finalize_step(
    Algorithm&             algo
    ,poss_type             step_poss
    ,EDoStepType           type
    ,poss_type             assoc_step_poss
    )
    {}

  /** \brief Called by <tt>Algorithm::print_algorithm()</tt> to print out what this step does in Matlab like format.
    *
    * The default does nothing.
    */
  virtual void print_step(
    const Algorithm&         algo
    ,poss_type               step_poss
    ,EDoStepType             type
    ,poss_type               assoc_step_poss
    , std::ostream&          out
    ,const std::string&      leading_str
    ) const
  {}

  //@}

};	// end class AlgorithmStep

}	// end namespace IterationPack 

#endif // ALGORITHM_STEP_H