Diana  0.8.3
CapeNLPParameter.hpp
00001 #ifndef CAPE_NLP_PARAMETER_H
00002 #define CAPE_NLP_PARAMETER_H
00003 
00004 #include "CapeParameter.hpp"
00005 
00006 namespace Common {
00007   namespace Parameter {
00008     
00009     class ICapeNLPRealParameterSpec : virtual public ICapeRealParameterSpec {
00010     public:
00012       virtual Common::Types::CapeDouble Precision() const
00013         throw (Common::Error::ECapeUnknown) = 0;
00014     };
00015   }
00016 }
00017 namespace Numeric {
00018   namespace Solvers {
00019     namespace NLPTasks {
00020 
00024       enum eCapeNLPTaskType  {
00025         CAPE_NULLRANGE  = 0x00,
00026         CAPE_FIRSTRANGE = 0x01,
00027         CAPE_SQP        = 0x02 
00028       };
00029 
00033       enum eCapeOptPointEntry {
00034         CAPE_OBJFUNC    = 0x01, 
00035         CAPE_GXCONSTR   = 0x02, 
00036         CAPE_HXCONSTR   = 0x04, 
00037         CAPE_GRADIENT   = 0x08, 
00038         CAPE_LSJAC      = 0x0F  
00039       };
00040 
00041 
00043       namespace Parameters {
00044         
00048         class ICapeOptimizationPoint : virtual public Common::Identification::ICapeIdentification {
00049         public:
00051           virtual ~ICapeOptimizationPoint(){}
00052 
00056           virtual Common::Types::CapeLong Content() const = 0;
00057 
00061           virtual Common::Types::CapeBoolean Content(eCapeOptPointEntry entryType) const = 0;
00062 
00072           virtual Common::Types::CapeValidationStatus ValStatus(eCapeOptPointEntry entryType) const
00073             throw(Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeNoImpl) = 0;
00074 
00083           virtual Common::Types::CapeLong ValStatus() const
00084             throw(Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl) = 0;
00085 
00087           virtual Common::Types::CapeVariant GetParameterValue(Common::Types::CapeLong _idx) const
00088             throw(Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeNoImpl) = 0;
00089 
00091           virtual Common::Parameter::ICapeParameterSpec* GetParameterSpec(Common::Types::CapeLong _idx) const
00092             throw(Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeNoImpl) = 0;
00093 
00095           virtual Common::Types::CapeLong GetParametersCount() const = 0;
00096 
00098           virtual Common::Types::CapeDouble GetObjFunction() const = 0;
00099 
00102           virtual void Reinitialize()
00103             throw(Common::Error::ECapeUnknown) = 0;
00104 
00107           virtual Common::Types::CapeValidationStatus Update()
00108             throw(Common::Error::ECapeUnknown) = 0;
00109 
00110 #ifndef SWIG
00111 
00112           friend std::ostream& operator<<(std::ostream& out_file, const ICapeOptimizationPoint&);
00113 #endif
00114         };
00115 
00116 
00117 #ifndef SWIG
00118 
00119    std::ostream& operator<<(std::ostream& out_file, const ICapeOptimizationPoint&);
00120 #endif
00121 
00125         class ICapeSensOptimizationPoint : virtual public ICapeOptimizationPoint {
00126         public:
00128           virtual ~ICapeSensOptimizationPoint(){}
00129 
00131           virtual const Common::Types::CapeArrayDouble& GetGradient() const = 0;
00132         };
00133 
00134       }
00135     }
00136   }
00137 }
00138 
00139 #endif //CAPE_NLP_PARAMETER_H