22#ifndef mia_core_transformation_hh
23#define mia_core_transformation_hh
43template <
typename D,
typename I>
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;
123 static_assert(
sizeof(T) == 0,
"this needs to specialized for the handled type");
127template <
typename D,
typename I>
133template <
typename D,
typename I>
138template <
typename D,
typename I>
144template <
typename D,
typename I>
150template <
typename D,
typename I>
153 return do_transform(
input, ipf_override);
156template <
typename D,
typename I>
159 return do_transform(
input, m_ipf);
162template <
typename D,
typename I>
165 return do_get_energy_penalty_and_gradient(gradient);
169template <
typename D,
typename I>
172 return do_get_energy_penalty();
175template <
typename D,
typename I>
178 std::fill(gradient.
begin(), gradient.
end(), 0.0);
183template <
typename D,
typename I>
189template <
typename D,
typename I>
192 return do_has_energy_penalty();
196template <
typename D,
typename I>
202template <
typename D,
typename I>
A collection of attributes.
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.
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
#define NS_MIA_END
conveniance define to end the mia namespace
T load_transform(const std::string &file)
template to unify transformation loading