Go to the documentation of this file.
22 #ifndef mia_core_transformation_hh
23 #define mia_core_transformation_hh
43 template <
typename D,
typename I>
76 std::shared_ptr<D>
operator () (
const D&
input,
const I& ipf_override)
const;
104 virtual std::shared_ptr<D> do_transform(
const D&
input,
const I& ipf)
const = 0;
105 virtual double do_get_energy_penalty_and_gradient(
CDoubleVector& gradient)
const;
106 virtual double do_get_energy_penalty()
const;
107 virtual bool do_has_energy_penalty()
const;
120 template <
typename T>
123 static_assert(
sizeof(T) == 0,
"this needs to specialized for the handled type");
127 template <
typename D,
typename I>
133 template <
typename D,
typename I>
138 template <
typename D,
typename I>
144 template <
typename D,
typename I>
150 template <
typename D,
typename I>
153 return do_transform(
input, ipf_override);
156 template <
typename D,
typename I>
159 return do_transform(
input, m_ipf);
162 template <
typename D,
typename I>
165 return do_get_energy_penalty_and_gradient(gradient);
169 template <
typename D,
typename I>
172 return do_get_energy_penalty();
175 template <
typename D,
typename I>
178 std::fill(gradient.
begin(), gradient.
end(), 0.0);
183 template <
typename D,
typename I>
189 template <
typename D,
typename I>
192 return do_has_energy_penalty();
196 template <
typename D,
typename I>
202 template <
typename D,
typename I>
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
#define NS_MIA_END
conveniance define to end the mia namespace
A collection of attributes.
T load_transform(const std::string &file)
template to unify transformation loading
helper class to derive from for data that can be loaded and stored to a disk.
A wrapper around the c-array to provide an STL like interface for iterators.