Documentation for microsoft::quantum::BasicAllocationManager
microsoft::quantum::BasicAllocationManager
#include <AllocationManager/AllocationManager.hpp>
Inherits from microsoft::quantum::IAllocationManager
Public Classes
Name | |
---|---|
struct | AllocatedMemoryBlock |
Public Types
Name | |
---|---|
using std::vector< AllocatedMemoryBlock > | Mappings Vector of memory segments. |
using std::shared_ptr< BasicAllocationManager > | BasicAllocationManagerPtr Allocator pointer type. |
Public Functions
Name | |
---|---|
BasicAllocationManagerPtr | createNew() |
virtual Address | allocate(String const & name ="", Index const & count =1) override |
virtual void | release(Address const & address) override Releases the segment by address. |
virtual void | reset() override Resets the allocation manager and all its statistics. |
void | setReuseRegisters(bool val) |
Additional inherited members
Public Types inherited from microsoft::quantum::IAllocationManager
Name | |
---|---|
using uint64_t | Address Value type for address. |
using uint64_t | Index Index type used to access an array element. |
using std::shared_ptr< IAllocationManager > | AllocationManagerPtr Pointer interface. |
Public Functions inherited from microsoft::quantum::IAllocationManager
Name | |
---|---|
IAllocationManager(IAllocationManager const & ) | |
IAllocationManager(IAllocationManager && ) | |
IAllocationManager & | operator=(IAllocationManager const & ) |
IAllocationManager & | operator=(IAllocationManager && ) |
virtual | ~IAllocationManager() |
uint64_t | allocationsInUse() const |
uint64_t | maxAllocationsUsed() const |
Protected Functions inherited from microsoft::quantum::IAllocationManager
Name | |
---|---|
IAllocationManager() =default | |
void | updateRegistersInUse(uint64_t n) |
Detailed Description
class microsoft::quantum::BasicAllocationManager;
AllocationManager is a simple qubit and results allocator that can be used at compile-time. It is based on an assumption that all qubit allocating function calls are inlined and that qubits/results can be allocated with strictly growing IDs.
Public Types Documentation
using Mappings
using microsoft::quantum::BasicAllocationManager::Mappings = std::vector<AllocatedMemoryBlock>;
Vector of memory segments.
using BasicAllocationManagerPtr
using microsoft::quantum::BasicAllocationManager::BasicAllocationManagerPtr = std::shared_ptr<BasicAllocationManager>;
Allocator pointer type.
Public Functions Documentation
function createNew
static BasicAllocationManagerPtr createNew()
Creates a new allocation manager. The manager is kept as a shared pointer to enable allocation across different passes and/or replacement rules.
function allocate
virtual Address allocate(
String const & name ="",
Index const & count =1
) override
Reimplements: microsoft::quantum::IAllocationManager::allocate
Allocates a possibly named segment of a given count. Calling allocate without and arguments allocates a single anonymous resource and returns the address. In case of a larger segment, the function returns the address pointing to the first element. Allocation is guaranteed to be sequential.
function release
virtual void release(
Address const & address
) override
Releases the segment by address.
Reimplements: microsoft::quantum::IAllocationManager::release
function reset
virtual void reset() override
Resets the allocation manager and all its statistics.
Reimplements: microsoft::quantum::IAllocationManager::reset
function setReuseRegisters
void setReuseRegisters(
bool val
)
Configuration function to set mode of qubit allocation. If function argument is true, the allocation manager will reuse qubits.
Updated on 1 August 2023 at 16:25:10 UTC