|
QDMI v1.2.0
Quantum Device Management Interface
|
Defines all enums used within QDMI across the QDMI Client Interface and the QDMI Device Interface.
Go to the source code of this file.
Typedefs | |
| typedef enum QDMI_DEVICE_SESSION_PARAMETER_T | QDMI_Device_Session_Parameter |
| Device session parameter type. | |
| typedef enum QDMI_DEVICE_JOB_PARAMETER_T | QDMI_Device_Job_Parameter |
| Device job parameter type. | |
| typedef enum QDMI_DEVICE_JOB_PROPERTY_T | QDMI_Device_Job_Property |
| Device job property type. | |
| typedef enum QDMI_DEVICE_PROPERTY_T | QDMI_Device_Property |
| Device property type. | |
| typedef enum QDMI_DEVICE_STATUS_T | QDMI_Device_Status |
| Device status type. | |
| typedef enum QDMI_SITE_PROPERTY_T | QDMI_Site_Property |
| Site property type. | |
| typedef enum QDMI_OPERATION_PROPERTY_T | QDMI_Operation_Property |
| Operation property type. | |
| typedef enum QDMI_JOB_STATUS_T | QDMI_Job_Status |
| Job status type. | |
| typedef enum QDMI_PROGRAM_FORMAT_T | QDMI_Program_Format |
| Program format type. | |
| typedef enum QDMI_JOB_RESULT_T | QDMI_Job_Result |
| Job result type. | |
| typedef enum QDMI_DEVICE_PULSE_SUPPORT_LEVEL_T | QDMI_Device_Pulse_Support_Level |
| Pulse support level type. | |
| enum QDMI_STATUS |
Status codes returned by the API.
Enum of the device session parameters that can be set via QDMI_device_session_set_parameter.
If not noted otherwise, parameters are optional and devices must not require them to be set.
| Enumerator | ||
|---|---|---|
| QDMI_DEVICE_SESSION_PARAMETER_BASEURL | 0 | char* (string) The baseURL or API endpoint to be used for accessing the device within the session. If this parameter is set and the device supports it, the device must use the specified baseURL or API endpoint for the session. Devices may use this parameter to switch between different versions of the API or different endpoints for testing or production environments. |
| QDMI_DEVICE_SESSION_PARAMETER_TOKEN | 1 | char* (string) A token to be used in the session initialization for authenticating with the device. A token could be an API key. The device documentation must document what kind of token is required and how it is used. If the device requires authentication via a token, this parameter must be set before calling QDMI_device_session_init. |
| QDMI_DEVICE_SESSION_PARAMETER_AUTHFILE | 2 | char* (string) A file path to a file containing authentication information. The file may contain a token or other authentication information required for the session. The device documentation must document whether the implementation requires this parameter to be set and what kind of authentication information is expected in the file. |
| QDMI_DEVICE_SESSION_PARAMETER_AUTHURL | 3 | char* (string) The URL to an authentication server used as part of the authentication procedure. This parameter might be used as part of an authentication scheme where an API token is received from an authentication server. This may, additionally, require a username and a password, which can be set via the QDMI_DEVICE_SESSION_PARAMETER_USERNAME and QDMI_DEVICE_SESSION_PARAMETER_PASSWORD parameters.
|
| QDMI_DEVICE_SESSION_PARAMETER_USERNAME | 4 | char* (string) The username to use for the device session. The username is used for authentication within the session. The device documentation must document when the implementation requires this parameter to be set. |
| QDMI_DEVICE_SESSION_PARAMETER_PASSWORD | 5 | char* (string) The password to use for the session. The password is used for authentication within the session. The device documentation must document if the implementation requires this parameter to be set. |
| QDMI_DEVICE_SESSION_PARAMETER_MAX | 6 | The maximum value of the enum. It can be used by devices for bounds checking and validation of function parameters.
|
| QDMI_DEVICE_SESSION_PARAMETER_CUSTOM1 | 999999995 | This enum value is reserved for a custom parameter. The device defines the meaning and the type of this parameter.
|
| QDMI_DEVICE_SESSION_PARAMETER_CUSTOM2 | 999999996 | |
| QDMI_DEVICE_SESSION_PARAMETER_CUSTOM3 | 999999997 | |
| QDMI_DEVICE_SESSION_PARAMETER_CUSTOM4 | 999999998 | |
| QDMI_DEVICE_SESSION_PARAMETER_CUSTOM5 | 999999999 | |
Enum of the device job parameters that can be set via QDMI_device_job_set_parameter.
If not noted otherwise, parameters are optional and devices must not require them to be set.
| Enumerator | ||
|---|---|---|
| QDMI_DEVICE_JOB_PARAMETER_PROGRAMFORMAT | 0 | QDMI_Program_Format The format of the program to be executed. This parameter is required. The device must support the specified program format. If the device does not support the specified program format, the QDMI_device_job_set_parameter function must return QDMI_ERROR_NOTSUPPORTED. |
| QDMI_DEVICE_JOB_PARAMETER_PROGRAM | 1 | void* The program to be executed. This parameter is required. The program must be in the format specified by the QDMI_DEVICE_JOB_PARAMETER_PROGRAMFORMAT parameter. If the program is invalid, the QDMI_device_job_set_parameter function must return QDMI_ERROR_INVALIDARGUMENT. If the program is valid, but the device cannot execute it, the QDMI_device_job_set_parameter function must return QDMI_ERROR_NOTSUPPORTED. |
| QDMI_DEVICE_JOB_PARAMETER_SHOTSNUM | 2 | size_t The number of shots to execute for a quantum circuit job. If this parameter is not set, a device-specific default is used. |
| QDMI_DEVICE_JOB_PARAMETER_MAX | 3 | The maximum value of the enum. It can be used by devices for bounds checking and validation of function parameters.
|
| QDMI_DEVICE_JOB_PARAMETER_CUSTOM1 | 999999995 | This enum value is reserved for a custom parameter. The device defines the meaning and the type of this parameter.
|
| QDMI_DEVICE_JOB_PARAMETER_CUSTOM2 | 999999996 | |
| QDMI_DEVICE_JOB_PARAMETER_CUSTOM3 | 999999997 | |
| QDMI_DEVICE_JOB_PARAMETER_CUSTOM4 | 999999998 | |
| QDMI_DEVICE_JOB_PARAMETER_CUSTOM5 | 999999999 | |
Enum of the device job properties that can be queried via QDMI_device_job_query_property as part of the device interface.
In particular, every parameter's value that can be set via QDMI_device_job_set_parameter can be queried.
| Enumerator | ||
|---|---|---|
| QDMI_DEVICE_JOB_PROPERTY_ID | 0 | char* (string) The job's ID. The ID must uniquely identify a job for the specific device. It should generally be universally unique (such as a UUID), to avoid conflicts with other devices' job IDs. It may be used to recover a QDMI_Device_Job handle upon device failure. It may, for example, correspond to the job ID provided by the device's API or may be generated by the QDMI Device implementation. |
| QDMI_DEVICE_JOB_PROPERTY_PROGRAMFORMAT | 1 | QDMI_Program_Format The format of the program to be executed.
|
| QDMI_DEVICE_JOB_PROPERTY_PROGRAM | 2 | void* The program to be executed.
|
| QDMI_DEVICE_JOB_PROPERTY_SHOTSNUM | 3 | size_t The number of shots to execute for a quantum circuit job.
|
| QDMI_DEVICE_JOB_PROPERTY_MAX | 4 | The maximum value of the enum. It can be used by devices for bounds checking and validation of function parameters.
|
| QDMI_DEVICE_JOB_PROPERTY_CUSTOM1 | 999999995 | This enum value is reserved for a custom parameter. The device defines the meaning and the type of this parameter.
|
| QDMI_DEVICE_JOB_PROPERTY_CUSTOM2 | 999999996 |
|
| QDMI_DEVICE_JOB_PROPERTY_CUSTOM3 | 999999997 |
|
| QDMI_DEVICE_JOB_PROPERTY_CUSTOM4 | 999999998 |
|
| QDMI_DEVICE_JOB_PROPERTY_CUSTOM5 | 999999999 |
|
Enum of the device properties that can be queried via QDMI_device_session_query_device_property as part of the device interface and via QDMI_device_query_device_property as part of the client interface.
| Enumerator | ||
|---|---|---|
| QDMI_DEVICE_PROPERTY_NAME | 0 | char* (string) The name of the device. |
| QDMI_DEVICE_PROPERTY_VERSION | 1 | char* (string) The version of the device. |
| QDMI_DEVICE_PROPERTY_STATUS | 2 | QDMI_Device_Status The status of the device. |
| QDMI_DEVICE_PROPERTY_LIBRARYVERSION | 3 | char* (string) The implemented version of QDMI. |
| QDMI_DEVICE_PROPERTY_QUBITSNUM | 4 | size_t The number of qubits in the device. |
| QDMI_DEVICE_PROPERTY_SITES | 5 | QDMI_Site* (QDMI_Site list) The sites of the device. The returned QDMI_Site handles may be used to query site and operation properties. The list need not be sorted based on the QDMI_SITE_PROPERTY_INDEX.
|
| QDMI_DEVICE_PROPERTY_OPERATIONS | 6 | QDMI_Operation* (QDMI_Operation list) The operations supported by the device. The returned QDMI_Operation handles may be used to query operation properties. |
| QDMI_DEVICE_PROPERTY_COUPLINGMAP | 7 | QDMI_Site* (QDMI_Site list) The coupling map of the device. The returned list contains pairs of sites that are coupled. The pairs in the list are flattened such that the first site of the pair is at index 2n and the second site is at index 2n+1. The sites returned in that list are represented as QDMI_Site handles. For example, consider a 3-site device with a coupling map (0, 1), (1, 2). Additionally, assume site_i is the handle for the i-th site. Then, {site_0, site_1, site_1, site_2} would be returned. |
| QDMI_DEVICE_PROPERTY_NEEDSCALIBRATION | 8 | size_t Whether the device needs calibration. This flag indicates whether the device needs calibration. A value of zero indicates that the device does not need calibration, while any non-zero value indicates that the device needs calibration. It is up to the device to assign a specific meaning to the non-zero value. If a device reports that it needs calibration, a calibration run can be triggered by submitting a job with the QDMI_Program_Format set to QDMI_PROGRAM_FORMAT_CALIBRATION. |
| QDMI_DEVICE_PROPERTY_PULSESUPPORT | 9 | QDMI_Device_Pulse_Support_Level Whether the device supports pulse-level control. This property indicates the level of pulse-level control. If a device supports pulse-level control, it may provide additional functionality for pulse-level programming and execution. |
| QDMI_DEVICE_PROPERTY_LENGTHUNIT | 10 | char* (string) The length unit reported by the device. The device implementation must report a known SI unit (e.g., "mm", "um", or "nm") for this property. A client querying a length value must first scale it using QDMI_DEVICE_PROPERTY_LENGTHSCALEFACTOR. The resulting value is then interpreted in the unit specified by this property.
|
| QDMI_DEVICE_PROPERTY_LENGTHSCALEFACTOR | 11 | double A scale factor for all length values. The device implementation reports this scale factor. A client must multiply any raw length value received from the device by this factor to obtain the physical length. The unit of the physical length is given by QDMI_DEVICE_PROPERTY_LENGTHUNIT.
|
| QDMI_DEVICE_PROPERTY_DURATIONUNIT | 12 | char* (string) The duration unit reported by the device. The device implementation must report a known SI unit (e.g., "ms", "us", or "ns") for this property. A client querying a duration value must first scale it using QDMI_DEVICE_PROPERTY_DURATIONSCALEFACTOR. The resulting value is then interpreted in the unit specified by this property.
|
| QDMI_DEVICE_PROPERTY_DURATIONSCALEFACTOR | 13 | double A scale factor for all duration values. The device implementation reports this scale factor. A client must multiply any raw duration value received from the device by this factor to obtain the physical duration. The unit of the physical duration is given by QDMI_DEVICE_PROPERTY_DURATIONUNIT.
|
| QDMI_DEVICE_PROPERTY_MINATOMDISTANCE | 14 | uint64_t The raw, unscaled minimum required distance between qubits during quantum computation. For neutral atom-based devices, qubits (atoms) can be repositioned dynamically. However, a minimum separation must be maintained to prevent collisions and loss of atoms. This property specifies the minimum atom distance.
|
| QDMI_DEVICE_PROPERTY_SUPPORTEDPROGRAMFORMATS | 15 | QDMI_Program_Format* (QDMI_Program_Format list) The program formats supported by the device. The returned list contains all program formats that the device supports for execution. A client can use this information to determine which program formats can be used when submitting jobs to the device. |
| QDMI_DEVICE_PROPERTY_MAX | 16 | The maximum value of the enum. It can be used by devices for bounds checking and validation of function parameters.
|
| QDMI_DEVICE_PROPERTY_CUSTOM1 | 999999995 | This enum value is reserved for a custom property. The device defines the meaning and the type of this property.
|
| QDMI_DEVICE_PROPERTY_CUSTOM2 | 999999996 |
|
| QDMI_DEVICE_PROPERTY_CUSTOM3 | 999999997 |
|
| QDMI_DEVICE_PROPERTY_CUSTOM4 | 999999998 |
|
| QDMI_DEVICE_PROPERTY_CUSTOM5 | 999999999 |
|
| enum QDMI_DEVICE_STATUS_T |
Enum of different status the device can be in.
| enum QDMI_SITE_PROPERTY_T |
Enum of the site properties that can be queried via QDMI_device_session_query_site_property as part of the device interface and via QDMI_device_query_site_property as part of the client interface.
| Enumerator | ||
|---|---|---|
| QDMI_SITE_PROPERTY_INDEX | 0 | size_t The unique index (or ID) to identify the site in a program. The index of a site is used to link the qubits used in a quantum program to the physical sites of the device that can be queried via this interface. Indices may be non-consecutive and need not start at 0. See QDMI_Program_Format for more information on how the site indices map to the qubits in a program.
|
| QDMI_SITE_PROPERTY_T1 | 1 | uint64_t The raw, unscaled T1 time of a site. To obtain the physical T1 time, a client must scale the raw value of this property. The physical T1 time is calculated as: raw_value * scale_factor, where scale_factor is the value of the QDMI_DEVICE_PROPERTY_DURATIONSCALEFACTOR property. The resulting value is in units of QDMI_DEVICE_PROPERTY_DURATIONUNIT. |
| QDMI_SITE_PROPERTY_T2 | 2 | uint64_t The raw, unscaled T2 time of a site. To obtain the physical T2 time, a client must scale the raw value of this property. The physical T2 time is calculated as: raw_value * scale_factor, where scale_factor is the value of the QDMI_DEVICE_PROPERTY_DURATIONSCALEFACTOR property. The resulting value is in units of QDMI_DEVICE_PROPERTY_DURATIONUNIT. |
| QDMI_SITE_PROPERTY_NAME | 3 | char* (string) The name of a site, e.g., another identifier of the site given by the device. |
| QDMI_SITE_PROPERTY_XCOORDINATE | 4 | int64_t The raw, unscaled X-coordinate of the site. The X-coordinate is measured relative to some unique origin of the device, i.e., the triple of X-, Y-, and Z-coordinate must be unique to the site.
|
| QDMI_SITE_PROPERTY_YCOORDINATE | 5 | int64_t The raw, unscaled Y-coordinate of the site. The Y-coordinate is measured relative to some unique origin of the device, i.e., the triple of X-, Y-, and Z-coordinate must be unique to the site.
|
| QDMI_SITE_PROPERTY_ZCOORDINATE | 6 | int64_t The raw, unscaled Z-coordinate of the site. The Z-coordinate is measured relative to some unique origin of the device, i.e., the triple of X-, Y-, and Z-coordinate must be unique to the site.
|
| QDMI_SITE_PROPERTY_ISZONE | 7 | bool Whether the site is a zone. A zone is a site that has a spatial extent, i.e., it is not just a point in space as a regular site. These kind of sites, namely zones, are required to adequately represent global operations that act on all qubits within a certain area, i.e., a zone.
|
| QDMI_SITE_PROPERTY_XEXTENT | 8 | uint64_t The raw, unscaled extent of a zone along the X-axis. To obtain the physical extent of a zone along the X-axis, a client must scale the raw value of this property. The physical extent of a zone along the X-axis is calculated as: raw_value * scale_factor, where scale_factor is the value of the QDMI_DEVICE_PROPERTY_LENGTHSCALEFACTOR property. The resulting value is in units of QDMI_DEVICE_PROPERTY_LENGTHUNIT.
|
| QDMI_SITE_PROPERTY_YEXTENT | 9 | uint64_t The raw, unscaled extent of a zone along the Y-axis. To obtain the physical extent of a zone along the Y-axis, a client must scale the raw value of this property. The physical extent of a zone along the Y-axis is calculated as: raw_value * scale_factor, where scale_factor is the value of the QDMI_DEVICE_PROPERTY_LENGTHSCALEFACTOR property. The resulting value is in units of QDMI_DEVICE_PROPERTY_LENGTHUNIT.
|
| QDMI_SITE_PROPERTY_ZEXTENT | 10 | uint64_t The raw, unscaled extent of a zone along the Z-axis. To obtain the physical extent of a zone along the Z-axis, a client must scale the raw value of this property. The physical extent of a zone along the Z-axis is calculated as: raw_value * scale_factor, where scale_factor is the value of the QDMI_DEVICE_PROPERTY_LENGTHSCALEFACTOR property. The resulting value is in units of QDMI_DEVICE_PROPERTY_LENGTHUNIT.
|
| QDMI_SITE_PROPERTY_MODULEINDEX | 11 | uint64_t an unsigned integer that uniquely identifies the module. A module is a logical grouping of sites, e.g., one part on a superconducting chip or an array of sites in a neutral atom-based device. |
| QDMI_SITE_PROPERTY_SUBMODULEINDEX | 12 | uint64_t an unsigned integer uniquely identifying the submodule within a module. A submodule is a repetitive substructure of sites within a module. E.g., for a module (QDMI_SITE_PROPERTY_MODULEINDEX), where the sites are arranged in pairs and the pairs are arranged in a grid, the submodule index would be the index of the pair within the module. |
| QDMI_SITE_PROPERTY_MAX | 13 | The maximum value of the enum. It can be used by devices for bounds checking and validation of function parameters.
|
| QDMI_SITE_PROPERTY_CUSTOM1 | 999999995 | This enum value is reserved for a custom property. The device defines the meaning and the type of this property.
|
| QDMI_SITE_PROPERTY_CUSTOM2 | 999999996 |
|
| QDMI_SITE_PROPERTY_CUSTOM3 | 999999997 |
|
| QDMI_SITE_PROPERTY_CUSTOM4 | 999999998 |
|
| QDMI_SITE_PROPERTY_CUSTOM5 | 999999999 |
|
Enum of the operation properties that can be queried via QDMI_device_session_query_operation_property as part of the device interface and via QDMI_device_query_operation_property as part of the client interface.
| Enumerator | ||
|---|---|---|
| QDMI_OPERATION_PROPERTY_NAME | 0 | char* (string) The string identifier of the operation. |
| QDMI_OPERATION_PROPERTY_QUBITSNUM | 1 | size_t The number of qubits involved in the operation. |
| QDMI_OPERATION_PROPERTY_PARAMETERSNUM | 2 | size_t The number of floating point parameters the operation takes. |
| QDMI_OPERATION_PROPERTY_DURATION | 3 | uint64_t The raw, unscaled duration of an operation. To obtain the physical duration, a client must scale the raw value of this property. The physical duration is calculated as: raw_value * scale_factor, where scale_factor is the value of the QDMI_DEVICE_PROPERTY_DURATIONSCALEFACTOR property. The resulting value is in units of QDMI_DEVICE_PROPERTY_DURATIONUNIT. |
| QDMI_OPERATION_PROPERTY_FIDELITY | 4 | double The fidelity of an operation. |
| QDMI_OPERATION_PROPERTY_INTERACTIONRADIUS | 5 | uint64_t The raw, unscaled interaction radius of the operation. The interaction radius is the maximum distance between two qubits that can be involved in the operation. It only applies to multi-qubit gates.
|
| QDMI_OPERATION_PROPERTY_BLOCKINGRADIUS | 6 | uint64_t The raw, unscaled blocking radius of the operation. The blocking radius is the minimum distance between two qubits that should not be involved in the operation to avoid crosstalk. It only applies to multi-qubit gates.
|
| QDMI_OPERATION_PROPERTY_IDLINGFIDELITY | 7 | double Fidelity of qubits idling during a global operation. This property measures the fidelity of qubits that are within the affected area of a global multi-qubit operation but do not actively participate (i.e., they lack an interaction partner within their radius). Even though these qubits undergo an identity operation, errors may still occur, resulting in lower fidelity compared to qubits that are simply idling and not exposed to the operation.
|
| QDMI_OPERATION_PROPERTY_ISZONED | 8 | bool Whether the operation is a zoned (global) operation. A zoned (or global) operation is an operation that can be applied simultaneously to all qubits within a specific zone. If this property is true, the operation is considered zoned. If it is false or returns QDMI_ERROR_NOTSUPPORTED, the operation is considered local. The applicability of a zoned operation to specific zones is detailed in QDMI_OPERATION_PROPERTY_SITES.
|
| QDMI_OPERATION_PROPERTY_SITES | 9 | QDMI_Site* (list) The sites to which the operation is applicable.
|
| QDMI_OPERATION_PROPERTY_MEANSHUTTLINGSPEED | 10 | uint64_t The raw, unscaled mean shuttling speed of an operation. To obtain the physical speed, a client must scale the raw value of this property. The physical speed is calculated as: raw_value * length_scale_factor / duration_scale_factor. The length_scale_factor is the value of QDMI_DEVICE_PROPERTY_LENGTHSCALEFACTOR and the duration_scale_factor is the value of QDMI_DEVICE_PROPERTY_DURATIONSCALEFACTOR. The resulting value is in units of QDMI_DEVICE_PROPERTY_LENGTHUNIT per QDMI_DEVICE_PROPERTY_DURATIONUNIT.
|
| QDMI_OPERATION_PROPERTY_MAX | 11 | The maximum value of the enum. It can be used by devices for bounds checking and validation of function parameters.
|
| QDMI_OPERATION_PROPERTY_CUSTOM1 | 999999995 | This enum value is reserved for a custom property. The device defines the meaning and the type of this property.
|
| QDMI_OPERATION_PROPERTY_CUSTOM2 | 999999996 |
|
| QDMI_OPERATION_PROPERTY_CUSTOM3 | 999999997 |
|
| QDMI_OPERATION_PROPERTY_CUSTOM4 | 999999998 |
|
| QDMI_OPERATION_PROPERTY_CUSTOM5 | 999999999 |
|
| enum QDMI_JOB_STATUS_T |
Enum of the status a job can have.
See also QDMI Client Job Interface for a description of the job's lifecycle.
| Enumerator | ||
|---|---|---|
| QDMI_JOB_STATUS_CREATED | 0 | The job was created and can be configured via QDMI_job_set_parameter. |
| QDMI_JOB_STATUS_SUBMITTED | 1 | The job was submitted. |
| QDMI_JOB_STATUS_QUEUED | 2 | The job was received, and is waiting to be executed. |
| QDMI_JOB_STATUS_RUNNING | 3 | The job is running, and the result is not yet available. |
| QDMI_JOB_STATUS_DONE | 4 | The job is done, and the result can be retrieved. |
| QDMI_JOB_STATUS_CANCELED | 5 | The job was canceled, and the result is not available. |
| QDMI_JOB_STATUS_FAILED | 6 | An error occurred in the job's lifecycle. |
Enum of formats that can be submitted to the device.
| Enumerator | ||
|---|---|---|
| QDMI_PROGRAM_FORMAT_QASM2 | 0 | char* (string) An OpenQASM 2.0 program. A text-based representation of a quantum circuit in the OpenQASM 2.0 language. Devices that claim to support this format must accept programs conforming to the following rules:
|
| QDMI_PROGRAM_FORMAT_QASM3 | 1 | char* (string) An OpenQASM 3 program. A text-based representation of a quantum circuit in the OpenQASM 3 language. Devices that claim to support this format must accept programs conforming to the same rules as for QDMI_PROGRAM_FORMAT_QASM2.
|
| QDMI_PROGRAM_FORMAT_QIRBASESTRING | 2 | char* (string) A text-based QIR program complying to the QIR base profile. A text-based representation of a quantum circuit in the Quantum Intermediate Representation (QIR) format; specifically, the QIR base profile. Devices that claim to support this format must accept programs that follow the rules for the QIR base profile and that only contain operations that are reported by the QDMI_OPERATION_PROPERTY_NAME property of the device's operations (for example, @__quantum__qis__[NAME]__body, where [NAME] is the name of the operation).
|
| QDMI_PROGRAM_FORMAT_QIRBASEMODULE | 3 | void* A QIR binary complying to the QIR base profile. A binary representation of a quantum circuit in the Quantum Intermediate Representation (QIR) format; specifically, the QIR base profile.
|
| QDMI_PROGRAM_FORMAT_QIRADAPTIVESTRING | 4 | char* (string) A text-based QIR program complying to the QIR adaptive profile. A text-based representation of a quantum circuit in the Quantum Intermediate Representation (QIR) format; specifically, the QIR adaptive profile.
|
| QDMI_PROGRAM_FORMAT_QIRADAPTIVEMODULE | 5 | void* A QIR binary complying to the QIR adaptive profile. A binary representation of a quantum circuit in the Quantum Intermediate Representation (QIR) format; specifically, the QIR adaptive profile.
|
| QDMI_PROGRAM_FORMAT_CALIBRATION | 6 | void* A calibration program. This program format is used to request the device to perform a calibration run. Triggering a calibration run does not require a program to be set via QDMI_DEVICE_JOB_PARAMETER_PROGRAM. |
| QDMI_PROGRAM_FORMAT_QPY | 7 | void* A QPY program. A binary representation of a Qiskit QuantumCircuit in the QPY format.
|
| QDMI_PROGRAM_FORMAT_IQMJSON | 8 | char* (string) A program in the IQM data transfer format. A text-based, proprietary representation of a quantum circuit in the IQM data transfer format, encoded as a JSON string. |
| QDMI_PROGRAM_FORMAT_MAX | 9 | The maximum value of the enum. It can be used by devices for bounds checking and validation of function parameters.
|
| QDMI_PROGRAM_FORMAT_CUSTOM1 | 999999995 | This enum value is reserved for a custom program format. The device defines the meaning and the type of this value.
|
| QDMI_PROGRAM_FORMAT_CUSTOM2 | 999999996 |
|
| QDMI_PROGRAM_FORMAT_CUSTOM3 | 999999997 |
|
| QDMI_PROGRAM_FORMAT_CUSTOM4 | 999999998 |
|
| QDMI_PROGRAM_FORMAT_CUSTOM5 | 999999999 |
|
| enum QDMI_JOB_RESULT_T |
Enum of the formats the results can be returned in.
| Enumerator | ||
|---|---|---|
| QDMI_JOB_RESULT_SHOTS | 0 | char* (string) The results of the individual shots as a comma-separated list, for example, "0010,1101,0101,1100,1001,1100" for four qubits and six shots. |
| QDMI_JOB_RESULT_HIST_KEYS | 1 | char* (string) The keys for the histogram of the results. The histogram of the measurement results is represented as a key-value mapping. This mapping is returned as a list of keys and an equal-length list of values. The corresponding partners of keys and values can be found at the same index in the lists. This constant denotes the list of keys, QDMI_JOB_RESULT_HIST_VALUES denotes the list of values. |
| QDMI_JOB_RESULT_HIST_VALUES | 2 | size_t* (size_t list) The values for the histogram of the results.
|
| QDMI_JOB_RESULT_STATEVECTOR_DENSE | 3 | double* (double list) The state vector of the result. The complex amplitudes are stored as a list of real and imaginary parts. The real part of the amplitude is at index 2n and the imaginary part is at index 2n+1. For example, the state vector of a 2-qubit system with amplitudes (0.5, 0.5), (0.5, -0.5), (-0.5, 0.5), (-0.5, -0.5) would be represented as {0.5, 0.5, 0.5, -0.5, -0.5, 0.5, -0.5, -0.5}. |
| QDMI_JOB_RESULT_PROBABILITIES_DENSE | 4 | double* (double list) The probabilities of the result. The probabilities are stored as a list of real numbers. The probability of the state with index n is at index n in the list. For example, the probabilities of a 2-qubit system with states 00, 01, 10, 11 would be represented as {0.25, 0.25, 0.25, 0.25}. |
| QDMI_JOB_RESULT_STATEVECTOR_SPARSE_KEYS | 5 | char* (string) The keys for the sparse state vector of the result. The sparse state vector is represented as a key-value mapping. This mapping is returned as a list of keys and an equal-length list of values. The corresponding partners of keys and values can be found at the same index in the lists. |
| QDMI_JOB_RESULT_STATEVECTOR_SPARSE_VALUES | 6 | double* (double list) The values for the sparse state vector of the result. The complex amplitudes are stored in the same way as the dense state vector, but only for the non-zero amplitudes. |
| QDMI_JOB_RESULT_PROBABILITIES_SPARSE_KEYS | 7 | char* (string) The keys for the sparse probabilities of the result. The sparse probabilities are represented as a key-value mapping. This mapping is returned as a list of keys and an equal-length list of values. The corresponding partners of keys and values can be found at the same index in the lists. |
| QDMI_JOB_RESULT_PROBABILITIES_SPARSE_VALUES | 8 | double* (double list) The values for the sparse probabilities of the result. The probabilities are stored in the same way as the dense probabilities, but only for the non-zero probabilities. |
| QDMI_JOB_RESULT_MAX | 9 | The maximum value of the enum. It can be used by devices for bounds checking and validation of function parameters.
|
| QDMI_JOB_RESULT_CUSTOM1 | 999999995 | This enum value is reserved for a custom result. The device defines the meaning and the type of this result.
|
| QDMI_JOB_RESULT_CUSTOM2 | 999999996 |
|
| QDMI_JOB_RESULT_CUSTOM3 | 999999997 |
|
| QDMI_JOB_RESULT_CUSTOM4 | 999999998 |
|
| QDMI_JOB_RESULT_CUSTOM5 | 999999999 |
|
Enum to indicate the level of pulse support a device has.
| Enumerator | ||
|---|---|---|
| QDMI_DEVICE_PULSE_SUPPORT_LEVEL_NONE | 0 | The device does not support pulse-level control. |
| QDMI_DEVICE_PULSE_SUPPORT_LEVEL_SITE | 1 | The device supports pulse-level control at an abstraction level of QDMI_Site. This means that the device can execute pulse-level instructions on the sites of the device. This level of support is sufficient for most devices that can execute quantum circuits with pulse-level control, as it allows the device to execute pulse-level instructions on the sites of the device.
|
| QDMI_DEVICE_PULSE_SUPPORT_LEVEL_CHANNEL | 2 | The device supports pulse-level control at an abstraction level of QDMI_Pulse_Channel. This means that the device can execute pulse-level instructions on the channels of the device. This level of support is sufficient for devices that can execute quantum circuits with pulse-level control on a channel basis, such as devices that use a single channel for all sites. |
| QDMI_DEVICE_PULSE_SUPPORT_LEVEL_SITEANDCHANNEL | 3 | The device supports pulse-level control at an abstraction level of QDMI_Site and QDMI_Pulse_Channel. This means that the device can execute pulse-level instructions on both the sites and channels of the device. |