DQCsim
|
Namespace containing thin wrapper objects around the handles exposed by the raw C interface. More...
Namespaces | |
callback | |
Namespace containing all necessarily specializations of Callback as typedefs. | |
Classes | |
class | Arb |
Class wrapper for handles that support the arb interface. More... | |
class | ArbCmd |
Class wrapper for ArbCmd handles. More... | |
class | ArbCmdQueue |
Class wrapper for queues (lists) of ArbCmd s. More... | |
class | ArbData |
Class wrapper for ArbData handles. More... | |
class | Callback |
Class template shared between all callback functions. More... | |
class | Cmd |
Class wrapper for handles that support the cmd interface. More... | |
class | CustomGateConverter |
Class that you can inherit from to make your own custom gate converter for use within DQCsim. More... | |
class | CustomUnitaryGateConverter |
Class that you can inherit from to make your own unitary gate converter for use within DQCsim. More... | |
class | Gate |
Represents any kind of gate with qubits bound to it. More... | |
class | GateMap |
Gate map wrapper class. More... | |
class | Handle |
Base class for wrapping any handle. More... | |
class | Matrix |
Represents a square matrix used for describing N-qubit gates. More... | |
class | Measurement |
Class representation of the measurement result for a single qubit. More... | |
class | MeasurementSet |
Represents a set of measurements. More... | |
class | Plugin |
Plugin definition class. More... | |
class | PluginConfiguration |
Generic class for plugin configurations. More... | |
class | PluginConfigurationBuilder |
Builder class used to construct plugin configurations. More... | |
class | PluginJoinHandle |
Class wrapper for plugin join handles. More... | |
class | PluginProcessConfiguration |
Wrapper class for plugin process configurations. More... | |
class | PluginState |
Wrapper for DQCsim's internal plugin state within the context of downstream-synchronous plugin callbacks. More... | |
class | PluginThreadConfiguration |
Wrapper class for local plugin thread configurations. More... | |
class | QubitRef |
Represents a qubit. More... | |
class | QubitSet |
Represents an ordered set of qubit references. More... | |
class | RunningPluginState |
Wrapper for DQCsim's internal plugin state within the context of the run callback in a frontend. More... | |
class | Simulation |
Wrapper class for a running simulation. More... | |
class | SimulationConfiguration |
Wrapper class for configuring a simulation. More... | |
class | UpstreamPluginState |
Wrapper for DQCsim's internal plugin state within the context of upstream-synchronous plugin callbacks (that is, the modify_measurement callback). More... | |
Typedefs | |
using | HandleIndex = raw::dqcs_handle_t |
C++-styled type name for raw::dqcs_handle_t . More... | |
using | QubitIndex = raw::dqcs_qubit_t |
C++-styled type name for raw::dqcs_qubit_t . More... | |
using | Cycle = raw::dqcs_cycle_t |
C++-styled type name for raw::dqcs_cycle_t . More... | |
using | complex = std::complex< double > |
Typedef for the complex numbers used within the gate matrices. | |
Functions | |
void | check (raw::dqcs_return_t code) |
Checks a dqcs_return_t return value; if failure, throws a runtime error with DQCsim's error message. More... | |
bool | check (raw::dqcs_bool_return_t code) |
Checks a dqcs_bool_return_t return value; if failure, throws a runtime error with DQCsim's error message. More... | |
unsigned long long | check (unsigned long long handle) |
Checks a dqcs_handle_t or dqcs_qubit_t return value; if failure, throws a runtime error with DQCsim's error message. More... | |
Cycle | check (Cycle cycle) |
Checks a dqcs_cycle_t return value; if failure, throws a runtime error with DQCsim's error message. More... | |
size_t | check (ssize_t size) |
Checks a size return value; if failure, throws a runtime error with DQCsim's error message. More... | |
double | check (double value) |
Checks a double return value from dqcs_pcfg_*_timeout_get() ; if failure, throws a runtime error with DQCsim's error message. More... | |
raw::dqcs_handle_type_t | to_raw (HandleType type) noexcept |
Converts a HandleType to its raw C enum. More... | |
HandleType | check (raw::dqcs_handle_type_t type) |
Checks a dqcs_handle_type_t return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message. More... | |
raw::dqcs_loglevel_t | to_raw (Loglevel loglevel) noexcept |
Converts a Loglevel to its raw C enum. More... | |
Loglevel | check (raw::dqcs_loglevel_t loglevel) |
Checks a dqcs_loglevel_t return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message. More... | |
raw::dqcs_measurement_t | to_raw (MeasurementValue measurement) noexcept |
Converts a MeasurementValue to its raw C enum. More... | |
MeasurementValue | check (raw::dqcs_measurement_t measurement) |
Checks a dqcs_measurement_t return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message. More... | |
raw::dqcs_path_style_t | to_raw (PathStyle style) noexcept |
Converts a PathStyle to its raw C enum. More... | |
PathStyle | check (raw::dqcs_path_style_t style) |
Checks a dqcs_path_style_t return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message. More... | |
raw::dqcs_plugin_type_t | to_raw (PluginType type) noexcept |
Converts a PluginType to its raw C enum. More... | |
PluginType | check (raw::dqcs_plugin_type_t type) |
Checks a dqcs_plugin_type_t return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message. More... | |
raw::dqcs_gate_type_t | to_raw (GateType type) noexcept |
Converts a GateType to its raw C enum. More... | |
GateType | check (raw::dqcs_gate_type_t type) |
Checks a dqcs_gate_type_t return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message. More... | |
raw::dqcs_basis_t | to_raw (PauliBasis type) noexcept |
Converts a PauliBasis to its raw C enum. More... | |
PauliBasis | check (raw::dqcs_basis_t type) |
Checks a dqcs_basis_t return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message. More... | |
raw::dqcs_predefined_gate_t | to_raw (PredefinedGate type) noexcept |
Converts a PredefinedGate to its raw C enum. More... | |
PredefinedGate | check (raw::dqcs_predefined_gate_t type) |
Checks a dqcs_predefined_gate_t return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message. More... | |
template<typename T > | |
T * | check (T *pointer) |
Checks a pointer return value; if failure, throws a runtime error with DQCsim's error message. More... | |
template<typename... Args> | |
void | log (wrap::Loglevel level, const std::string &module, const std::string &file, unsigned int line_nr, const std::string &format, Args... args) noexcept |
Shim around the dqcs_log_format C API using std::string for the strings. More... | |
bool | log_raw (wrap::Loglevel level, const std::string &module, const std::string &file, unsigned int line_nr, const std::string &message) noexcept |
Shim around the dqcs_log_raw C API using std::string for the strings. More... | |
QubitRef | operator""_q (unsigned long long int qubit) |
Literal operator for qubits, so for instance 15_q returns qubit 15. | |
PluginConfigurationBuilder | Frontend (const std::string &name="") noexcept |
Shorthand for constructing a frontend plugin configuration builder. More... | |
PluginConfigurationBuilder | Operator (const std::string &name="") noexcept |
Shorthand for constructing an operator plugin configuration builder. More... | |
PluginConfigurationBuilder | Backend (const std::string &name="") noexcept |
Shorthand for constructing a backend plugin configuration builder. More... | |
Namespace containing thin wrapper objects around the handles exposed by the raw C interface.
The symbols in this namespace fully wrap those provided by the raw C API. The following things are abstracted away.
dqcs_set_error
/dqcs_get_error
error reporting system is replaced with C++ exceptions. This is handled primarily by the check
function; placing this around any raw C API function will turn DQCsim errors into an std::runtime_error
.dqcs_plugin_state_t
type is encapsulated by a class which can only be constructed by this library, cannot be moved or copied, and cannot be mutated. This prevents mistakes leading to crashes in the Rust portion of DQCsim. using dqcsim::wrap::HandleIndex = typedef raw::dqcs_handle_t |
C++-styled type name for raw::dqcs_handle_t
.
This integer type is used to represent C API handles internally. You normally shouldn't encounter this type.
using dqcsim::wrap::QubitIndex = typedef raw::dqcs_qubit_t |
C++-styled type name for raw::dqcs_qubit_t
.
This integer type is used to represent qubit indices. You can do math on this type if you like, though this normally doesn't bear any significance. Most of the time you'll be using QubitRef
instead, which prevents such (usually) meaningless operations.
using dqcsim::wrap::Cycle = typedef raw::dqcs_cycle_t |
C++-styled type name for raw::dqcs_cycle_t
.
This integer type is used to represent simulation cycles.
|
strong |
Represents the type of a raw handle.
This wraps raw::handle_type_t
, not including the invalid
option (since we use exceptions to communicate failure).
Enumerator | |
---|---|
ArbData | Indicates that a handle is an |
ArbCmd | Indicates that a handle is an |
ArbCmdQueue | Indicates that a handle is an |
QubitSet | Indicates that a handle is a |
Gate | Indicates that a handle is a |
Measurement | Indicates that a handle is a |
MeasurementSet | Indicates that a handle is a |
Matrix | Indicates that a handle is a |
GateMap | Indicates that a handle is a |
FrontendProcessConfig | Indicates that a handle is a |
OperatorProcessConfig | Indicates that a handle is a |
BackendProcessConfig | Indicates that a handle is a |
FrontendThreadConfig | Indicates that a handle is a |
OperatorThreadConfig | Indicates that a handle is a |
BackendThreadConfig | Indicates that a handle is a |
SimulationConfig | Indicates that a handle is a |
Simulation | Indicates that a handle is a |
FrontendDefinition | Indicates that a handle is a frontend |
OperatorDefinition | Indicates that a handle is an operator |
BackendDefinition | Indicates that a handle is a backend |
PluginJoinHandle | Indicates that a handle is a |
|
strong |
Represents the loglevel of a message, a loglevel filter level, or one of the possible actions to take when a message is received from a plugin through stdout
or stderr
.
This wraps raw::dqcs_loglevel_t
, not including the invalid
option (since we use exceptions to communicate failure).
|
strong |
Represents the result of a qubit measurement.
This wraps raw::dqcs_measurement_t
, not including the invalid
option (since we use exceptions to communicate failure).
|
strong |
Represents the possible options for dealing with paths when writing a reproduction file.
This wraps raw::dqcs_path_style_t
, not including the invalid
option (since we use exceptions to communicate failure).
|
strong |
Enumeration of the three types of plugins.
This wraps raw::dqcs_plugin_type_t
, not including the invalid
option (since we use exceptions to communicate failure).
Enumerator | |
---|---|
Frontend | Frontend plugin. |
Operator | Operator plugin. |
Backend | Backend plugin. |
|
strong |
Enumeration of gate types supported by DQCsim.
This wraps raw::dqcs_gate_type_t
, not including the invalid
option (since we use exceptions to communicate failure).
Enumerator | |
---|---|
Unitary | Unitary gates have one or more target qubits, zero or more control qubits, and a unitary matrix, sized for the number of target qubits. The semantics are that the unitary matrix expanded by the number of control qubits is applied to the qubits. The data field may add pragma-like hints to the gate, for instance to represent the line number in the source file that generated the gate, error modelling information, and so on. This data may be silently ignored. |
Measurement | Measurement gates have one or more measured qubits and a 2x2 unitary matrix representing the basis. The semantics are:
This allows any measurement basis to be used. The data field may add pragma-like hints to the gate, for instance to represent the line number in the source file that generated the gate, error modelling information, and so on. This data may be silently ignored. |
Prep | Prep gates have one or more target qubits and a 2x2 unitary matrix representing the basis. The semantics are:
This allows any initial state to be used. The data field may add pragma-like hints to the gate, for instance to represent the line number in the source file that generated the gate, error modelling information, and so on. This data may be silently ignored. |
Custom | Custom gates perform a user-defined mixed quantum-classical operation, identified by a name. They can have zero or more target, control, and measured qubits, of which only the target and control sets must be mutually exclusive. They also have an optional matrix of arbitrary size. The semantics are:
|
|
strong |
Enumeration of Pauli bases.
This wraps raw::dqcs_basis_t
, not including the invalid
option (since we use exceptions to communicate failure).
|
strong |
Enumeration of unitary gates defined by DQCsim.
This wraps raw::dqcs_predefined_gate_t
, not including the invalid
option (since we use exceptions to communicate failure).
Enumerator | |
---|---|
I | The identity gate for a single qubit. \[ I = \sigma_0 = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \] |
X | The Pauli X matrix. \[ X = \sigma_1 = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} \] |
Y | The Pauli Y matrix. \[ Y = \sigma_2 = \begin{bmatrix} 0 & -i \\ i & 0 \end{bmatrix} \] |
Z | The Pauli Z matrix. \[ Z = \sigma_3 = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} \] |
H | The hadamard gate matrix. That is, a 180-degree Y rotation, followed by a 90-degree X rotation. \[ H = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} \] |
S | The S matrix, also known as a 90 degree Z rotation. \[ S = \begin{bmatrix} 1 & 0 \\ 0 & i \end{bmatrix} \] |
S_DAG | The S-dagger matrix, also known as a negative 90 degree Z rotation. \[ S^\dagger = \begin{bmatrix} 1 & 0 \\ 0 & -i \end{bmatrix} \] |
T | The T matrix, also known as a 45 degree Z rotation. \[ T = \begin{bmatrix} 1 & 0 \\ 0 & e^{i\frac{\pi}{4}} \end{bmatrix} \] |
T_DAG | The T-dagger matrix, also known as a negative 45 degree Z rotation. \[ T^\dagger = \begin{bmatrix} 1 & 0 \\ 0 & e^{-i\frac{\pi}{4}} \end{bmatrix} \] |
RX_90 | Rx(90°) gate. \[ R_x\left(\frac{\pi}{2}\right) = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & -i \\ -i & 1 \end{bmatrix} \] |
RX_M90 | Rx(-90°) gate. \[ R_x\left(-\frac{\pi}{2}\right) = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & i \\ i & 1 \end{bmatrix} \] |
RX_180 | Rx(180°) gate. \[ R_x(\pi) = \begin{bmatrix} 0 & -i \\ -i & 0 \end{bmatrix} \] This matrix is equivalent to the Pauli X gate, but differs in global phase. Note that this difference is significant when it is used as a submatrix for a controlled gate. |
RY_90 | Ry(90°) gate. \[ R_y\left(\frac{\pi}{2}\right) = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & -1 \\ 1 & 1 \end{bmatrix} \] |
RY_M90 | Ry(-90°) gate. \[ R_y\left(\frac{\pi}{2}\right) = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ -1 & 1 \end{bmatrix} \] |
RY_180 | Ry(180°) gate. \[ R_y(\pi) = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \] This matrix is equivalent to the Pauli Y gate, but differs in global phase. Note that this difference is significant when it is used as a submatrix for a controlled gate. |
RZ_90 | Rz(90°) gate. \[ R_z\left(\frac{\pi}{2}\right) = \frac{1}{\sqrt{2}} \begin{bmatrix} 1-i & 0 \\ 0 & 1+i \end{bmatrix} \] This matrix is equivalent to the S gate, but differs in global phase. Note that this difference is significant when it is used as a submatrix for a controlled gate. |
RZ_M90 | Rz(-90°) gate. \[ R_z\left(-\frac{\pi}{2}\right) = \frac{1}{\sqrt{2}} \begin{bmatrix} 1+i & 0 \\ 0 & 1-i \end{bmatrix} \] This matrix is equivalent to the S-dagger gate, but differs in global phase. Note that this difference is significant when it is used as a submatrix for a controlled gate. |
RZ_180 | Rz(180°) gate. \[ R_z(\pi) = \begin{bmatrix} -i & 0 \\ 0 & i \end{bmatrix} \] This matrix is equivalent to the Pauli Z gate, but differs in global phase. Note that this difference is significant when it is used as a submatrix for a controlled gate. |
RX | The matrix for an arbitrary X rotation. \[ R_x(\theta) = \begin{bmatrix} \cos{\frac{\theta}{2}} & -i\sin{\frac{\theta}{2}} \\ -i\sin{\frac{\theta}{2}} & \cos{\frac{\theta}{2}} \end{bmatrix} \] θ is specified or returned through the first binary string argument of the parameterization ArbData object. It is represented as a little-endian double floating point value, specified in radians. |
RY | The matrix for an arbitrary Y rotation. \[ R_y(\theta) = \begin{bmatrix} \cos{\frac{\theta}{2}} & -\sin{\frac{\theta}{2}} \\ \sin{\frac{\theta}{2}} & \cos{\frac{\theta}{2}} \end{bmatrix} \] θ is specified or returned through the first binary string argument of the parameterization ArbData object. It is represented as a little-endian double floating point value, specified in radians. |
RZ | The matrix for an arbitrary Z rotation. \[ R_z(\theta) = \begin{bmatrix} e^{-i\frac{\theta}{2}} & 0 \\ 0 & e^{i\frac{\theta}{2}} \end{bmatrix} \] θ is specified or returned through the first binary string argument of the parameterization ArbData object. It is represented as a little-endian double floating point value, specified in radians. |
PhaseK | The matrix for a Z rotation with angle π/2^k. \[ \textit{PhaseK}(k) = \textit{Phase}\left(\frac{\pi}{2^k}\right) = \begin{bmatrix} 1 & 0 \\ 0 & e^{i\pi / 2^k} \end{bmatrix} \] k is specified or returned through the first binary string argument of the parameterization ArbData object. It is represented as a little-endian unsigned 64-bit integer. |
Phase | The matrix for an arbitrary Z rotation. \[ \textit{Phase}(\theta) = \begin{bmatrix} 1 & 0 \\ 0 & e^{i\theta} \end{bmatrix} \] θ is specified or returned through the first binary string argument of the parameterization ArbData object. It is represented as a little-endian double floating point value, specified in radians. This matrix is equivalent to the Rz gate, but differs in global phase. Note that this difference is significant when it is used as a submatrix for a controlled gate. Specifically, controlled phase gates use the phase as specified by this gate, whereas Rz follows the usual algebraic notation. |
U1 | Any single-qubit unitary gate, parameterized as a full unitary matrix. The full matrix is specified or returned through the first binary string argument of the parameterization ArbData object. It is represented as an array of little-endian double floating point values, structured as real/imag pairs, with the pairs in row-major order. |
R | Arbitrary rotation matrix. \[ R(\theta, \phi, \lambda) = \begin{bmatrix} \cos{\frac{\theta}{2}} & -\sin{\frac{\theta}{2}} e^{i\lambda} \\ \sin{\frac{\theta}{2}} e^{i\phi} & \cos{\frac{\theta}{2}} e^{i\phi + i\lambda} \end{bmatrix} \] This is equivalent to the following: \[ R(\theta, \phi, \lambda) = \textit{Phase}(\phi) \cdot R_y(\theta) \cdot \textit{Phase}(\lambda) \] The rotation order and phase is taken from Qiskit's U3 gate. Ignoring global phase, any unitary single-qubit gate can be represented with this notation. θ, φ, and λ are specified or returned through the first three binary string arguments of the parameterization ArbData object. They are represented as little-endian double floating point values, specified in radians. |
Swap | The swap gate matrix. \[ \textit{SWAP} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \] |
SqSwap | The square-root of a swap gate matrix. \[ \sqrt{\textit{SWAP}} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \frac{i+1}{2} & \frac{i-1}{2} & 0 \\ 0 & \frac{i-1}{2} & \frac{i+1}{2} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \] |
U2 | Any two-qubit unitary gate, parameterized as a full unitary matrix. The full matrix is specified or returned through the first binary string argument of the parameterization ArbData object. It is represented as an array of little-endian double floating point values, structured as real/imag pairs, with the pairs in row-major order. |
U3 | Any three-qubit unitary gate, parameterized as a full unitary matrix. The full matrix is specified or returned through the first binary string argument of the parameterization ArbData object. It is represented as an array of little-endian double floating point values, structured as real/imag pairs, with the pairs in row-major order. |
|
inline |
|
inline |
|
inline |
Checks a dqcs_handle_t
or dqcs_qubit_t
return value; if failure, throws a runtime error with DQCsim's error message.
handle | The raw function return code. |
std::runtime_error | When the return code indicated failure. |
|
inline |
|
inline |
Checks a double
return value from dqcs_pcfg_*_timeout_get()
; if failure, throws a runtime error with DQCsim's error message.
value | The raw function return code. |
std::runtime_error | When the return code indicated failure. |
|
inlinenoexcept |
|
inline |
Checks a dqcs_handle_type_t
return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message.
type | The raw function return code. |
std::runtime_error | When the return code indicated failure. |
|
inlinenoexcept |
|
inline |
Checks a dqcs_loglevel_t
return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message.
loglevel | The raw function return code. |
std::runtime_error | When the return code indicated failure. |
|
inlinenoexcept |
|
inline |
Checks a dqcs_measurement_t
return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message.
measurement | The raw function return code. |
std::runtime_error | When the return code indicated failure. |
|
inlinenoexcept |
|
inline |
Checks a dqcs_path_style_t
return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message.
style | The raw function return code. |
std::runtime_error | When the return code indicated failure. |
|
inlinenoexcept |
|
inline |
Checks a dqcs_plugin_type_t
return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message.
type | The raw function return code. |
std::runtime_error | When the return code indicated failure. |
|
inlinenoexcept |
|
inline |
Checks a dqcs_gate_type_t
return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message.
type | The raw function return code. |
std::runtime_error | When the return code indicated failure. |
|
inlinenoexcept |
|
inline |
Checks a dqcs_basis_t
return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message.
type | The raw function return code. |
std::runtime_error | When the return code indicated failure. |
|
inlinenoexcept |
|
inline |
Checks a dqcs_predefined_gate_t
return value and converts it to its C++ enum representation; if failure, throws a runtime error with DQCsim's error message.
type | The raw function return code. |
std::runtime_error | When the return code indicated failure. |
|
inline |
|
inlinenoexcept |
Shim around the dqcs_log_format
C API using std::string
for the strings.
printf
format arguments are passed directly into a C-only printf
-like function. Therefore, you must use the c_str()
function if you want to format std::string
variables.If logging through DQCsim's conventional channels fails, this function simply outputs to stderr directly. Therefore, it cannot fail.
To avoid having to fill out module
, file
, and line_nr
manually, you can use the DQCSIM_LOG
macro (or its loglevel-specific friends). If you define DQCSIM_SHORT_LOGGING_MACROS
before including <dqcsim>
, you can also use the LOG
shorthand (or its loglevel-specific friends).
level | The severity level of the message. |
module | The "module" sending the message. This is unused by the C++ macros. |
file | The source file for the code sending the message (you can use __FILE__ for this). |
line_nr | The line number within the source file of the code sending the message (you can use __LINE__ for this). |
format | The printf -style format string for the log message. |
args | The arguments for the printf -style format string. |
|
inlinenoexcept |
Shim around the dqcs_log_raw
C API using std::string
for the strings.
To avoid having to fill out module
, file
, and line_nr
manually, you can use the DQCSIM_LOG
macro (or its loglevel-specific friends). If you define DQCSIM_SHORT_LOGGING_MACROS
before including <dqcsim>
, you can also use the LOG
shorthand (or its loglevel-specific friends).
level | The severity level of the message. |
module | The "module" sending the message. This is unused by the C++ macros. |
file | The source file for the code sending the message (you can use __FILE__ for this). |
line_nr | The line number within the source file of the code sending the message (you can use __LINE__ for this). |
message | The log message. |
|
inlinenoexcept |
Shorthand for constructing a frontend plugin configuration builder.
name | An optional name for the plugin. See PluginConfigurationBuilder::with_name() . |
PluginConfigurationBuilder
for a frontend plugin with the given name.
|
inlinenoexcept |
Shorthand for constructing an operator plugin configuration builder.
name | An optional name for the plugin. See PluginConfigurationBuilder::with_name() . |
PluginConfigurationBuilder
for an operator plugin with the given name.
|
inlinenoexcept |
Shorthand for constructing a backend plugin configuration builder.
name | An optional name for the plugin. See PluginConfigurationBuilder::with_name() . |
PluginConfigurationBuilder
for a backend plugin with the given name.