36 std::unordered_set<std::string>& olabels =
38 labels_.insert(olabels.begin(), olabels.end());
81 #endif // TAG_PROP_HPP PropTag(std::string init_label)
Definition: prop.hpp:25
bool has_property(const teq::iTensor *tens, std::string property) const
Return true if tensor has specified property.
Registry for associating tensors to tag collectives.
Definition: tag.hpp:165
size_t tag_id(void) const override
Implementation of iTag.
Definition: prop.hpp:28
const std::string props_key
Identifier of property tag.
Definition: prop.hpp:73
PropTag (properties tag) define node properties.
Definition: prop.hpp:23
std::unique_ptr< iTag > TagptrT
Unique pointer of tag.
Definition: tag.hpp:40
std::map< std::string, std::vector< std::string > > TagRepsT
Map tag key to a series of labels.
Definition: tag.hpp:21
static size_t tag_id_
Definition: prop.hpp:47
std::string register_tagr(std::string tag_key, TagrF tagr)
Definition: tag.hpp:232
const std::string commutative_tag
Identifier for commutative property.
Definition: prop.hpp:17
void property_tag(teq::TensrefT tens, std::string property)
Associate property with tensor.
Definition: prop.hpp:57
void absorb(TagptrT &&other) override
Implementation of iTag.
Definition: prop.hpp:34
TagRegistry & tag_reg_
Internal tag registry used to retrieve tensor-property association.
Definition: prop.hpp:66
PropertyRegistry(TagRegistry ®istry=get_reg())
Definition: prop.hpp:53
TagRegistry wrapper to tag and check properties on tensors.
Definition: prop.hpp:51
std::unordered_set< std::string > labels_
Definition: prop.hpp:45
TagRegistry & get_reg(void)
Return reference to global tag registry.
Interface of traversible and differentiable nodes with shape information.
Definition: itensor.hpp:36
PropertyRegistry & get_property_reg(void)
Return reference to global property registry.
const std::string immutable_tag
Identifier for immutable property.
Definition: prop.hpp:20
void add_tag(teq::TensrefT tens, TagptrT tag)
Add tag to collective referenced by tens.
Definition: tag.hpp:168
TagRepsT get_tags(void) const override
Implementation of iTag.
std::weak_ptr< iTensor > TensrefT
Tensor weak pointers.
Definition: itensor.hpp:54