MOOCHO (Single Doxygen Collection) Version of the Day
ConstrainedOptPack_QPSolverRelaxedTester.hpp
Go to the documentation of this file.
00001 // @HEADER
00002 // ***********************************************************************
00003 // 
00004 // Moocho: Multi-functional Object-Oriented arCHitecture for Optimization
00005 //                  Copyright (2003) Sandia Corporation
00006 // 
00007 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00008 // license for use of this work by or on behalf of the U.S. Government.
00009 // 
00010 // This library is free software; you can redistribute it and/or modify
00011 // it under the terms of the GNU Lesser General Public License as
00012 // published by the Free Software Foundation; either version 2.1 of the
00013 // License, or (at your option) any later version.
00014 //  
00015 // This library is distributed in the hope that it will be useful, but
00016 // WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018 // Lesser General Public License for more details.
00019 //  
00020 // You should have received a copy of the GNU Lesser General Public
00021 // License along with this library; if not, write to the Free Software
00022 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00023 // USA
00024 // Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov) 
00025 // 
00026 // ***********************************************************************
00027 // @HEADER
00028 
00029 #ifndef QP_SOLVER_RELAXED_TESTER_H
00030 #define QP_SOLVER_RELAXED_TESTER_H
00031 
00032 #include "ConstrainedOptPack_QPSolverRelaxed.hpp"
00033 #include "Teuchos_StandardMemberCompositionMacros.hpp"
00034 
00035 namespace ConstrainedOptPack {
00036 
00133 class QPSolverRelaxedTester {
00134 public:
00135 
00137   STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, opt_warning_tol );
00138 
00140   STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, opt_error_tol );
00141 
00143   STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, feas_warning_tol );
00144 
00146   STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, feas_error_tol );
00147 
00149   STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, comp_warning_tol );
00150 
00152   STANDARD_MEMBER_COMPOSITION_MEMBERS( value_type, comp_error_tol );
00153 
00155   QPSolverRelaxedTester(
00156     value_type    opt_warning_tol   = 1e-10
00157     ,value_type   opt_error_tol     = 1e-5
00158     ,value_type   feas_warning_tol  = 1e-10
00159     ,value_type   feas_error_tol    = 1e-5
00160     ,value_type   comp_warning_tol  = 1e-10
00161     ,value_type   comp_error_tol    = 1e-5
00162     );
00163 
00165   virtual ~QPSolverRelaxedTester() {}
00166 
00213   virtual bool check_optimality_conditions(
00214     QPSolverStats::ESolutionType solution_type
00215     ,const value_type infinite_bound
00216     ,std::ostream* out, bool print_all_warnings, bool print_vectors
00217     ,const Vector& g, const MatrixSymOp& G
00218     ,value_type etaL
00219     ,const Vector& dL, const Vector& dU
00220     ,const MatrixOp& E, BLAS_Cpp::Transp trans_E, const Vector& b
00221     ,const Vector& eL, const Vector& eU
00222     ,const MatrixOp& F, BLAS_Cpp::Transp trans_F, const Vector& f
00223     ,const value_type* obj_d
00224     ,const value_type* eta, const Vector* d
00225     ,const Vector* nu
00226     ,const Vector* mu, const Vector* Ed
00227     ,const Vector* lambda, const Vector* Fd
00228     );
00229 
00232   virtual bool check_optimality_conditions(
00233     QPSolverStats::ESolutionType solution_type
00234     ,const value_type infinite_bound
00235     ,std::ostream* out, bool print_all_warnings, bool print_vectors
00236     ,const Vector& g, const MatrixSymOp& G
00237     ,value_type etaL
00238     ,const Vector& dL, const Vector& dU
00239     ,const MatrixOp& E, BLAS_Cpp::Transp trans_E, const Vector& b
00240     ,const Vector& eL, const Vector& eU
00241     ,const value_type* obj_d
00242     ,const value_type* eta, const Vector* d
00243     ,const Vector* nu
00244     ,const Vector* mu, const Vector* Ed
00245     );
00246 
00249   virtual bool check_optimality_conditions(
00250     QPSolverStats::ESolutionType solution_type
00251     ,const value_type infinite_bound
00252     ,std::ostream* out, bool print_all_warnings, bool print_vectors
00253     ,const Vector& g, const MatrixSymOp& G
00254     ,value_type etaL
00255     ,const Vector& dL, const Vector& dU
00256     ,const MatrixOp& F, BLAS_Cpp::Transp trans_F, const Vector& f
00257     ,const value_type* obj_d
00258     ,const value_type* eta, const Vector* d
00259     ,const Vector* nu
00260     ,const Vector* lambda, const Vector* Fd
00261     );
00262 
00263 
00267   virtual bool check_optimality_conditions(
00268     QPSolverStats::ESolutionType solution_type
00269     ,const value_type infinite_bound
00270     ,std::ostream* out, bool print_all_warnings, bool print_vectors
00271     ,const Vector& g, const MatrixSymOp& G
00272     ,const Vector& dL, const Vector& dU
00273     ,const value_type* obj_d
00274     ,const Vector* d
00275     ,const Vector* nu
00276     );
00277 
00282   virtual bool check_optimality_conditions(
00283     QPSolverStats::ESolutionType solution_type
00284     ,const value_type infinite_bound
00285     ,std::ostream* out, bool print_all_warnings, bool print_vectors
00286     ,const Vector& g, const MatrixSymOp& G
00287     ,value_type etaL
00288     ,const Vector* dL, const Vector* dU
00289     ,const MatrixOp* E, BLAS_Cpp::Transp trans_E, const Vector* b
00290     ,const Vector* eL, const Vector* eU
00291     ,const MatrixOp* F, BLAS_Cpp::Transp trans_F, const Vector* f
00292     ,const value_type* obj_d
00293     ,const value_type* eta, const Vector* d
00294     ,const Vector* nu
00295     ,const Vector* mu, const Vector* Ed
00296     ,const Vector* lambda, const Vector* Fd
00297     );
00298 
00299 protected:
00300 
00306   virtual bool imp_check_optimality_conditions(
00307     QPSolverStats::ESolutionType solution_type
00308     ,const value_type infinite_bound
00309     ,std::ostream* out, bool print_all_warnings, bool print_vectors
00310     ,const Vector& g, const MatrixSymOp& G
00311     ,value_type etaL
00312     ,const Vector* dL, const Vector* dU
00313     ,const MatrixOp* E, BLAS_Cpp::Transp trans_E, const Vector* b
00314     ,const Vector* eL, const Vector* eU
00315     ,const MatrixOp* F, BLAS_Cpp::Transp trans_F, const Vector* f
00316     ,const value_type* obj_d
00317     ,const value_type* eta, const Vector* d
00318     ,const Vector* nu
00319     ,const Vector* mu, const Vector* Ed
00320     ,const Vector* lambda, const Vector* Fd
00321     );
00322 
00323 };  // end class QPSolverRelaxedTester
00324 
00325 } // end namespace ConstrainedOptimizationPackTypes
00326 
00327 #endif  // QP_SOLVER_RELAXED_TESTER_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines