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 enumerate_traces, but each yielded trace is accompanied by the trace parameters that were used to generate it.

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_instances.

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 _enumerate_instances.

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.