MOOCHO (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MoochoPack_PBFGS_helpers.hpp
Go to the documentation of this file.
1 // @HEADER
2 // ***********************************************************************
3 //
4 // Moocho: Multi-functional Object-Oriented arCHitecture for Optimization
5 // Copyright (2003) Sandia Corporation
6 //
7 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8 // license for use of this work by or on behalf of the U.S. Government.
9 //
10 // Redistribution and use in source and binary forms, with or without
11 // modification, are permitted provided that the following conditions are
12 // met:
13 //
14 // 1. Redistributions of source code must retain the above copyright
15 // notice, this list of conditions and the following disclaimer.
16 //
17 // 2. Redistributions in binary form must reproduce the above copyright
18 // notice, this list of conditions and the following disclaimer in the
19 // documentation and/or other materials provided with the distribution.
20 //
21 // 3. Neither the name of the Corporation nor the names of the
22 // contributors may be used to endorse or promote products derived from
23 // this software without specific prior written permission.
24 //
25 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 //
37 // Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov)
38 //
39 // ***********************************************************************
40 // @HEADER
41 
42 #ifndef PBFGS_HELPERS
43 #define PBFGS_HELPERS
44 
45 #include "MoochoPack_Types.hpp"
47 
48 namespace MoochoPack {
49 namespace PBFGSPack {
50 
55 
70  const ActSetStats &act_set_stats
71  ,const value_type act_set_frac_proj_start
72  ,EJournalOutputLevel olevel
73  ,std::ostream &out
74  );
75 
89  const SpVectorSlice &nu_indep
90  ,const DVectorSlice &s
91  ,const DVectorSlice &y
92  ,size_type *n_pz_R
93  ,size_type i_x_free[]
94  ,value_type *sRTsR
95  ,value_type *sRTyR
96  );
97 
128  const SpVectorSlice &nu_indep
129  ,const DVectorSlice &s
130  ,const DVectorSlice &y
131  ,const DVectorSlice &B_XX
132  ,const value_type sRTBRRsR
133  ,const value_type sRTyR
134  ,value_type *sXTBXXsX
135  ,value_type *sXTyX
136  ,size_type l_x_fixed_sorted[]
137  );
138 
200 void choose_fixed_free(
201  const value_type project_error_tol
202  ,const value_type super_basic_mult_drop_tol
203  ,const SpVectorSlice &nu_indep
204  ,const DVectorSlice &s
205  ,const DVectorSlice &y
206  ,const DVectorSlice &B_XX
207  ,const size_type l_x_fixed_sorted[]
208  ,EJournalOutputLevel olevel
209  ,std::ostream &out
210  ,value_type *sRTBRRsR
211  ,value_type *sRTyR
212  ,value_type *sXTBXXsX
213  ,value_type *sXTyX
214  ,size_type *n_pz_X
215  ,size_type *n_pz_R
216  ,size_type i_x_free[]
217  ,size_type i_x_fixed[]
218  ,ConstrainedOptPack::EBounds bnd_fixed[]
219  );
220 
222 
223 } // end namespace PBFGSPack
224 } // end namespace MoochoPack
225 
226 #endif // PBFGS_HELPERS
AbstractLinAlgPack::size_type size_type
void choose_fixed_free(const value_type project_error_tol, const value_type super_basic_mult_drop_tol, const SpVectorSlice &nu_indep, const DVectorSlice &s, const DVectorSlice &y, const DVectorSlice &B_XX, const size_type l_x_fixed_sorted[], EJournalOutputLevel olevel, std::ostream &out, value_type *sRTBRRsR, value_type *sRTyR, value_type *sXTBXXsX, value_type *sXTyX, size_type *n_pz_X, size_type *n_pz_R, size_type i_x_free[], size_type i_x_fixed[], ConstrainedOptPack::EBounds bnd_fixed[])
Choose the rest of i_x_free[] and i_x_fixed[].
void init_i_x_free_sRTsR_sRTyR(const SpVectorSlice &nu_indep, const DVectorSlice &s, const DVectorSlice &y, size_type *n_pz_R, size_type i_x_free[], value_type *sRTsR, value_type *sRTyR)
Initialize i_x_free[], s_R'*s_R and s_R'*y_R for free variables not in nu_indep.
Class for storing statistics about the changes in the active set of an SQP algorithm.
EJournalOutputLevel
enum for journal output.
std::ostream * out
bool act_set_calmed_down(const ActSetStats &act_set_stats, const value_type act_set_frac_proj_start, EJournalOutputLevel olevel, std::ostream &out)
Determine if the active set has calmed down enough and print this test.
void sort_fixed_max_cond_viol(const SpVectorSlice &nu_indep, const DVectorSlice &s, const DVectorSlice &y, const DVectorSlice &B_XX, const value_type sRTBRRsR, const value_type sRTyR, value_type *sXTBXXsX, value_type *sXTyX, size_type l_x_fixed_sorted[])
Sort fixed variables according to the condition:
SparseVectorSlice< SparseElement< index_type, value_type > > SpVectorSlice
DenseLinAlgPack::VectorSliceTmpl< value_type > DVectorSlice
AbstractLinAlgPack::value_type value_type