90#define MIM_autodiff_NORMALIZER_IMPL \
91 void register_normalizers(Normalizers& normalizers) {\
92 normalizers[flags_t(Annex::Base<Tangent>)] = &normalize_Tangent; \
93 normalizers[flags_t(Annex::Base<AD>)] = &normalize_AD; \
94 normalizers[flags_t(Annex::Base<ad>)] = &normalize_ad; \
95 normalizers[flags_t(Annex::Base<zero>)] = &normalize_zero; \
96 normalizers[flags_t(Annex::Base<add>)] = &normalize_add; \
97 normalizers[flags_t(Annex::Base<sum>)] = &normalize_sum; \
The automatic differentiation Plugin
const Def * normalize_Tangent(const Def *, const Def *, const Def *arg)
const Def * normalize_add(const Def *type, const Def *callee, const Def *arg)
Currently resolved the full addition.
static constexpr plugin_t Plugin_Id
const Def * normalize_AD(const Def *, const Def *, const Def *arg)
const Def * normalize_ad(const Def *, const Def *, const Def *)
Currently this normalizer does nothin.
const Def * normalize_sum(const Def *type, const Def *callee, const Def *arg)
const Def * normalize_zero(const Def *, const Def *, const Def *)
Currently this normalizer does nothing.
void register_normalizers(Normalizers &normalizers)
absl::flat_hash_map< flags_t, NormalizeFn > Normalizers
static constexpr size_t Num
static constexpr flags_t Base