This file is indexed.

/usr/include/trilinos/MoochoPack_MoochoTrackerConsoleStd.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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
// @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 RSQP_TRACK_CONSOLE_STD_H
#define RSQP_TRACK_CONSOLE_STD_H

#include "MoochoPack_quasi_newton_stats.hpp"
#include "IterationPack_AlgorithmTracker.hpp"
#include "StopWatchPack_stopwatch.hpp"

namespace MoochoPack {

/** \brief This rSQP iteration class provides a tablular output suitable for
  * an 80 char wide console.
  * 
  * Specifically, these object produces a table with the following fields:
  * <ul>
  * <li> k : The SQP iteration counter starting at zero generally.
  * <li> f : (iteration quantity f_k)
  * 			The value of the objective function at the current iteration.
  * 			This value may be scaled and the scaling factor will be
  * 			printed out before the table is produced.
  * <li> ||c||s : (iteration quantity feas_kkt_err_k)
  * 			The scaled value of the constraints norm (usually the infinity
  * 			norm) at the current iteration.  This is the value compared
  * 			to the convergence criteria feas_tol (see the step
  * 			class \c CheckConvergenceStd_AddedStep).
  * <li> ||rGL||s : (iteration quantity opt_kkt_err_k)
  * 			The scaled value of the norm (usually the infinity
  * 			norm) of the reduced gradient of the Lagrangian
  * 			at the current iteration.  This is the value compared
  * 			to the convergence criteria opt_tol (see the step
  * 			class \c CheckConvergenceStd_AddedStep).
  * <li> QN : (iteration quantity quasi_newton_stats_k)
  * 			Information about the quasi-Newton update of the reduced
  * 			Hessian rHL_k.
  * 			<ul>
  * 			<li> IN : rHL_k was reinitialized (identity?)
  * 			<li> UP : A standard quasi-Newton update was performed on
  * 				rHL_km1 -> rHL_k
  * 			<li> DU : A dampened quasi-Newton update (BFGS) was performed
  * 				on rHL_km1 -> rHL_k.
  * 			<li> SK : The quasi-Newton update was skipped because the
  * 				current iterate was in the wrong region.
  * 			<li> IS : The quasi-Newton update (BFGS) was skipped because
  * 				it was not positive definite or illdefined.
  * 			</ul>
  *	<li> \#act : (iteration quantity nu_k.nz())
  *				The number of active variable bounds at the current iteration.
  *	<li> ||Ypy||2 : (iteration quantity Ypy_k)
  *				The 2 norm of the Range space (feasibility) contribution to the
  *				full step d.
  *	<li> ||Zpz||2 : (iteration quantity Zpz_k)
  *				The 2 norm of the Null space (optimality) contribution to the
  *				full step d.
  *	<li> ||d||inf : (iteration quantity d_k)
  *				The infinity norm of the step vector for the primal unknowns
  *				x_kp1 = x_k + alpha_k * d_k.
  * </ul>
  * 
  * The above quantities can tell you a lot about the progress of the SQP
  * algorithm.
  * 
  * ToDo: Finish discussion.
  * 
  * After the algorithm is finished the total solution time will be printed as
  * well as if the solution was found or not.  Also, the number of function and
  * gradient evaluations will be printed.  Note that the timer is started from
  * the moment this object is created or when set_output_stream(...) is called.
  */
class MoochoTrackerConsoleStd
  : public IterationPack::AlgorithmTracker
{
public:

  /// Construct with an output stream (console presumably)
  MoochoTrackerConsoleStd(const ostream_ptr_t& o, const ostream_ptr_t& journal_out);

  /// Set the output stream for console outputting.
  void set_output_stream(const ostream_ptr_t& o);

  /// Get the output stream for console outputting.
  const ostream_ptr_t& get_output_stream() const;

  /** @name Overridden from AlgorithmTracker */
  //@{

  /// Restarts the timer
  void initialize();
  /** \brief . */
  void output_iteration(const Algorithm& algo) const;
  /** \brief . */
  void output_final(const Algorithm& algo, EAlgoReturn algo_return) const;

  //@}

protected:

  /// Print the top header to the output
  void print_top_header(const NLPAlgoState &s, const NLPAlgo& algo) const;

  /// Print the header to the output
  void print_header(const NLPAlgoState &s, const NLPAlgo& algo) const;

  std::ostream& o() const
  {	return *o_; }

private:

  // ///////////////////////////////////////////
  // Private types

  enum { NUM_PRINT_LINES = 10 };
  
  // ///////////////////////////////////////////
  // Private data members

  ostream_ptr_t                       o_;
  mutable StopWatchPack::stopwatch    timer_;
  mutable int                         printed_lines_;
  quasi_newton_stats_iq_member        quasi_newton_stats_;

  // Static formating info.
  static int		w_i2_;
  static char		ul_i2_[];
  static int		w_i4_;
  static char		ul_i4_[];
  static int		p2_;
  static int		w_p2_;
  static char		ul_p2_[];
  static int		p3_;
  static int		w_p3_;
  static char		ul_p3_[];

  // ///////////////////////////////////////////
  // Private member funcitons

  // Not defined and not to be called
  MoochoTrackerConsoleStd();
};	// end class MoochoTrackerConsoleStd

}	// end namespace MoochoPack 

#endif	// RSQP_TRACK_CONSOLE_STD_H