Application Class
An application defines a class of quantum computation problems along with a method to generate traces for specific problem instances.
We distinguish between application and trace parameters. The application parameters define which particular instance of the application we want to consider. The trace parameters define how to generate a trace. They change the specific way in which we solve the problem, but not the problem itself.
For example, in quantum cryptanalysis, the application parameters could define the key size for an RSA prime product, while the trace parameters define which algorithm to use to break the cryptography, as well as parameters therein.
Constructor
Application()
Methods
| context |
Create a new enumeration context for this application. |
| disable_parallel_traces |
Disable parallel trace generation for this application. |
| enumerate_traces |
Yield all traces of an application given its dataclass parameters. |
| enumerate_traces_with_parameters |
Yield (parameters, trace) pairs for an application. Like |
| get_trace |
Return the trace corresponding to this application and parameters. |
| post_process |
Post-process an estimation result for a given set of trace parameters. |
| q |
Create a trace query for this application. |
context
Create a new enumeration context for this application.
context() -> _Context
disable_parallel_traces
Disable parallel trace generation for this application.
disable_parallel_traces()
enumerate_traces
Yield all traces of an application given its dataclass parameters.
enumerate_traces(**kwargs) -> Generator[Trace, None, None]
Parameters
| Name | Description |
|---|---|
|
**kwargs
Required
|
Domain overrides forwarded to |
enumerate_traces_with_parameters
Yield (parameters, trace) pairs for an application.
Like enumerate_traces, but each yielded trace is accompanied by the
trace parameters that were used to generate it.
enumerate_traces_with_parameters(**kwargs) -> Generator[tuple[TraceParameters, Trace], None, None]
Parameters
| Name | Description |
|---|---|
|
**kwargs
Required
|
Domain overrides forwarded to |
get_trace
Return the trace corresponding to this application and parameters.
abstract get_trace(parameters: TraceParameters) -> Trace
Parameters
| Name | Description |
|---|---|
|
parameters
Required
|
<xref:qdk.qre.TraceParameters>
The trace parameters. |
Returns
| Type | Description |
|---|---|
|
The trace for this application instance and parameters. |
post_process
Post-process an estimation result for a given set of trace parameters.
post_process(parameters: TraceParameters, estimation: EstimationResult) -> EstimationResult
Parameters
| Name | Description |
|---|---|
|
parameters
Required
|
|
|
estimation
Required
|
|
q
Create a trace query for this application.
static q(**kwargs) -> TraceQuery
Parameters
| Name | Description |
|---|---|
|
**kwargs
Required
|
Domain overrides forwarded to trace parameter enumeration. |
Returns
| Type | Description |
|---|---|
|
A trace query for this application type. |