32 #ifndef MADNESS_WORLD_DISTRIBUTED_ID_H__INCLUDED
33 #define MADNESS_WORLD_DISTRIBUTED_ID_H__INCLUDED
57 return (left.first == right.first) && (left.second == right.second);
67 return (left.first != right.first) || (left.second != right.second);
79 template <
typename Key,
typename Tag =
void>
147 template <
typename Archive>
166 template <
typename Key,
typename Tag>
168 using madness::operators::operator<<;
169 return os <<
"{" << key.
key() <<
"," << key.
proc() <<
"}";
176 template <
typename Key,
typename Tag>
232 template <
typename Archive>
241 return hasher(
key.key_);
247 template <
typename Key,
typename Tag>
249 using madness::operators::operator<<;
250 return os <<
"{" << key.
key() <<
"}";
Key is the index for a node of the 2^NDIM-tree.
Definition: key.h:66
Key object that includes the process information.
Definition: distributed_id.h:80
void serialize(const Archive &ar)
Serialize this key.
Definition: distributed_id.h:148
friend hashT hash_value(const ProcessKey< Key, Tag > &key)
Hashing function.
Definition: distributed_id.h:156
const Key & key() const
Base key accessor.
Definition: distributed_id.h:118
Key key_
The base key type.
Definition: distributed_id.h:82
ProcessKey()
Default constructor.
Definition: distributed_id.h:88
ProcessKey(const ProcessKey< Key, Tag > &other)
Copy constructor.
Definition: distributed_id.h:101
ProcessID proc() const
Process ID accessor.
Definition: distributed_id.h:123
ProcessKey< Key, Tag > & operator=(const ProcessKey< Key, Tag > &other)
Copy assignment operator.
Definition: distributed_id.h:109
bool operator==(const ProcessKey< Key, Tag > &other) const
Equality comparison.
Definition: distributed_id.h:130
bool operator!=(const ProcessKey< Key, Tag > &other) const
Inequality comparison.
Definition: distributed_id.h:139
ProcessID proc_
The process that generated the key.
Definition: distributed_id.h:83
ProcessKey(const Key &key, const ProcessID proc)
Constructor.
Definition: distributed_id.h:94
Key object that uses a tag to differentiate keys.
Definition: distributed_id.h:177
bool operator!=(const TaggedKey< Key, Tag > &other) const
Inequality comparison.
Definition: distributed_id.h:224
const Key & key() const
Base key accessor.
Definition: distributed_id.h:208
TaggedKey()
Default constructor.
Definition: distributed_id.h:184
TaggedKey(const Key &key)
Constructor.
Definition: distributed_id.h:189
void serialize(const Archive &ar)
Serialize this key.
Definition: distributed_id.h:233
friend hashT hash_value(const TaggedKey< Key, Tag > &key)
Hashing function.
Definition: distributed_id.h:239
TaggedKey(const TaggedKey< Key, Tag > &other)
Copy constructor.
Definition: distributed_id.h:194
Key key_
The base key type.
Definition: distributed_id.h:179
TaggedKey< Key, Tag > & operator=(const TaggedKey< Key, Tag > &other)
Copy assignment operator.
Definition: distributed_id.h:200
bool operator==(const TaggedKey< Key, Tag > &other) const
Equality comparison.
Definition: distributed_id.h:215
void combine_hash(hashT &seed, hashT hash)
Internal use only.
Definition: worldhash.h:248
std::ostream & operator<<(std::ostream &s, const std::array< T, N > &a)
Output std::array to stream for human consumption.
Definition: array_addons.h:59
File holds all helper structures necessary for the CC_Operator and CC2 class.
Definition: DFParameters.h:10
std::pair< uniqueidT, std::size_t > DistributedID
Distributed ID which is used to identify objects.
Definition: distributed_id.h:48
bool operator!=(const ResponseParameters &p1, const ResponseParameters &p2)
Definition: response_parameters.cpp:17
std::ostream & operator<<(std::ostream &os, const particle< PDIM > &p)
Definition: lowrankfunction.h:397
bool operator==(const ResponseParameters &p1, const ResponseParameters &p2)
Definition: response_parameters.cpp:12
std::size_t hashT
The hash value type.
Definition: worldhash.h:145
madness::hashT hash_value(const std::array< T, N > &a)
Hash std::array with madness hash.
Definition: array_addons.h:78
madness::hashT hash_value(const madness::DistributedID &id)
Hash a DistributedID.
Definition: distributed_id.h:261
Defines simple templates for printing to std::cout "a la Python".
Hash functor.
Definition: worldhash.h:233
Defines types used by the parallel runtime.
int ProcessID
Used to clearly identify process number/rank.
Definition: worldtypes.h:43