8namespace plug::matrix {
118#define MIM_matrix_NORMALIZER_IMPL \
119 void register_normalizers(Normalizers& normalizers) {\
120 normalizers[flags_t(Annex::Base<shape>)] = &normalize_shape; \
121 normalizers[flags_t(Annex::Base<read>)] = &normalize_read; \
122 normalizers[flags_t(Annex::Base<insert>)] = &normalize_insert; \
123 normalizers[flags_t(Annex::Base<prod>)] = &normalize_prod; \
124 normalizers[flags_t(Annex::Base<transpose>)] = &normalize_transpose; \
125 normalizers[flags_t(Annex::Base<map_reduce>)] = &normalize_map_reduce; \
160template<>
struct Axiom::Match<plug::matrix::lower_matrix_high_level_map_reduce> {
using type =
Axiom; };
161template<>
struct Axiom::Match<plug::matrix::lower_matrix_medium_level> {
using type =
Axiom; };
162template<>
struct Axiom::Match<plug::matrix::internal_map_reduce_cleanup> {
using type =
Axiom; };
163template<>
struct Axiom::Match<plug::matrix::lower_matrix_low_level> {
using type =
Axiom; };
Helper class to retrieve Infer::arg if present.
internal_map_reduce_cleanup
static constexpr plugin_t Plugin_Id
Ref normalize_shape(Ref type, Ref callee, Ref arg)
Normalizer for transpose operations.
Ref normalize_insert(Ref type, Ref callee, Ref arg)
Normalizer for write operations TODO: implement.
lower_matrix_high_level_map_reduce
Ref normalize_prod(Ref type, Ref callee, Ref arg)
void register_normalizers(Normalizers &normalizers)
Ref normalize_map_reduce(Ref type, Ref callee, Ref arg)
map_reduce normalizers
Ref normalize_read(Ref type, Ref callee, Ref arg)
Normalizer for read opertions.
Ref normalize_transpose(Ref type, Ref callee, Ref arg)
lower_matrix_medium_level
absl::flat_hash_map< flags_t, NormalizeFn > Normalizers
static constexpr size_t Num
static constexpr flags_t Base