00001 #ifndef CUTERDENSEFUNCTIONAL
00002 #define CUTERDENSEFUNCTIONAL
00003
00016 #include "Functional.hh"
00017 #include "CuterFunctional.hh"
00018 #include "IotrHandle.hh"
00019
00023 class CuterDenseFunctional : public CuterFunctional {
00024 protected:
00025
00026 virtual void concreteGrads( IotrVector & g, GenMatrix & J,
00027 IotrVector & x);
00028
00029 virtual void concreteHess( SymMatrix & H, IotrVector & x, IotrVector & Lm);
00030 public:
00031
00035 CuterDenseFunctional( CuterAdaptor & a );
00036 virtual PrimalDualSystem *
00037 newPrimalDualSystem( ElementGather * iclow, ElementGather * icupp,
00038 ElementGather * ieq,
00039 ElementGather * ixlow, ElementGather * ixupp,
00040 IotrMask * aXmask );
00041 virtual GenMatrix * newJacobianMatrix() const;
00042 virtual SymMatrix * newHessianMatrix() const;
00043 virtual void writeConfiguration( std::ostream & out, char indent[] );
00044 };
00045
00046
00047 typedef Handle<CuterDenseFunctional> CuterDenseFunctionalHandle;
00048
00053 #endif