21 #ifndef mia_internal_fullcost_hh 22 #define mia_internal_fullcost_hh 42 template <
typename Transform>
47 typedef typename Transform::Size
Size;
62 typedef std::shared_ptr<TFullCost<Transform> >
Pointer;
78 double evaluate(
const Transform& t,
CDoubleVector& gradient)
const;
85 double cost_value(
const Transform& t)
const;
91 double cost_value()
const;
101 void set_size(
const Size& size);
109 bool get_full_size(Size& size)
const;
113 double get_weight()
const;
116 const Size& get_current_size()
const;
118 virtual double do_evaluate(
const Transform& t,
CDoubleVector& gradient)
const = 0;
119 virtual double do_value(
const Transform& t)
const = 0;
120 virtual double do_value()
const = 0;
121 virtual void do_reinit();
122 virtual void do_set_size() = 0;
123 virtual bool do_get_full_size(Size& size)
const;
136 template <
typename Transform>
the base class for the TFullCost cost function plug-ins.
Transform::Size Size
Typedef of the size of the data considered by this cost function.
std::shared_ptr< TFullCost< Transform > > Pointer
The shatred pointer type for this cost function.
static const char * data_descr
helper string for plug-in handling
A wrapper around the c-array to provide an STL like interface for iterators.
Base class for a general cost function.
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
TFullCost< Transform > plugin_type
helper type for plug-in handling
This is tha base of all plugins that create "things", like filters, cost functions time step operator...
static const char * type_descr
helper string for plug-in handling
The base class for all plug-in created object.
TFullCost< Transform > plugin_data
helper type for plug-in handling
#define NS_MIA_END
conveniance define to end the mia namespace