- marginal_memory(memory, indices=None, int_return=False, hex_return=False, avg_data=False, parallel_threshold=1000)¶
Marginalize shot memory
This function is multithreaded and will launch a thread pool with threads equal to the number of CPUs by default. You can tune the number of threads with the
RAYON_NUM_THREADSenvironment variable. For example, setting
RAYON_NUM_THREADS=4would limit the thread pool to 4 threads.
memory (Union[List[str], ndarray]) -- The input memory list, this is either a list of hexadecimal strings to be marginalized representing measure level 2 memory or a numpy array representing level 0 measurement memory (single or avg) or level 1 measurement memory (single or avg).
indices (Optional[List[int]]) -- The bit positions of interest to marginalize over. If
None(default), do not marginalize at all.
int_return (bool) -- If set to
Truethe output will be a list of integers. By default the return type is a bit string. This and
hex_returnare mutually exclusive and can not be specified at the same time. This option only has an effect with memory level 2.
hex_return (bool) -- If set to
Truethe output will be a list of hexadecimal strings. By default the return type is a bit string. This and
int_returnare mutually exclusive and can not be specified at the same time. This option only has an effect with memory level 2.
avg_data (bool) -- If a 2 dimensional numpy array is passed in for
memorythis can be set to
Trueto indicate it's a avg level 0 data instead of level 1 single data.
parallel_threshold (int) -- The number of elements in
memoryto start running in multiple threads. If
len(memory)is >= this value, the function will run in multiple threads. By default this is set to 1000.
The list of marginalized memory
- Return type
ValueError -- if both
hex_returnare set to