00001 // Copyright 2009, 2011 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 "SensMeasurement.hpp" 00011 #include "SensSuffixHandler.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 SmartPtr<DenseVector> GetMeasurement(Index measurement_number); 00033 00034 virtual void SetSolution(Index measurement_number, SmartPtr<IteratesVector> sol); 00035 00038 virtual std::vector<Index> GetIntegerSuffix(std::string suffix_string); 00039 00040 private: 00041 00043 Index n_idx_; 00044 00046 SmartPtr<const DenseVectorSpace> x_owner_space_; 00048 SmartPtr<const DenseVectorSpace> s_owner_space_; 00050 SmartPtr<const DenseVectorSpace> y_c_owner_space_; 00052 SmartPtr<const DenseVectorSpace> y_d_owner_space_; 00054 SmartPtr<const DenseVectorSpace> z_L_owner_space_; 00056 SmartPtr<const DenseVectorSpace> z_U_owner_space_; 00057 00058 }; 00059 00060 } 00061 00062 #endif