Maestro 0.3.11
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
Sampling.h File Reference
#include "../../Types.h"
#include "../RandomStream.h"
#include "AliasBase.h"
#include <algorithm>
#include <charconv>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <memory>
#include <numeric>
#include <stdexcept>
#include <string_view>
#include <type_traits>
#include <unordered_map>
#include <utility>
#include <vector>
Include dependency graph for Sampling.h:

Go to the source code of this file.

Classes

struct  Utils::Sampling::Options
class  Utils::Sampling::Prepared< Probability >
class  Utils::Sampling::ProbabilityAlias

Namespaces

namespace  Utils
 Portable dense contraction kernels.
namespace  Utils::Sampling

Typedefs

template<bool Many>
using Utils::Sampling::Counts = std::unordered_map<std::conditional_t<Many, std::vector<bool>, Types::qubit_t>, Types::qubit_t>

Enumerations

enum class  Utils::Sampling::Family {
  Utils::Sampling::Auto ,
  Utils::Sampling::Cdf ,
  Utils::Sampling::Alias
}

Functions

void Utils::Sampling::CheckMass (double total)
template<bool Many, class Plan, class Bit, class Uniform>
Counts< Many > Utils::Sampling::Count (const Plan &plan, size_t shots, size_t bits, const Bit &bit, Uniform &&uniform)
template<bool Many, class Range, class Probability, class Bit, class Uniform>
Counts< Many > Utils::Sampling::CountCdfRange (const Range &rows, size_t shots, size_t bits, const Probability &probability, const Bit &bit, Uniform &&uniform, Options options={})
template<bool Many, class Bit>
Counts< Many > Utils::Sampling::Single (size_t bits, const Bit &bit)
int Utils::Sampling::Threads (bool permitted, size_t work)
template<class Qubits>
void Utils::Sampling::ValidateQubits (const Qubits &qubits, size_t width, bool many)
bool Utils::Sampling::ValidateSetting (std::string_view name, std::string_view setting)

Class Documentation

◆ Utils::Sampling::Options

struct Utils::Sampling::Options

Definition at line 35 of file Sampling.h.

Collaboration diagram for Utils::Sampling::Options:
Class Members
size_t batchSize = size_t{1} << 20
Family family = Family::Auto
size_t memoryBytes = size_t{256} << 20
bool multithreading = false