source/numeric/nlpbase.cxx

Go to the documentation of this file.
00001 /*************************************************************************
00002  *
00003  *  The Contents of this file are made available subject to
00004  *  the terms of GNU Lesser General Public License Version 2.1.
00005  *
00006  *
00007  *    GNU Lesser General Public License Version 2.1
00008  *    =============================================
00009  *    Copyright 2005 by Kohei Yoshida.
00010  *    1039 Kingsway Dr., Apex, NC 27502, USA
00011  *
00012  *    This library is free software; you can redistribute it and/or
00013  *    modify it under the terms of the GNU Lesser General Public
00014  *    License version 2.1, as published by the Free Software Foundation.
00015  *
00016  *    This library is distributed in the hope that it will be useful,
00017  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00019  *    Lesser General Public License for more details.
00020  *
00021  *    You should have received a copy of the GNU Lesser General Public
00022  *    License along with this library; if not, write to the Free Software
00023  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00024  *    MA  02111-1307  USA
00025  *
00026  ************************************************************************/
00027 
00028 #include "numeric/nlpbase.hxx"
00029 #include "numeric/nlpmodel.hxx"
00030 #include "numeric/funcobj.hxx"
00031 
00032 using ::std::vector;
00033 
00034 namespace scsolver { namespace numeric { namespace nlp {
00035 
00036 struct BaseAlgorithmImpl
00037 {
00038         Model* pModel;
00039     vector<double> Solution;
00040     bool Debug;
00041 
00042     BaseAlgorithmImpl() :
00043         pModel(NULL),
00044         Debug(false)
00045     {
00046     }
00047 };
00048 
00049 BaseAlgorithm::BaseAlgorithm() : m_pImpl( new BaseAlgorithmImpl )
00050 {
00051 }
00052 
00053 BaseAlgorithm::~BaseAlgorithm()
00054 {
00055 }
00056 
00057 Model* BaseAlgorithm::getModel() const
00058 {
00059         return m_pImpl->pModel;
00060 }
00061 
00062 void BaseAlgorithm::setModel( Model* model )
00063 {
00064         m_pImpl->pModel = model;
00065 }
00066 
00067 const vector<double>& BaseAlgorithm::getSolution() const
00068 {
00069     return getModel()->getFuncObject()->getVars();
00070 }
00071 
00072 void BaseAlgorithm::setDebug(bool debug)
00073 {
00074     m_pImpl->Debug = debug;
00075 }
00076 
00077 bool BaseAlgorithm::isDebug() const
00078 {
00079     return m_pImpl->Debug;
00080 }
00081 
00082 }}}
00083 

Generated on Mon Jul 28 09:13:20 2008 for scsolver by  doxygen 1.5.3