Ipopt  trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
matlabinfo.hpp
Go to the documentation of this file.
00001 // Copyright (C) 2008 Peter Carbonetto. All Rights Reserved.
00002 // This code is published under the Eclipse Public License.
00003 //
00004 // Author: Peter Carbonetto
00005 //         Dept. of Computer Science
00006 //         University of British Columbia
00007 //         September 25, 2008
00008 
00009 #ifndef INCLUDE_MATLABINFO
00010 #define INCLUDE_MATLABINFO
00011 
00012 #include "mex.h"
00013 #include "IpIpoptApplication.hpp"
00014 
00015 using Ipopt::ApplicationReturnStatus;
00016 
00017 // Class MatlabInfo.
00018 // -----------------------------------------------------------------
00019 // An object of this class stores all the information we will pass 
00020 // back to MATLAB upon termination of IPOPT.
00021 class MatlabInfo {
00022 public:
00023 
00024   // Create a new info object and store the information in a MATLAB
00025   // array. The input pointer will point to the the newly created
00026   // MATLAB array. Since the user has an opportunity to modify the
00027   // MATLAB array pointed to by "ptr", we do not destroy the array
00028   // when the MatlabInfo object is destroyed. It is up to the user to
00029   // do that.
00030   explicit MatlabInfo (mxArray*& ptr);
00031 
00032   // The destructor.
00033   ~MatlabInfo() { };
00034 
00035   // Access and modify the exit status and solution statistics.
00036   ApplicationReturnStatus getExitStatus () const;
00037   void                    setExitStatus (ApplicationReturnStatus status);
00038   void                    setIterationCount (int iter);
00039   void                    setFuncEvals(int obj, int con, int grad, int jac, int hess);
00040   void                    setCpuTime (double cpu);
00041 
00042   // Access and modify the Lagrange multipliers.
00043   const double* getmultlb     () const;
00044   const double* getmultub     () const;
00045   const double* getmultconstr () const;
00046   void          setmultlb     (int n, const double* zl);
00047   void          setmultub     (int n, const double* zu);
00048   void          setmultconstr (int m, const double* lambda);
00049 
00050 protected:
00051   mxArray* ptr;  // All the information is stored in a MATLAB array.
00052 };
00053 
00054 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines