00001 #include "PlayaOptState.hpp" 00002 00003 #ifndef HAVE_TEUCHOS_EXPLICIT_INSTANTIATION 00004 #include "PlayaVectorImpl.hpp" 00005 #endif 00006 00007 00008 namespace Playa 00009 { 00010 00011 00012 OptState::OptState(const Vector<double>& xCur, 00013 const double& fCur, 00014 const Vector<double>& gradCur) 00015 : status_(Opt_Continue), 00016 iter_(0), 00017 xCur_(xCur), 00018 xPrev_(), 00019 gradCur_(gradCur), 00020 gradPrev_(), 00021 fCur_(fCur), 00022 fPrev_(HUGE_VAL) 00023 {} 00024 00025 void OptState::update(const Vector<double>& xNew, 00026 const Vector<double>& gradNew, 00027 const double& fNew) 00028 { 00029 xPrev_.acceptCopyOf(xCur_); 00030 gradPrev_.acceptCopyOf(gradCur_); 00031 fPrev_ = fCur_; 00032 00033 xCur_.acceptCopyOf(xNew); 00034 gradCur_.acceptCopyOf(gradNew); 00035 fCur_ = fNew; 00036 00037 iter_++; 00038 } 00039 00040 00041 00042 }