00001 // Copyright 2009 Hans Pirnay 00002 // All Rights Reserved. 00003 // This code is published under the Eclipse Public License. 00004 // 00005 // Date : 2009-07-10 00006 00007 #ifndef __AS_METADATAMEASUREMENT_HPP__ 00008 #define __AS_METADATAMEASUREMENT_HPP__ 00009 00010 #include "AsMeasurement.hpp" 00011 #include "AsSuffixHandler.hpp" 00012 #include "IpAlgStrategy.hpp" 00013 00014 00015 namespace Ipopt 00016 { 00017 00018 class MetadataMeasurement : public Measurement, public SuffixHandler, public AlgorithmStrategyObject 00019 { 00020 public: 00021 MetadataMeasurement(); 00022 00023 virtual ~MetadataMeasurement(); 00024 00025 /* AlgorithmStrategyObject */ 00026 virtual bool InitializeImpl(const OptionsList& options, 00027 const std::string& prefix); 00028 00029 /* measurement methods */ 00030 virtual std::vector<Index> GetInitialEqConstraints(); 00031 00032 virtual std::vector<Index> GetNmpcState(Index i); 00033 00034 virtual SmartPtr<DenseVector> GetMeasurement(Index measurement_number); 00035 00036 virtual void SetSolution(Index measurement_number, SmartPtr<IteratesVector> sol); 00037 00040 virtual std::vector<Index> GetIntegerSuffix(std::string suffix_string); 00041 00042 private: 00043 00045 Index n_idx_; 00046 00047 std::string select_step_; 00049 SmartPtr<const DenseVectorSpace> x_owner_space_; 00051 SmartPtr<const DenseVectorSpace> s_owner_space_; 00053 SmartPtr<const DenseVectorSpace> y_c_owner_space_; 00055 SmartPtr<const DenseVectorSpace> y_d_owner_space_; 00057 SmartPtr<const DenseVectorSpace> z_L_owner_space_; 00059 SmartPtr<const DenseVectorSpace> z_U_owner_space_; 00060 00061 }; 00062 00063 } 00064 00065 #endif