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
ProcessKey< Key, Tag > & operator=(const ProcessKey< Key, Tag > &other)
Copy assignment operator.
Definition distributed_id.h:109
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
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
const Key & key() const
Base key accessor.
Definition distributed_id.h:118
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
TaggedKey()
Default constructor.
Definition distributed_id.h:184
const Key & key() const
Base key accessor.
Definition distributed_id.h:208
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< Key, Tag > & operator=(const TaggedKey< Key, Tag > &other)
Copy assignment operator.
Definition distributed_id.h:200
TaggedKey(const TaggedKey< Key, Tag > &other)
Copy constructor.
Definition distributed_id.h:194
Key key_
The base key type.
Definition distributed_id.h:179
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
Namespace for all elements and tools of MADNESS.
Definition DFParameters.h:10
std::pair< uniqueidT, std::size_t > DistributedID
Distributed ID which is used to identify objects.
Definition distributed_id.h:48
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:17
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