/usr/include/trilinos/MoochoPack_NLPAlgoConfigMamaJama.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 | // @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_ALGO_CONFIG_MAMA_JAMA_H
#define RSQP_ALGO_CONFIG_MAMA_JAMA_H
#include "MoochoPack_NLPAlgoConfig.hpp"
#include "MoochoPack_NLPAlgo.hpp"
#include "MoochoPack_DecompositionSystemStateStepBuilderStd.hpp"
#include "OptionsFromStreamPack_OptionsFromStream.hpp"
namespace MoochoPack {
/** \brief This is a do all configuration class for <tt>NLPAlgo</tt>.
*
* This class relies on the builder class <tt>DecompositionSystemStateStepBuilderStd</tt>
* to perform many different tasks.
*
* Options specific for to this configuration class and the classes that
* it works with that can be set through <tt>this->set_options()</tt>, see the files
* <tt>\ref DecompositionSystemStateStepBuilderStd_opts "Moocho.opt.DecompositionSystemStateStepBuilderStd"</tt>.
* and <tt>\ref NLPAlgoConfigMamaJama_opts "Moocho.opt.NLPAlgoConfigMamaJama"</tt>.
*
* Note that all built-in support for basis permutations and direct sparse solvers
* can be left out if the macro MOOCHO_NO_BASIS_PERM_DIRECT_SOLVERS is defined
* This will result in smaller executables for programs that don't need this
* extra functionality..
*
* ToDo: Finish documentation!
*/
class NLPAlgoConfigMamaJama : public NLPAlgoConfig {
public:
/** \brief . */
NLPAlgoConfigMamaJama();
/** \brief . */
~NLPAlgoConfigMamaJama();
/** Overridden from NLPAlgoConfig */
//@{
/** \brief Set the <tt>OptionsFromStream</tt> object that will be used for specifying the options.
*
* @param options
* [in] If \c NULL then no options will be set. If <tt>!=NULL</tt> then
* this is the \c OptionsFromStream object that will be used to extract the
* options to use for the algorithm. The state of this object must
* be maintained by the client until \c config_algo_cntr() is called
* and it is at this point that the options are read.
*
*/
void set_options( const options_ptr_t& options );
/** \brief . */
const options_ptr_t& get_options() const;
/** \brief . */
void config_algo_cntr(NLPAlgoContainer* algo_cntr, std::ostream* trase_out);
/** \brief . */
void init_algo(NLPAlgoInterface* algo);
//@}
public:
/** @name Enums for variaous options categories */
//@{
/** \brief . */
enum EQuasiNewton {
QN_AUTO, QN_BFGS, QN_PBFGS, QN_LBFGS, QN_LPBFGS };
/** \brief . */
enum EHessianInitialization {
INIT_HESS_AUTO, INIT_HESS_SERIALIZE, INIT_HESS_IDENTITY, INIT_HESS_FIN_DIFF_SCALE_IDENTITY
, INIT_HESS_FIN_DIFF_SCALE_DIAGONAL, INIT_HESS_FIN_DIFF_SCALE_DIAGONAL_ABS };
/** \brief . */
enum EQPSolverType {
QP_AUTO, QP_QPSOL, QP_QPOPT, QP_QPKWIK, QP_QPSCHUR };
/** \brief . */
enum ELineSearchMethod {
LINE_SEARCH_AUTO, LINE_SEARCH_NONE, LINE_SEARCH_DIRECT
, LINE_SEARCH_2ND_ORDER_CORRECT, LINE_SEARCH_WATCHDOG
, LINE_SEARCH_FILTER };
/** \brief . */
enum EMeritFunctionType {
MERIT_FUNC_AUTO, MERIT_FUNC_L1, MERIT_FUNC_MOD_L1
, MERIT_FUNC_MOD_L1_INCR };
/** \brief . */
enum EL1PenaltyParamUpdate {
L1_PENALTY_PARAM_AUTO, L1_PENALTY_PARAM_WITH_MULT
, L1_PENALTY_PARAM_MULT_FREE };
//@}
/** @name Struct for options values */
//@{
/** \brief . */
struct SOptionValues {
// Constructor (sets default values)
SOptionValues();
// Variable Reduction, Range/Null space decompositions
value_type max_basis_cond_change_frac_; // If < , don't change default
// Reduced Hessian Approximations
bool exact_reduced_hessian_;
EQuasiNewton quasi_newton_;
int num_lbfgs_updates_stored_; // If < 0, don't change default
bool lbfgs_auto_scaling_;
EHessianInitialization hessian_initialization_;
// QP subproblem solvers
EQPSolverType qp_solver_type_;
bool reinit_hessian_on_qp_fail_;
// Line search methods
ELineSearchMethod line_search_method_;
EMeritFunctionType merit_function_type_;
EL1PenaltyParamUpdate l1_penalty_param_update_;
int full_steps_after_k_; // If < 0, do not use this option at all.
value_type max_pz_norm_;
int num_pz_damp_iters_;
};
//@}
private:
/// Builder class for some common code
DecompositionSystemStateStepBuilderStd decomp_sys_step_builder_;
/// Smart pointer to options
options_ptr_t options_;
/// Options structs
SOptionValues uov_; // options set by user
SOptionValues cov_; // current option values actually used
// ///////////////////////////////////////////////////////
// Private member functions
/// Read in the options from a stream
static void readin_options(
const OptionsFromStreamPack::OptionsFromStream& options
, SOptionValues *option_values, std::ostream* trase_out );
/// Set the defaults for options not set by the user
static void set_default_options(
const SOptionValues& user_option_values
, SOptionValues *current_option_values
, std::ostream* trase_out );
}; // end class NLPAlgoConfigMamaJama
/** \defgroup NLPAlgoConfigMamaJama_opts Options for NLPAlgoConfigMamaJama.
*
* The following is the contents of the file <tt>Moocho.opt.NLPAlgoConfigMamaJama</tt>
* which are options specific to the class <tt>MoochoPack::NLPAlgoConfigMamaJama</tt>
* and the class objects that it configures.
*
* \verbinclude configurations/MamaJama/Moocho.opt.NLPAlgoConfigMamaJama
*/
} // end namespace MoochoPack
#endif // RSQP_ALGO_CONFIG_MAMA_JAMA_H
|