Skip to main content
Members:
NameDescription
ProviderConfigProvider-specific configuration data for execution, such as API keys and machine-specific parameters.
ExecutionPreferencesRepresents the execution settings for running a quantum program.
ExecutionSessionA session for executing a quantum program or OpenQASM source text.
sampleSample a quantum program or OpenQASM circuit.

ProviderConfig

Provider-specific configuration data for execution, such as API keys and machine-specific parameters.

ExecutionPreferences

Represents the execution settings for running a quantum program. Execution preferences for running a quantum program. For more details, refer to: ExecutionPreferences example: ExecutionPreferences.. Attributes:
NameTypeDescription
noise_propertiesOptional[NoiseProperties]Properties defining the noise in the quantum circuit. Defaults to None.
random_seedintThe random seed used for the execution. Defaults to a randomly generated seed.
backend_preferencesBackendPreferencesTypesPreferences for the backend used to execute the circuit. Defaults to the Classiq Simulator.
num_shotsOptional[pydantic.PositiveInt]The number of shots (executions) to be performed.
transpile_to_hardwareTranspilationOptionOption to transpile the circuit to the hardware’s basis gates before execution. Defaults to TranspilationOption.DECOMPOSE.
job_nameOptional[str]The name of the job, with a minimum length of 1 character.

noise_properties

noise_properties: NoiseProperties | None = pydantic.Field(default=None, description='Properties of the noise in the circuit')

random_seed

random_seed: int = pydantic.Field(default_factory=create_random_seed, description='The random seed used for the execution')

backend_preferences

backend_preferences: BackendPreferencesTypes = backend_preferences_field(backend_name=(ClassiqSimulatorBackendNames.SIMULATOR))

num_shots

num_shots: pydantic.PositiveInt | None = pydantic.Field(default=None)

transpile_to_hardware

transpile_to_hardware: TranspilationOption = pydantic.Field(default=(TranspilationOption.DECOMPOSE), description='Transpile the circuit to the hardware basis gates before execution', title='Transpilation Option')

job_name

job_name: str | None = pydantic.Field(min_length=1, description='The job name', default=None)

include_zero_amplitude_outputs

include_zero_amplitude_outputs: bool = pydantic.Field(default=False, description='In state vector simulation, whether to include zero-amplitude states in the result. When True, overrides amplitude_threshold.')

amplitude_threshold

amplitude_threshold: float = pydantic.Field(default=0.0, ge=0, description='In state vector simulation, only states with amplitude magnitude strictly greater than this threshold are included in the result. Defaults to 0 (filters exactly zero-amplitude states). Overridden by include_zero_amplitude_outputs=True.')

ExecutionSession

A session for executing a quantum program or OpenQASM source text. ExecutionSession allows to execute the quantum program with different parameters and operations without the need to re-synthesize the model. The session must be closed in order to ensure resources are properly cleaned up. It’s recommended to use ExecutionSession as a context manager for this purpose. Alternatively, you can directly use the close method. Methods:
NameDescription
closeClose the session and clean up its resources.
get_session_id
update_execution_preferencesUpdate the execution preferences for the session.
sampleSamples the quantum program with the given parameters, if any.
submit_sampleInitiates an execution job with the sample primitive.
batch_sampleSamples the quantum program multiple times with the given parameters for each iteration.
submit_batch_sampleInitiates an execution job with the batch_sample primitive.
estimateEstimates the expectation value of the given Hamiltonian using the quantum program.
submit_estimateInitiates an execution job with the estimate primitive.
batch_estimateEstimates the expectation value of the given Hamiltonian multiple times using the quantum program, with the given parameters for each iteration.
submit_batch_estimateInitiates an execution job with the batch_estimate primitive.
minimizeMinimizes the given cost function using the quantum program.
submit_minimizeInitiates an execution job with the minimize primitive.
estimate_costEstimates circuit cost using a classical cost function.
set_measured_state_filterWhen simulating on a statevector simulator, emulate the behavior of postprocessing by discarding amplitudes for which their states are “undesirable”.
Attributes:
NameTypeDescription
programQuantumProgramThe quantum program to execute, or a placeholder when the first constructor argument was OpenQASM source text.
execution_preferencesOptional[ExecutionPreferences]Execution preferences for the Quantum Program.

program

program = _openqasm_session_placeholder_program()

close

close(
self:
) -> None
Close the session and clean up its resources. Parameters:
NameTypeDescriptionDefault
selfrequired

update_execution_preferences

update_execution_preferences(
self: ,
execution_preferences: ExecutionPreferences | None
) -> None
Update the execution preferences for the session. Parameters:
NameTypeDescriptionDefault
selfrequired
execution_preferencesExecutionPreferences | NoneThe execution preferences to update.required
Returns:
  • Type: None

sample

sample(
self: ,
parameters: ExecutionParams | list[ExecutionParams] | None = None
) -> ExecutionDetails | list[ExecutionDetails]
Samples the quantum program with the given parameters, if any. Parameters:
NameTypeDescriptionDefault
selfrequired
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.None
Returns:
  • Type: ExecutionDetails \| list[ExecutionDetails]
  • The result of the sampling, or a list of results when
  • parameters is a list.

submit_sample

submit_sample(
self: ,
parameters: ExecutionParams | list[ExecutionParams] | None = None
) -> ExecutionJob
Initiates an execution job with the sample primitive. This is a non-blocking version of sample: it gets the same parameters and initiates the same execution job, but instead of waiting for the result, it returns the job object immediately. Parameters:
NameTypeDescriptionDefault
selfrequired
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.None
Returns:
  • Type: ExecutionJob
  • The execution job.

batch_sample

batch_sample(
self: ,
parameters: list[ExecutionParams]
) -> list[ExecutionDetails]
Samples the quantum program multiple times with the given parameters for each iteration. The number of samples is determined by the length of the parameters list. .. deprecated:: Pass a list of parameter dicts to :meth:sample instead. Parameters:
NameTypeDescriptionDefault
selfrequired
parameterslist[ExecutionParams]A list of the parameters for each iteration. Each item is a dictionary where each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.required
Returns:
  • Type: list[ExecutionDetails]
  • List[ExecutionDetails]: The results of all the sampling iterations.

submit_batch_sample

submit_batch_sample(
self: ,
parameters: list[ExecutionParams]
) -> ExecutionJob
Initiates an execution job with the batch_sample primitive. .. deprecated:: Pass a list of parameter dicts to :meth:submit_sample instead. Parameters:
NameTypeDescriptionDefault
selfrequired
parameterslist[ExecutionParams]A list of the parameters for each iteration. Each item is a dictionary where each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.required
Returns:
  • Type: ExecutionJob
  • The execution job.

estimate

estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None
) -> EstimationResult | list[EstimationResult]
Estimates the expectation value of the given Hamiltonian using the quantum program. Parameters:
NameTypeDescriptionDefault
selfrequired
hamiltonianHamiltonianThe Hamiltonian to estimate the expectation value of.required
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.None
Returns:
  • Type: EstimationResult \| list[EstimationResult]
  • The estimation result, or a list of results when parameters
  • is a list.

submit_estimate

submit_estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the estimate primitive. This is a non-blocking version of estimate: it gets the same parameters and initiates the same execution job, but instead of waiting for the result, it returns the job object immediately. Parameters:
NameTypeDescriptionDefault
selfrequired
hamiltonianHamiltonianThe Hamiltonian to estimate the expectation value of.required
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.None
_check_deprecationboolTrue
Returns:
  • Type: ExecutionJob
  • The execution job.

batch_estimate

batch_estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: list[ExecutionParams]
) -> list[EstimationResult]
Estimates the expectation value of the given Hamiltonian multiple times using the quantum program, with the given parameters for each iteration. The number of estimations is determined by the length of the parameters list. .. deprecated:: Pass a list of parameter dicts to :meth:estimate instead. Parameters:
NameTypeDescriptionDefault
selfrequired
hamiltonianHamiltonianThe Hamiltonian to estimate the expectation value of.required
parameterslist[ExecutionParams]A list of the parameters for each iteration. Each item is a dictionary where each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.required
Returns:
  • Type: list[EstimationResult]
  • List[EstimationResult]: The results of all the estimation iterations.

submit_batch_estimate

submit_batch_estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: list[ExecutionParams],
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the batch_estimate primitive. .. deprecated:: Pass a list of parameter dicts to :meth:submit_estimate instead. Parameters:
NameTypeDescriptionDefault
selfrequired
hamiltonianHamiltonianThe Hamiltonian to estimate the expectation value of.required
parameterslist[ExecutionParams]A list of the parameters for each iteration. Each item is a dictionary where each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.required
_check_deprecationboolTrue
Returns:
  • Type: ExecutionJob
  • The execution job.

minimize

minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None
) -> list[tuple[float, ExecutionParams]]
Minimizes the given cost function using the quantum program. Parameters:
NameTypeDescriptionDefault
selfrequired
cost_functionHamiltonian | QmodExpressionCreatorThe cost function to minimize. It can be one of the following: - A quantum cost function defined by a Hamiltonian. - A classical cost function represented as a callable that returns a Qmod expression. The callable should accept QVars as arguments and use names matching the Model outputs.required
initial_paramsExecutionParamsThe initial parameters for the minimization. Only Models with exactly one execution parameter are supported. This parameter must be of type CReal or CArray. The dictionary must contain a single key-value pair, where: - The key is the name of the parameter. - The value is either a float or a list of floats.required
max_iterationintThe maximum number of iterations for the minimization.required
quantilefloatThe quantile to use for cost estimation.1.0
tolerancefloat | NoneThe tolerance for the minimization.None
Returns:
  • Type: list[tuple[float, ExecutionParams]]
  • A list of tuples, each containing the estimated cost and the corresponding parameters for that iteration. cost is a float, and parameters is a dictionary matching the execution parameter format.

submit_minimize

submit_minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the minimize primitive. This is a non-blocking version of minimize: it gets the same parameters and initiates the same execution job, but instead of waiting for the result, it returns the job object immediately. Parameters:
NameTypeDescriptionDefault
selfrequired
cost_functionHamiltonian | QmodExpressionCreatorThe cost function to minimize. It can be one of the following: - A quantum cost function defined by a Hamiltonian. - A classical cost function represented as a callable that returns a Qmod expression. The callable should accept QVars as arguments and use names matching the Model outputs.required
initial_paramsExecutionParamsThe initial parameters for the minimization. Only Models with exactly one execution parameter are supported. This parameter must be of type CReal or CArray. The dictionary must contain a single key-value pair, where: - The key is the name of the parameter. - The value is either a float or a list of floats.required
max_iterationintThe maximum number of iterations for the minimization.required
quantilefloatThe quantile to use for cost estimation.1.0
tolerancefloat | NoneThe tolerance for the minimization.None
_check_deprecationboolTrue
Returns:
  • Type: ExecutionJob
  • The execution job.

estimate_cost

estimate_cost(
self: ,
cost_func: Callable[[ParsedState], float],
parameters: ExecutionParams | None = None,
quantile: float = 1.0
) -> float
Estimates circuit cost using a classical cost function. Parameters:
NameTypeDescriptionDefault
selfrequired
cost_funcCallable[[ParsedState], float]classical circuit sample cost functionrequired
parametersExecutionParams | Noneexecution parameters sent to ‘sample’None
quantilefloatdrop cost values outside the specified quantile1.0
Returns:
  • Type: float
  • cost estimation

set_measured_state_filter

set_measured_state_filter(
self: ,
output_name: str,
condition: Callable
) -> None
When simulating on a statevector simulator, emulate the behavior of postprocessing by discarding amplitudes for which their states are “undesirable”. Parameters:
NameTypeDescriptionDefault
selfrequired
output_namestrThe name of the register to filterrequired
conditionCallableFilter out values of the statevector for which this callable is Falserequired

sample

sample(
qprog: QuantumProgram | str,
backend: str | None = None,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
config: dict[str, Any] | ProviderConfig | None = None,
num_shots: int | None = None,
random_seed: int | None = None,
transpilation_option: TranspilationOption = TranspilationOption.DECOMPOSE,
run_via_classiq: bool = False
) -> DataFrame | list[DataFrame]
Sample a quantum program or OpenQASM circuit. Parameters:
NameTypeDescriptionDefault
qprogQuantumProgram | strA synthesized QuantumProgram, or OpenQASM 2.0 / 3.0 source as a single string (for example output of qiskit.qasm2.dumps or qiskit.qasm3.dumps).required
backendstr | NoneThe hardware or simulator on which to run the quantum program. Use "simulator" for Classiq’s default simulator, or specify a backend as "provider/device_id". Use the get_backend_details function to see supported devices.None
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter. Not supported when qprog is an OpenQASM string (use a QuantumProgram or bind values in QASM before calling sample).None
configdict[str, Any] | ProviderConfig | NoneProvider-specific configuration, such as API keys. For full details, see the SDK reference under Providers.None
num_shotsint | NoneThe number of times to sample.None
random_seedint | NoneThe random seed used for transpilation and simulation.None
transpilation_optionTranspilationOptionAdvanced configuration for hardware-specific transpilation.TranspilationOption.DECOMPOSE
run_via_classiqboolRun via Classiq’s credentials while using your allocated budget. Defaults to False.False
Returns:
  • Type: DataFrame \| list[DataFrame]
  • A dataframe containing the histogram, or a list of dataframes when
  • parameters is a list.

calculate_state_vector

calculate_state_vector(
qprog: QuantumProgram,
backend: str | None = None,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
filters: dict[str, Any] | None = None,
random_seed: int | None = None,
transpilation_option: TranspilationOption = TranspilationOption.DECOMPOSE,
amplitude_threshold: float = 0.0
) -> DataFrame | list[DataFrame]
Calculate the state vector of a quantum program. This function is only available for Classiq simulators (e.g. "classiq/simulator"). Parameters:
NameTypeDescriptionDefault
qprogQuantumProgramThe quantum program to be executed.required
backendstr | NoneThe simulator on which to simulate the quantum program. Specified as "provider/backend_name". Use the get_backend_details function to see supported backends. Only Classiq simulators are supported.None
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.None
filtersdict[str, Any] | NoneOnly states where the variables match these values will be included in the state vector.None
random_seedint | NoneThe random seed for reproducibility.None
transpilation_optionTranspilationOptionAdvanced configuration for hardware-specific transpilation.TranspilationOption.DECOMPOSE
amplitude_thresholdfloatIf provided, only states whose amplitude magnitude is strictly greater than this value will be included in the result. Defaults to 0 (filters exactly zero-amplitude states).0.0
Returns:
  • Type: DataFrame \| list[DataFrame]
  • A dataframe containing the state vector, or a list of dataframes when
  • parameters is a list.

observe

observe(
qprog: QuantumProgram,
observable: SparsePauliOp,
backend: str | None = None,
estimate: bool = True,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
config: dict[str, Any] | ProviderConfig | None = None,
num_shots: int | None = None,
random_seed: int | None = None,
transpilation_option: TranspilationOption = TranspilationOption.DECOMPOSE,
run_via_classiq: bool = False
) -> float | list[float]
Get the expectation value of the observable O with respect to the state \|psi>, which is prepared by the provided quantum program. Parameters:
NameTypeDescriptionDefault
qprogQuantumProgramThe quantum program that generates the state `|psi>` to be observed.required
observableSparsePauliOpThe observable O, a Hermitian operator defined as a SparsePauliOp (sum of Pauli terms).required
backendstr | NoneThe hardware or simulator on which to run the quantum program. Use "simulator" for Classiq’s default simulator, or specify a backend as "provider/backend_name". Use the get_backend_details function to see supported devices.None
estimateboolWhether to estimate the expectation value by repeatedly measuring the circuit num_shots times, or calculate the exact expectation value using a simulated statevector. Note that the available options depend on the specified backend. Defaults to True.True
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.None
configdict[str, Any] | ProviderConfig | NoneProvider-specific configuration, such as API keys. For full details, see the SDK reference under Providers.None
num_shotsint | NoneThe number of measurement shots. Only relevant when estimate=True.None
random_seedint | NoneThe random seed for reproducibility.None
transpilation_optionTranspilationOptionAdvanced configuration for hardware-specific transpilation.TranspilationOption.DECOMPOSE
run_via_classiqboolRun via Classiq’s credentials while using your allocated budget. Defaults to False.False
Returns:
  • Type: float \| list[float]
  • The expectation value as a float, or a list of floats when
  • parameters is a list.

BraketConfig

Configuration specific to Amazon Braket. Attributes:
NameTypeDescription
braket_access_key_idstr | NoneThe access key id of user with full braket access
braket_secret_access_keystr | NoneThe secret key assigned to the access key id for the user with full braket access.
s3_bucket_namestr | NoneThe name of the S3 bucket where results and other related data will be stored. This field should contain a valid S3 bucket name under your AWS account.
s3_folderpydantic_backend.PydanticS3BucketKey | NoneThe folder path within the specified S3 bucket. This allows for organizing results and data under a specific directory within the S3 bucket.

braket_access_key_id

braket_access_key_id: str | None = pydantic.Field(default=None, description='Key id assigned to user with credentials to access Braket service')

braket_secret_access_key

braket_secret_access_key: str | None = pydantic.Field(default=None, description='Secret access key assigned to user with credentials to access Braket service')

s3_bucket_name

s3_bucket_name: str | None = pydantic.Field(default=None, description='S3 Bucket Name')

s3_folder

s3_folder: str | None = pydantic.Field(default=None, description='S3 Folder Path Within The S3 Bucket')

IBMConfig

Configuration specific to IBM. Attributes:
NameTypeDescription
access_tokenstr | NoneThe IBM Cloud access token to be used with IBM Quantum hosted backends. Defaults to None.
channelstrChannel to use for IBM cloud backends. Defaults to "ibm_cloud".
instance_crnstr | NoneThe IBM Cloud instance CRN (Cloud Resource Name) for the IBM Quantum service.
emulateboolIf True, run on Classiq AerSimulator with IBM noise model derived from backend name. Defaults to False.

access_token

access_token: str | None = pydantic.Field(default=None, description='IBM Cloud access token to be used with IBM Quantum hosted backends.')

channel

channel: str = pydantic.Field(default='ibm_cloud', description='Channel to use for IBM cloud backends.')

instance_crn

instance_crn: str | None = pydantic.Field(default=None, description='IBM Cloud instance CRN.')

emulate

emulate: bool = pydantic.Field(default=False, description='If True, run on Classiq AerSimulator with IBM noise model.')

IonQConfig

Configuration specific to IonQ. Attributes: api_key (PydanticIonQApiKeyType | None): Key to access IonQ API. error_mitigation (bool): A configuration option to enable or disable error mitigation during execution. Defaults to False. emulate (bool): If True, run on IonQ simulator with noise model derived from the backend name. Defaults to False.

api_key

api_key: pydantic_backend.PydanticIonQApiKeyType | None = pydantic.Field(default=None, description='IonQ API key.')

error_mitigation

error_mitigation: bool = pydantic.Field(default=False, description='Enable error mitigation during execution.')

emulate

emulate: bool = pydantic.Field(default=False, description='If True, run on simulator with noise model derived from backend name.')

AzureConfig

Configuration specific to Azure. Attributes:
NameTypeDescription
locationstrAzure region. Defaults to "East US".
tenant_idstr | NoneAzure Tenant ID used to identify the directory in which the application is registered.
client_idstr | NoneAzure Client ID, also known as the application ID, which is used to authenticate the application.
client_secretstr | NoneAzure Client Secret associated with the application, used for authentication.
resource_idstr | NoneAzure Resource ID, including the subscription ID, resource group, and workspace, typically used for personal resources.
ionq_error_mitigationboolShould use error mitigation when running on IonQ via Azure. Defaults to False.

location

location: str = pydantic.Field(default='East US', description='Azure personal resource region')

tenant_id

tenant_id: str | None = pydantic.Field(default=None, description='Azure Tenant ID')

client_id

client_id: str | None = pydantic.Field(default=None, description='Azure Client ID')

client_secret

client_secret: str | None = pydantic.Field(default=None, description='Azure Client Secret')

resource_id

resource_id: str | None = pydantic.Field(default=None, description='Azure Resource ID (including Azure subscription ID, resource group and workspace), for personal resource')

ionq_error_mitigation

ionq_error_mitigation: bool = pydantic.Field(default=False, description='Error mitigation configuration upon running on IonQ via Azure.')

AQTConfig

Configuration specific to AQT (Alpine Quantum Technologies). Attributes:
NameTypeDescription
api_keystrThe API key required to access AQT’s quantum computing services.
workspacestrThe AQT workspace where the simulator/hardware is located.

api_key

api_key: str = pydantic.Field(description='AQT API key')

workspace

workspace: str = pydantic.Field(description='AQT workspace')

AliceBobConfig

Configuration specific to Alice&Bob. Attributes:
NameTypeDescription
distanceint | NoneThe number of times information is duplicated in the repetition code. - Tooltip: Phase-flip probability decreases exponentially with this parameter, bit-flip probability increases linearly. - Supported Values: 3 to 300, though practical values are usually lower than 30. - Default: None.
kappa_1float | NoneThe rate at which the cat qubit loses one photon, creating a bit-flip. - Tooltip: Lower values mean lower error rates. - Supported Values: 10 to 10^5. Current hardware is at ~10^3. - Default: None.
kappa_2float | NoneThe rate at which the cat qubit is stabilized using two-photon dissipation. - Tooltip: Higher values mean lower error rates. - Supported Values: 100 to 10^9. Current hardware is at ~10^5. - Default: None.
average_nb_photonsfloat | NoneThe average number of photons. - Tooltip: Bit-flip probability decreases exponentially with this parameter, phase-flip probability increases linearly. - Supported Values: 4 to 10^5, though practical values are usually lower than 30. - Default: None.

distance

distance: int | None = pydantic.Field(default=None, description='Repetition code distance')

kappa_1

kappa_1: float | None = pydantic.Field(default=None, description='One-photon dissipation rate (Hz)')

kappa_2

kappa_2: float | None = pydantic.Field(default=None, description='Two-photon dissipation rate (Hz)')

average_nb_photons

average_nb_photons: float | None = pydantic.Field(default=None, description='Average number of photons')

ProviderConfig

Provider-specific configuration data for execution, such as API keys and machine-specific parameters.

execute

execute(
quantum_program: QuantumProgram
) -> ExecutionJob
Execute a quantum program. The preferences for execution are set on the quantum program using the method set_execution_preferences. Parameters:
NameTypeDescriptionDefault
quantum_programQuantumProgramThe quantum program to execute. This is the result of the synthesize method.required
Returns:
  • Type: ExecutionJob
  • The result of the execution.

estimate_sample_cost

estimate_sample_cost(
quantum_program: QuantumProgram,
execution_options: ExecutionPreferences
) -> CostEstimateResult
Estimate the cost for sampling a quantum program. Parameters:
NameTypeDescriptionDefault
quantum_programQuantumProgramThe quantum program (output of synthesize).required
execution_optionsExecutionPreferencesExecution preferences (backend, shots, transpilation).required
Returns:

estimate_sample_batch_cost

estimate_sample_batch_cost(
quantum_program: QuantumProgram,
execution_backend: BackendPreferencesTypes,
transpilation_level: TranspilationOption = TranspilationOption.DECOMPOSE,
shots: int = 1000,
params: list[dict] | None = None
) -> CostEstimateResult
Estimate the cost for batch sampling a quantum program. Parameters:
NameTypeDescriptionDefault
quantum_programQuantumProgramThe quantum program (output of synthesize).required
execution_backendBackendPreferencesTypesBackend preferences for the target backend.required
transpilation_levelTranspilationOptionTranspilation option for the circuit.TranspilationOption.DECOMPOSE
shotsintNumber of shots per sample.1000
paramslist[dict] | NoneOptional list of parameter sets for batch. If None, single sample.None
Returns:

ExecutionSession

A session for executing a quantum program or OpenQASM source text. ExecutionSession allows to execute the quantum program with different parameters and operations without the need to re-synthesize the model. The session must be closed in order to ensure resources are properly cleaned up. It’s recommended to use ExecutionSession as a context manager for this purpose. Alternatively, you can directly use the close method. Methods:
NameDescription
closeClose the session and clean up its resources.
get_session_id
update_execution_preferencesUpdate the execution preferences for the session.
sampleSamples the quantum program with the given parameters, if any.
submit_sampleInitiates an execution job with the sample primitive.
batch_sampleSamples the quantum program multiple times with the given parameters for each iteration.
submit_batch_sampleInitiates an execution job with the batch_sample primitive.
estimateEstimates the expectation value of the given Hamiltonian using the quantum program.
submit_estimateInitiates an execution job with the estimate primitive.
batch_estimateEstimates the expectation value of the given Hamiltonian multiple times using the quantum program, with the given parameters for each iteration.
submit_batch_estimateInitiates an execution job with the batch_estimate primitive.
minimizeMinimizes the given cost function using the quantum program.
submit_minimizeInitiates an execution job with the minimize primitive.
estimate_costEstimates circuit cost using a classical cost function.
set_measured_state_filterWhen simulating on a statevector simulator, emulate the behavior of postprocessing by discarding amplitudes for which their states are “undesirable”.
Attributes:
NameTypeDescription
programQuantumProgramThe quantum program to execute, or a placeholder when the first constructor argument was OpenQASM source text.
execution_preferencesOptional[ExecutionPreferences]Execution preferences for the Quantum Program.

program

program = _openqasm_session_placeholder_program()

close

close(
self:
) -> None
Close the session and clean up its resources. Parameters:
NameTypeDescriptionDefault
selfrequired

update_execution_preferences

update_execution_preferences(
self: ,
execution_preferences: ExecutionPreferences | None
) -> None
Update the execution preferences for the session. Parameters:
NameTypeDescriptionDefault
selfrequired
execution_preferencesExecutionPreferences | NoneThe execution preferences to update.required
Returns:
  • Type: None

sample

sample(
self: ,
parameters: ExecutionParams | list[ExecutionParams] | None = None
) -> ExecutionDetails | list[ExecutionDetails]
Samples the quantum program with the given parameters, if any. Parameters:
NameTypeDescriptionDefault
selfrequired
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.None
Returns:
  • Type: ExecutionDetails \| list[ExecutionDetails]
  • The result of the sampling, or a list of results when
  • parameters is a list.

submit_sample

submit_sample(
self: ,
parameters: ExecutionParams | list[ExecutionParams] | None = None
) -> ExecutionJob
Initiates an execution job with the sample primitive. This is a non-blocking version of sample: it gets the same parameters and initiates the same execution job, but instead of waiting for the result, it returns the job object immediately. Parameters:
NameTypeDescriptionDefault
selfrequired
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.None
Returns:
  • Type: ExecutionJob
  • The execution job.

batch_sample

batch_sample(
self: ,
parameters: list[ExecutionParams]
) -> list[ExecutionDetails]
Samples the quantum program multiple times with the given parameters for each iteration. The number of samples is determined by the length of the parameters list. .. deprecated:: Pass a list of parameter dicts to :meth:sample instead. Parameters:
NameTypeDescriptionDefault
selfrequired
parameterslist[ExecutionParams]A list of the parameters for each iteration. Each item is a dictionary where each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.required
Returns:
  • Type: list[ExecutionDetails]
  • List[ExecutionDetails]: The results of all the sampling iterations.

submit_batch_sample

submit_batch_sample(
self: ,
parameters: list[ExecutionParams]
) -> ExecutionJob
Initiates an execution job with the batch_sample primitive. .. deprecated:: Pass a list of parameter dicts to :meth:submit_sample instead. Parameters:
NameTypeDescriptionDefault
selfrequired
parameterslist[ExecutionParams]A list of the parameters for each iteration. Each item is a dictionary where each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.required
Returns:
  • Type: ExecutionJob
  • The execution job.

estimate

estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None
) -> EstimationResult | list[EstimationResult]
Estimates the expectation value of the given Hamiltonian using the quantum program. Parameters:
NameTypeDescriptionDefault
selfrequired
hamiltonianHamiltonianThe Hamiltonian to estimate the expectation value of.required
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.None
Returns:
  • Type: EstimationResult \| list[EstimationResult]
  • The estimation result, or a list of results when parameters
  • is a list.

submit_estimate

submit_estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the estimate primitive. This is a non-blocking version of estimate: it gets the same parameters and initiates the same execution job, but instead of waiting for the result, it returns the job object immediately. Parameters:
NameTypeDescriptionDefault
selfrequired
hamiltonianHamiltonianThe Hamiltonian to estimate the expectation value of.required
parametersExecutionParams | list[ExecutionParams] | NoneA dictionary of parameter values, or a list of dictionaries for batch execution. Each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.None
_check_deprecationboolTrue
Returns:
  • Type: ExecutionJob
  • The execution job.

batch_estimate

batch_estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: list[ExecutionParams]
) -> list[EstimationResult]
Estimates the expectation value of the given Hamiltonian multiple times using the quantum program, with the given parameters for each iteration. The number of estimations is determined by the length of the parameters list. .. deprecated:: Pass a list of parameter dicts to :meth:estimate instead. Parameters:
NameTypeDescriptionDefault
selfrequired
hamiltonianHamiltonianThe Hamiltonian to estimate the expectation value of.required
parameterslist[ExecutionParams]A list of the parameters for each iteration. Each item is a dictionary where each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.required
Returns:
  • Type: list[EstimationResult]
  • List[EstimationResult]: The results of all the estimation iterations.

submit_batch_estimate

submit_batch_estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: list[ExecutionParams],
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the batch_estimate primitive. .. deprecated:: Pass a list of parameter dicts to :meth:submit_estimate instead. Parameters:
NameTypeDescriptionDefault
selfrequired
hamiltonianHamiltonianThe Hamiltonian to estimate the expectation value of.required
parameterslist[ExecutionParams]A list of the parameters for each iteration. Each item is a dictionary where each key should be the name of a parameter in the quantum program (parameters of the main function), and the value should be the value to set for that parameter.required
_check_deprecationboolTrue
Returns:
  • Type: ExecutionJob
  • The execution job.

minimize

minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None
) -> list[tuple[float, ExecutionParams]]
Minimizes the given cost function using the quantum program. Parameters:
NameTypeDescriptionDefault
selfrequired
cost_functionHamiltonian | QmodExpressionCreatorThe cost function to minimize. It can be one of the following: - A quantum cost function defined by a Hamiltonian. - A classical cost function represented as a callable that returns a Qmod expression. The callable should accept QVars as arguments and use names matching the Model outputs.required
initial_paramsExecutionParamsThe initial parameters for the minimization. Only Models with exactly one execution parameter are supported. This parameter must be of type CReal or CArray. The dictionary must contain a single key-value pair, where: - The key is the name of the parameter. - The value is either a float or a list of floats.required
max_iterationintThe maximum number of iterations for the minimization.required
quantilefloatThe quantile to use for cost estimation.1.0
tolerancefloat | NoneThe tolerance for the minimization.None
Returns:
  • Type: list[tuple[float, ExecutionParams]]
  • A list of tuples, each containing the estimated cost and the corresponding parameters for that iteration. cost is a float, and parameters is a dictionary matching the execution parameter format.

submit_minimize

submit_minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the minimize primitive. This is a non-blocking version of minimize: it gets the same parameters and initiates the same execution job, but instead of waiting for the result, it returns the job object immediately. Parameters:
NameTypeDescriptionDefault
selfrequired
cost_functionHamiltonian | QmodExpressionCreatorThe cost function to minimize. It can be one of the following: - A quantum cost function defined by a Hamiltonian. - A classical cost function represented as a callable that returns a Qmod expression. The callable should accept QVars as arguments and use names matching the Model outputs.required
initial_paramsExecutionParamsThe initial parameters for the minimization. Only Models with exactly one execution parameter are supported. This parameter must be of type CReal or CArray. The dictionary must contain a single key-value pair, where: - The key is the name of the parameter. - The value is either a float or a list of floats.required
max_iterationintThe maximum number of iterations for the minimization.required
quantilefloatThe quantile to use for cost estimation.1.0
tolerancefloat | NoneThe tolerance for the minimization.None
_check_deprecationboolTrue
Returns:
  • Type: ExecutionJob
  • The execution job.

estimate_cost

estimate_cost(
self: ,
cost_func: Callable[[ParsedState], float],
parameters: ExecutionParams | None = None,
quantile: float = 1.0
) -> float
Estimates circuit cost using a classical cost function. Parameters:
NameTypeDescriptionDefault
selfrequired
cost_funcCallable[[ParsedState], float]classical circuit sample cost functionrequired
parametersExecutionParams | Noneexecution parameters sent to ‘sample’None
quantilefloatdrop cost values outside the specified quantile1.0
Returns:
  • Type: float
  • cost estimation

set_measured_state_filter

set_measured_state_filter(
self: ,
output_name: str,
condition: Callable
) -> None
When simulating on a statevector simulator, emulate the behavior of postprocessing by discarding amplitudes for which their states are “undesirable”. Parameters:
NameTypeDescriptionDefault
selfrequired
output_namestrThe name of the register to filterrequired
conditionCallableFilter out values of the statevector for which this callable is Falserequired

ExecutionPreferences

Represents the execution settings for running a quantum program. Execution preferences for running a quantum program. For more details, refer to: ExecutionPreferences example: ExecutionPreferences.. Attributes:
NameTypeDescription
noise_propertiesOptional[NoiseProperties]Properties defining the noise in the quantum circuit. Defaults to None.
random_seedintThe random seed used for the execution. Defaults to a randomly generated seed.
backend_preferencesBackendPreferencesTypesPreferences for the backend used to execute the circuit. Defaults to the Classiq Simulator.
num_shotsOptional[pydantic.PositiveInt]The number of shots (executions) to be performed.
transpile_to_hardwareTranspilationOptionOption to transpile the circuit to the hardware’s basis gates before execution. Defaults to TranspilationOption.DECOMPOSE.
job_nameOptional[str]The name of the job, with a minimum length of 1 character.

noise_properties

noise_properties: NoiseProperties | None = pydantic.Field(default=None, description='Properties of the noise in the circuit')

random_seed

random_seed: int = pydantic.Field(default_factory=create_random_seed, description='The random seed used for the execution')

backend_preferences

backend_preferences: BackendPreferencesTypes = backend_preferences_field(backend_name=(ClassiqSimulatorBackendNames.SIMULATOR))

num_shots

num_shots: pydantic.PositiveInt | None = pydantic.Field(default=None)

transpile_to_hardware

transpile_to_hardware: TranspilationOption = pydantic.Field(default=(TranspilationOption.DECOMPOSE), description='Transpile the circuit to the hardware basis gates before execution', title='Transpilation Option')

job_name

job_name: str | None = pydantic.Field(min_length=1, description='The job name', default=None)

include_zero_amplitude_outputs

include_zero_amplitude_outputs: bool = pydantic.Field(default=False, description='In state vector simulation, whether to include zero-amplitude states in the result. When True, overrides amplitude_threshold.')

amplitude_threshold

amplitude_threshold: float = pydantic.Field(default=0.0, ge=0, description='In state vector simulation, only states with amplitude magnitude strictly greater than this threshold are included in the result. Defaults to 0 (filters exactly zero-amplitude states). Overridden by include_zero_amplitude_outputs=True.')

CostEstimateResult

Result of sample cost estimation.

cost

cost: float = pydantic.Field(description='Estimated cost')

currency

currency: str = pydantic.Field(default='USD', description='Currency code')

BackendPreferences

Preferences for the execution of the quantum program. Methods: Attributes:
NameTypeDescription
backend_service_providerstrProvider company or cloud for the requested backend.
backend_namestrName of the requested backend or target.

backend_service_provider

backend_service_provider: ProviderVendor = pydantic.Field(..., description='Provider company or cloud for the requested backend.')

backend_name

backend_name: str = pydantic.Field(..., description='Name of the requested backend or target.')

hw_provider

hw_provider: Provider Members:
NameDescription
ExecutionJobResultsResults from ExecutionJob.result(): list-like with job-level metadata.
SubmittedCircuitA quantum circuit that was submitted to the provider.
ExecutionJobFiltersFilter parameters for querying execution jobs.
get_execution_jobsQuery execution jobs.
get_execution_actionsQuery execution jobs with optional filters.

ExecutionJobResults

Results from ExecutionJob.result(): list-like with job-level metadata.

hardware_execution_duration_ms

hardware_execution_duration_ms: int | None = hardware_execution_duration_ms

SubmittedCircuit

A quantum circuit that was submitted to the provider. Wraps the circuit in QASM format. Use to_qasm() for the text representation or to_qiskit() for a Qiskit QuantumCircuit (requires qiskit). Methods:
NameDescription
to_qasmReturn the circuit as a QASM string (OpenQASM 2.0 or 3.0).
to_qiskitReturn the circuit as a Qiskit QuantumCircuit.

to_qasm

to_qasm(
self:
) -> str
Return the circuit as a QASM string (OpenQASM 2.0 or 3.0). Parameters:
NameTypeDescriptionDefault
selfrequired

to_qiskit

to_qiskit(
self:
) -> Any
Return the circuit as a Qiskit QuantumCircuit. Requires qiskit. Parameters:
NameTypeDescriptionDefault
selfrequired

ExecutionJobFilters

Filter parameters for querying execution jobs. All filters are combined using AND logic: only jobs matching all specified filters are returned. Range filters (with _min/_max suffixes) are inclusive. Datetime filters are compared against the job’s timestamps. Methods:
NameDescription
format_filtersConvert filter fields to API kwargs, excluding None values and converting datetimes.

id

id: str | None = None

session_id

session_id: str | None = None

status

status: JobStatus | None = None

name

name: str | None = None

provider

provider: str | None = None

backend

backend: str | None = None

program_id

program_id: str | None = None

total_cost_min

total_cost_min: float | None = None

total_cost_max

total_cost_max: float | None = None

start_time_min

start_time_min: datetime | None = None

start_time_max

start_time_max: datetime | None = None

end_time_min

end_time_min: datetime | None = None

end_time_max

end_time_max: datetime | None = None

format_filters

format_filters(
self:
) -> dict[str, Any]
Convert filter fields to API kwargs, excluding None values and converting datetimes. Parameters:
NameTypeDescriptionDefault
selfrequired

get_execution_jobs

get_execution_jobs(
offset: int = 0,
limit: int = 50
) -> list[ExecutionJob]
Query execution jobs. Parameters:
NameTypeDescriptionDefault
offsetintNumber of results to skip (default: 0)0
limitintMaximum number of results to return (default: 50)50
Returns:
  • Type: list[ExecutionJob]
  • List of ExecutionJob objects.

get_execution_actions

get_execution_actions(
offset: int = 0,
limit: int = 50,
filters: ExecutionJobFilters | None = None
) -> pd.DataFrame
Query execution jobs with optional filters. Parameters:
NameTypeDescriptionDefault
offsetintNumber of results to skip (default: 0)0
limitintMaximum number of results to return (default: 50)50
filtersExecutionJobFilters | NoneOptional ExecutionJobFilters object containing filter parameters.None
Returns:
  • Type: pd.DataFrame
  • pandas.DataFrame containing execution job information with columns:
  • id, name, start_time, end_time, provider, backend_name, status,
  • num_shots, program_id, error, cost.

assign_parameters

assign_parameters(
quantum_program: QuantumProgram,
parameters: ExecutionParams
) -> QuantumProgram
Assign parameters to a parametric quantum program. Parameters:
NameTypeDescriptionDefault
quantum_programQuantumProgramThe quantum program to be assigned. This is the result of the synthesize method.required
parametersExecutionParamsThe parameter assignments.required
Returns:
  • Type: QuantumProgram
  • The quantum program after assigning parameters.

transpile

transpile(
quantum_program: QuantumProgram,
preferences: Preferences | None = None
) -> QuantumProgram
Transpiles a quantum program. Parameters:
NameTypeDescriptionDefault
quantum_programQuantumProgramThe quantum program to transpile. This is the result of the synthesize method.required
preferencesPreferences | NoneThe transpilation preferences.None
Returns:
  • Type: QuantumProgram
  • The result of the transpilation (Optional).

get_budget

get_budget(
provider: ProviderVendor | None = None
) -> UserBudgets
Retrieve the user’s budget information for quantum computing resources. Parameters:
NameTypeDescriptionDefault
providerProviderVendor | None(Optional) The quantum backend provider to filter budgets by. If not provided, budgets for all providers will be returned.None
Returns:
  • Type: UserBudgets
  • An object containing the user’s budget information.

set_budget_limit

set_budget_limit(
provider: ProviderVendor,
limit: float
) -> UserBudgets
Set a budget limit for a specific quantum backend provider. Parameters:
NameTypeDescriptionDefault
providerProviderVendorThe quantum backend provider for which to set the budget limit.required
limitfloatThe budget limit to set. Must be greater than zero and not exceed the available budget.required
Returns:
  • Type: UserBudgets
  • An object containing the updated budget information.

clear_budget_limit

clear_budget_limit(
provider: ProviderVendor
) -> UserBudgets
Clear the budget limit for a specific quantum backend provider. Parameters:
NameTypeDescriptionDefault
providerProviderVendorThe quantum backend provider for which to clear the budget limit.required
Returns:
  • Type: UserBudgets
  • An object containing the updated budget information.