8namespace plug::autodiff {
130#define THORIN_autodiff_NORMALIZER_IMPL \
131 void register_normalizers(Normalizers& normalizers) {\
132 normalizers[flags_t(Annex::Base<Tangent>)] = &normalize_Tangent; \
133 normalizers[flags_t(Annex::Base<AD>)] = &normalize_AD; \
134 normalizers[flags_t(Annex::Base<ad>)] = &normalize_ad; \
135 normalizers[flags_t(Annex::Base<zero>)] = &normalize_zero; \
136 normalizers[flags_t(Annex::Base<add>)] = &normalize_add; \
137 normalizers[flags_t(Annex::Base<sum>)] = &normalize_sum; \
Helper class to retrieve Infer::arg if present.
Ref normalize_AD(Ref type, Ref callee, Ref arg)
Ref normalize_sum(Ref type, Ref callee, Ref arg)
Ref normalize_zero(Ref type, Ref callee, Ref arg)
Currently this normalizer does nothing.
Ref normalize_add(Ref type, Ref callee, Ref arg)
Currently resolved the full addition.
Ref normalize_ad(Ref type, Ref callee, Ref arg)
Currently this normalizer does nothin.
Ref normalize_Tangent(Ref, Ref, Ref arg)
void register_normalizers(Normalizers &normalizers)
static constexpr plugin_t Plugin_Id
absl::flat_hash_map< flags_t, NormalizeFn > Normalizers
static constexpr flags_t Base