MCPcopy Create free account
hub / github.com/NVIDIA/cuda-quantum / serialize

Method serialize

runtime/common/SampleResult.cpp:98–118  ·  view source on GitHub ↗

@brief Encoding - 1st element is size of the register name N, then next N represent register name, number of bitstrings M, then for each bit string {l, bs.length, count} @return

Source from the content-addressed store, hash-verified

96// {l, bs.length, count}
97/// @return
98std::vector<std::size_t> ExecutionResult::serialize() const {
99 std::vector<std::size_t> retData;
100
101 // Encode the classical register name
102 retData.push_back(registerName.length());
103 for (std::size_t j = 0; j < registerName.length(); j++) {
104 retData.push_back((std::size_t)registerName[j]);
105 }
106
107 // Encode the counts data
108 retData.push_back(counts.size());
109 for (auto &kv : counts) {
110 auto bits = kv.first;
111 auto count = kv.second;
112 auto l = std::stol(bits, NULL, 2);
113 retData.push_back(l);
114 retData.push_back(bits.length());
115 retData.push_back(count);
116 }
117 return retData;
118}
119
120void ExecutionResult::deserialize(std::vector<std::size_t> &data) {
121 std::size_t stride = 0;

Callers 2

check_op_serializationFunction · 0.45
CUDAQ_TESTFunction · 0.45

Calls 5

push_backMethod · 0.45
sizeMethod · 0.45
insertMethod · 0.45
endMethod · 0.45
beginMethod · 0.45

Tested by 2

check_op_serializationFunction · 0.36
CUDAQ_TESTFunction · 0.36