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