This file is indexed.

/usr/include/trilinos/ConstrainedOptPack_QPOPT_CppDecl.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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
// @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
//
// C declarations for QPSOL functions.  These declarations should not have to change
// for different platforms.  As long as the fortran object code uses capitalized
// names for its identifers then the declarations in Teuchos_F77_wrappers.h should be
// sufficent for portability.

#ifndef QPOPT_CPP_DECL_H
#define QPOPT_CPP_DECL_H

#include "Teuchos_F77_wrappers.h"

namespace QPOPT_CppDecl {

// Declarations that will link to the fortran object file.
// These may change for different platforms

using FortranTypes::f_int;			// INTEGER
using FortranTypes::f_real;			// REAL
using FortranTypes::f_dbl_prec;		// DOUBLE PRECISION
using FortranTypes::f_logical;		// LOGICAL

// /////////////////////////////////////////////////////////////////////////
/** @name QPOPT interface functions.
  */

//@{

typedef FORTRAN_FUNC_PTR_DECL_UL_(void,QPHESS_FUNC,qphess_func) ( const f_int& N, const f_int& LDH
  , const f_int& JTHCOL, const f_dbl_prec* HESS, const f_dbl_prec* X, f_dbl_prec* HX
  , f_int* IW, const f_int& LENIW, f_dbl_prec* W, const f_int& LENW );

/// Call QPOPT through C++ declaration.
void qpopt(
  const f_int& N, const f_int& NCLIN
  ,const f_int& LDA, const f_int& LDH, const f_dbl_prec* A
  ,const f_dbl_prec* BL, const f_dbl_prec* BU, const f_dbl_prec* CVEC
  ,const f_dbl_prec* H, FORTRAN_NAME_UL_(QPHESS_FUNC,qphess_func) QPHESS, f_int* ISTATE, f_dbl_prec* X
  ,f_int& INFORM, f_int& ITER, f_dbl_prec& OBJ, f_dbl_prec* AX
  ,f_dbl_prec* CLAMDA, f_int* IW, const f_int& LENIW, f_dbl_prec* W
  ,const f_int& LENW
  );

// //////////////////////////////////////////////////////////
// Enumerations for QPOPT options

/// Use to specify problem types
enum EQPOPT_problem_type {
    FP								= 1,
    LP								= 2,
    QP1								= 3,
    QP2								= 4,
    QP3								= 5,
    QP4								= 6
};

/// Integer options
enum EQPOPT_int_option {
    CHECK_FREQUENCY					= 1,
    EXPAND_FREQUENCY				= 2,
    FEASIBILITY_PHASE_ITER_LIMIT	= 3,
    OPTIMALITY_PHASE_ITER_LIMIT		= 4,
    HESSIAN_ROWS					= 5,
    ITERATION_LIMIT					= 6,
    MAXIMUM_DEGREES_OF_FREEDOM		= 7,
    PRINT_FILE						= 8,
    PRINT_LEVEL						= 9,
    PROBLEM_TYPE					= 10,	// Use EQPOPT_problem_type
    SUMMARY_FILE					= 11
};


/// Logical options
enum EQPOPT_logical_option {
    WARM_START						= 1,
    LIST							= 2,
    MIN_SUM							= 3
};

/// Real options
enum EQPOPT_real_option {
    CRASH_TOLERANCE					= 1,
    FEASIBILITY_TOLERANCE			= 2,
    INFINITE_BOUND_SIZE				= 3,
    INFINITE_STEP_SIZE				= 4,
    OPTIMALITY_TOLERANCE			= 5,
    RANK_TOLERANCE					= 6
};

// ///////////////////////////////////////////////////////////
// C++ functions for setting QPOPT options.

/// Reset all of QPOPT's options to the defaults.
void reset_defaults();

/// Set an integer valued option
void set_int_option(EQPOPT_int_option option, const f_int&);

/// Set a logical valued option
void set_logical_option(EQPOPT_logical_option option, const f_logical&);

/// Set a real valued option
void set_real_option(EQPOPT_real_option option, const f_dbl_prec&);

// ////////////////////////////////////////////////////
// Declarations to link with Fortran QPSOL procedures

extern "C" {

FORTRAN_FUNC_DECL_UL(void,QPOPT,qpopt) ( const f_int& N, const f_int& NCLIN
  , const f_int& LDA, const f_int& LDH, const f_dbl_prec* A
  , const f_dbl_prec* BL, const f_dbl_prec* BU, const f_dbl_prec* CVEC
  , const f_dbl_prec* H, FORTRAN_NAME_UL_(QPHESS_FUNC,qphess_func) QPHESS, f_int* ISTATE, f_dbl_prec* X
  , f_int& INFORM, f_int& ITER, f_dbl_prec& OBJ, f_dbl_prec* AX
  , f_dbl_prec* CLAMDA, f_int* IW, const f_int& LENIW, f_dbl_prec* W
  , const f_int& LENW );

FORTRAN_FUNC_DECL_UL(void,QPHESS,qphess) ( const f_int& N, const f_int& LDH
  , const f_int& JTHCOL, const f_dbl_prec* H, const f_dbl_prec* X, f_dbl_prec* HX
  , f_int* IW, const f_int& LENIW, f_dbl_prec* W, const f_int& LENW );

FORTRAN_FUNC_DECL_UL_(void,QPOPT_SET_DEFAULTS,qpopt_set_defaults) ();

FORTRAN_FUNC_DECL_UL_(void,QPOPT_INT_OPT,qpopt_int_opt) (const f_int& option, const f_int& );

FORTRAN_FUNC_DECL_UL_(void,QPOPT_LOG_OPT,qpopt_log_opt) (const f_int& option, const f_logical& );

FORTRAN_FUNC_DECL_UL_(void,QPOPT_REAL_OPT,qpopt_real_opt) (const f_int& option, const f_dbl_prec& );

} // end extern "C"

// ///////////////////////////////////////////////////////////////////////////////
// Inline definitions.

inline
void qpopt( const f_int& N, const f_int& NCLIN
  , const f_int& LDA, const f_int& LDH, const f_dbl_prec* A
  , const f_dbl_prec* BL, const f_dbl_prec* BU, const f_dbl_prec* CVEC
  , const f_dbl_prec* H, FORTRAN_NAME_UL_(QPHESS_FUNC,qphess_func) QPHESS, f_int* ISTATE, f_dbl_prec* X
  , f_int& INFORM, f_int& ITER, f_dbl_prec& OBJ, f_dbl_prec* AX
  , f_dbl_prec* CLAMDA, f_int* IW, const f_int& LENIW, f_dbl_prec* W
  , const f_int& LENW )
{
  FORTRAN_FUNC_CALL_UL(QPOPT,qpopt) ( N, NCLIN, LDA, LDH, A, BL, BU, CVEC, H, QPHESS
    , ISTATE, X, INFORM, ITER, OBJ, AX, CLAMDA, IW, LENIW, W, LENW );
}

inline
void reset_defaults()
{	FORTRAN_FUNC_CALL_UL_(QPOPT_SET_DEFAULTS,qpopt_set_defaults) (); }

inline
void set_int_option(EQPOPT_int_option option, const f_int& val)
{	FORTRAN_FUNC_CALL_UL_(QPOPT_INT_OPT,qpopt_int_opt) ( option, val ); }

inline
void set_logical_option(EQPOPT_logical_option option, const f_logical& val)
{	FORTRAN_FUNC_CALL_UL_(QPOPT_LOG_OPT,qpopt_log_opt) ( option, val ); }

inline
void set_real_option(EQPOPT_real_option option, const f_dbl_prec& val)
{	FORTRAN_FUNC_CALL_UL_(QPOPT_REAL_OPT,qpopt_real_opt) ( option, val ); }

//@}

} // end namespace QPOPT_CppDecl

#endif // QPOPT_CPP_DECL_H