class ngraph::Mask

each element in vector represents dimension and each element in set is an id of dimensions which contains zeros.

#include <mask_attribute.hpp>

class Mask:
    public std::vector< std::set< uint64_t > >,
    public std::enable_shared_from_this< Mask >
    // typedefs

    typedef std::shared_ptr<Mask> Ptr;

    // construction

    Mask(const ngraph::PartialShape& shape);
    Mask(const size_t& size);
    Mask(const size_t& size, const bool adjust_value);
    Mask(const std::vector<value_type> val);
    Mask(std::initializer_list<std::initializer_list<uint64_t>> list);

    // methods

    static const ::ov::DiscreteTypeInfo& get_type_info_static();
    bool all_dims_are_empty() const;
    std::vector<size_t> get_not_empty_dims();
    bool is_shape_like() const;
    void set_shape_like(bool flag);
    void copy_value_from_mask(Mask \*const mask);
    void copy_value_from_mask_reversed(Mask \*const mask);
    Mask::Ptr intersect_masks_reversed(Mask \*const mask);
    Mask::Ptr union_masks_reversed(Mask \*const mask) const;

    bool add_callback(
        const std::function<bool(Mask::Ptr)>& receive_callback,
        Mask::Ptr mask

    bool apply_callback(Mask::Ptr mask);
    void invalidate();
    void clean_dim_values();
    void initialize_dependencies();
    bool adjust_value() const;