Skip to main content
Members:

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:

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.')

TranspilationOption

Transpilation optimization level for quantum circuits. Attributes:

NONE

DECOMPOSE

AUTO_OPTIMIZE

LIGHT

MEDIUM

INTENSIVE

CUSTOM

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: Attributes:

program

program = _openqasm_session_placeholder_program()

close

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

update_execution_preferences

update_execution_preferences(
self: ,
execution_preferences: ExecutionPreferences | None
) -> None
Update the execution preferences for the session. Parameters: Returns:
  • Type: None

sample

sample(
self: ,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> ExecutionDetails | list[ExecutionDetails]
Samples the quantum program with the given parameters, if any. Parameters: 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,
num_shots: int | None = None,
run_via_classiq: bool | 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: Returns:
  • Type: ExecutionJob
  • The execution job.

calculate_state_vector

calculate_state_vector(
self: ,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
filters: dict[str, Any] | None = None,
amplitude_threshold: float = 0.0
) -> DataFrame | list[DataFrame]
Calculate the state vector of the quantum program. The session must be configured with a Classiq simulator ("classiq/simulator", "classiq/nvidia_simulator") or "google/cuquantum". The corresponding statevector variant is selected automatically; callers do not need to know about the _statevector backend names. Parameters: Returns:
  • Type: DataFrame \| list[DataFrame]
  • A dataframe containing the state vector, or a list of dataframes when
  • parameters is a list.

submit_calculate_state_vector

submit_calculate_state_vector(
self: ,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
filters: dict[str, Any] | None = None,
amplitude_threshold: float = 0.0
) -> ExecutionJob
Initiates an execution job with the calculate_state_vector primitive. This is a non-blocking version of :meth:calculate_state_vector: 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: 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: 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: Returns:
  • Type: ExecutionJob
  • The execution job.

observe

observe(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> EstimationResult | list[EstimationResult]
Estimates the expectation value of the given Hamiltonian using the quantum program. Parameters: Returns:
  • Type: EstimationResult \| list[EstimationResult]
  • The estimation result, or a list of results when parameters
  • is a list.

submit_observe

submit_observe(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the observe primitive. This is a non-blocking version of :meth:observe: 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: Returns:
  • Type: ExecutionJob
  • The execution job.

estimate

estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> EstimationResult | list[EstimationResult]
Estimates the expectation value of the given Hamiltonian using the quantum program. .. deprecated:: estimate is deprecated and will no longer be supported starting on 2026-06-22. Use :meth:observe instead. Parameters:

submit_estimate

submit_estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the estimate primitive. .. deprecated:: submit_estimate is deprecated and will no longer be supported starting on 2026-06-22. Use :meth:submit_observe instead. Parameters:

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:observe instead. Parameters: 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_observe instead. Parameters: Returns:
  • Type: ExecutionJob
  • The execution job.

variational_minimize

variational_minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None,
hosted: bool = False,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> list[tuple[float, ExecutionParams]]
Variationally minimizes the given cost function using the quantum program. Parameters: 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.

minimize

minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> list[tuple[float, ExecutionParams]]
.. deprecated:: Use :meth:variational_minimize instead. This name is kept for backward compatibility and will be removed in a future release. Parameters:

submit_variational_minimize

submit_variational_minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None,
hosted: bool = False,
num_shots: int | None = None,
run_via_classiq: bool | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the variational minimization primitive. Non-blocking counterpart of :meth:variational_minimize: same parameters and job, but returns the :class:~classiq.execution.jobs.ExecutionJob immediately. Parameters: Returns:
  • Type: ExecutionJob
  • The execution job. When hosted=True on an IonQ backend, the backend
  • worker submits and polls IonQ Hosted Hybrid while this job tracks
  • progress through the standard Classiq execution API.

submit_minimize

submit_minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
.. deprecated:: Use :meth:submit_variational_minimize instead. This name is kept for backward compatibility and will be removed in a future release. Parameters:

estimate_cost

estimate_cost(
self: ,
cost_func: Callable[[ParsedState], float],
parameters: ExecutionParams | None = None,
quantile: float = 1.0,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> float
Estimates circuit cost using a classical cost function. Parameters: 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:

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: 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: 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: Returns:
  • Type: float \| list[float]
  • The expectation value as a float, or a list of floats when
  • parameters is a list.

variational_minimize

variational_minimize(
qprog: QuantumProgram,
cost_function: SparsePauliOp | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
backend: str | None = None,
quantile: float = 1.0,
tolerance: float | None = None,
hosted: bool = False,
config: dict[str, Any] | ProviderConfig | None = None,
random_seed: int | None = None,
transpilation_option: TranspilationOption = TranspilationOption.DECOMPOSE,
run_via_classiq: bool = False
) -> list[tuple[float, ExecutionParams]]
Minimize the given cost function over the parameter values of the provided quantum program. Parameters: 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.

BraketConfig

Configuration specific to Amazon Braket. Attributes:

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:

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 a Classiq-hosted simulator with an 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:

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.')

emulate

emulate: bool = pydantic.Field(default=False, description='If True, enable IonQ hardware noise simulation on Azure for IonQ QPU targets (ionq.qpu.*). Ignored for ionq.simulator and non-IonQ Azure targets.')

AQTConfig

Configuration specific to AQT (Alpine Quantum Technologies). Attributes:

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:

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: Returns:
  • Type: ExecutionJob
  • The result of the execution.

estimate_sample_cost

estimate_sample_cost(
quantum_program: QuantumProgram,
execution_options: ExecutionPreferences | str,
config: dict[str, Any] | None = None,
num_shots: int | None = None,
transpilation_option: TranspilationOption = TranspilationOption.DECOMPOSE
) -> CostEstimateResult
Estimate the cost for sampling a quantum program. execution_options may be a full ExecutionPreferences object, or the same backend specifier string used by sample() (for example "braket/SV1" or "azure/ionq.simulator"). When it is a string, optional config, num_shots, and transpilation_option are applied like the sample() helpers. String backends are always resolved with run via Classiq when the provider supports it (no user cloud credentials required for cost estimation). Parameters: Returns:

estimate_sample_batch_cost

estimate_sample_batch_cost(
quantum_program: QuantumProgram,
execution_backend: BackendPreferencesTypes | str,
transpilation_level: TranspilationOption = TranspilationOption.DECOMPOSE,
shots: int = 1000,
params: list[dict] | None = None,
config: dict[str, Any] | None = None
) -> CostEstimateResult
Estimate the cost for batch sampling a quantum program. execution_backend may be backend preferences or a sample()-style specifier string. With a string backend, pass non-credential options in config; resolution uses run via Classiq whenever the provider supports it (same rule as estimate_sample_cost). Parameters: 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: Attributes:

program

program = _openqasm_session_placeholder_program()

close

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

update_execution_preferences

update_execution_preferences(
self: ,
execution_preferences: ExecutionPreferences | None
) -> None
Update the execution preferences for the session. Parameters: Returns:
  • Type: None

sample

sample(
self: ,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> ExecutionDetails | list[ExecutionDetails]
Samples the quantum program with the given parameters, if any. Parameters: 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,
num_shots: int | None = None,
run_via_classiq: bool | 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: Returns:
  • Type: ExecutionJob
  • The execution job.

calculate_state_vector

calculate_state_vector(
self: ,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
filters: dict[str, Any] | None = None,
amplitude_threshold: float = 0.0
) -> DataFrame | list[DataFrame]
Calculate the state vector of the quantum program. The session must be configured with a Classiq simulator ("classiq/simulator", "classiq/nvidia_simulator") or "google/cuquantum". The corresponding statevector variant is selected automatically; callers do not need to know about the _statevector backend names. Parameters: Returns:
  • Type: DataFrame \| list[DataFrame]
  • A dataframe containing the state vector, or a list of dataframes when
  • parameters is a list.

submit_calculate_state_vector

submit_calculate_state_vector(
self: ,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
filters: dict[str, Any] | None = None,
amplitude_threshold: float = 0.0
) -> ExecutionJob
Initiates an execution job with the calculate_state_vector primitive. This is a non-blocking version of :meth:calculate_state_vector: 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: 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: 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: Returns:
  • Type: ExecutionJob
  • The execution job.

observe

observe(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> EstimationResult | list[EstimationResult]
Estimates the expectation value of the given Hamiltonian using the quantum program. Parameters: Returns:
  • Type: EstimationResult \| list[EstimationResult]
  • The estimation result, or a list of results when parameters
  • is a list.

submit_observe

submit_observe(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the observe primitive. This is a non-blocking version of :meth:observe: 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: Returns:
  • Type: ExecutionJob
  • The execution job.

estimate

estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> EstimationResult | list[EstimationResult]
Estimates the expectation value of the given Hamiltonian using the quantum program. .. deprecated:: estimate is deprecated and will no longer be supported starting on 2026-06-22. Use :meth:observe instead. Parameters:

submit_estimate

submit_estimate(
self: ,
hamiltonian: Hamiltonian,
parameters: ExecutionParams | list[ExecutionParams] | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the estimate primitive. .. deprecated:: submit_estimate is deprecated and will no longer be supported starting on 2026-06-22. Use :meth:submit_observe instead. Parameters:

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:observe instead. Parameters: 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_observe instead. Parameters: Returns:
  • Type: ExecutionJob
  • The execution job.

variational_minimize

variational_minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None,
hosted: bool = False,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> list[tuple[float, ExecutionParams]]
Variationally minimizes the given cost function using the quantum program. Parameters: 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.

minimize

minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> list[tuple[float, ExecutionParams]]
.. deprecated:: Use :meth:variational_minimize instead. This name is kept for backward compatibility and will be removed in a future release. Parameters:

submit_variational_minimize

submit_variational_minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None,
hosted: bool = False,
num_shots: int | None = None,
run_via_classiq: bool | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
Initiates an execution job with the variational minimization primitive. Non-blocking counterpart of :meth:variational_minimize: same parameters and job, but returns the :class:~classiq.execution.jobs.ExecutionJob immediately. Parameters: Returns:
  • Type: ExecutionJob
  • The execution job. When hosted=True on an IonQ backend, the backend
  • worker submits and polls IonQ Hosted Hybrid while this job tracks
  • progress through the standard Classiq execution API.

submit_minimize

submit_minimize(
self: ,
cost_function: Hamiltonian | QmodExpressionCreator,
initial_params: ExecutionParams,
max_iteration: int,
quantile: float = 1.0,
tolerance: float | None = None,
num_shots: int | None = None,
run_via_classiq: bool | None = None,
_check_deprecation: bool = True
) -> ExecutionJob
.. deprecated:: Use :meth:submit_variational_minimize instead. This name is kept for backward compatibility and will be removed in a future release. Parameters:

estimate_cost

estimate_cost(
self: ,
cost_func: Callable[[ParsedState], float],
parameters: ExecutionParams | None = None,
quantile: float = 1.0,
num_shots: int | None = None,
run_via_classiq: bool | None = None
) -> float
Estimates circuit cost using a classical cost function. Parameters: 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:

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:

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:

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:

program_id_scope

program_id_scope(
program_id: str | None
) -> Generator[None, None, None]
Within the scope, HTTP spans emitted by Client.request stamp classiq.program.id. None = no-op, leaves any outer scope intact. Parameters:

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:

to_qasm

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

to_qiskit

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

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:

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:

get_execution_jobs

get_execution_jobs(
offset: int = 0,
limit: int = 50
) -> list[ExecutionJob]
Query execution jobs. Parameters: 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: 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, total_cost, currency_code, runtime_ms
  • (provider-reported hardware execution duration in milliseconds when available).

assign_parameters

assign_parameters(
quantum_program: QuantumProgram,
parameters: ExecutionParams
) -> QuantumProgram
Assign parameters to a parametric quantum program. Parameters: Returns:
  • Type: QuantumProgram
  • The quantum program after assigning parameters.

transpile

transpile(
quantum_program: QuantumProgram,
preferences: Preferences | None = None
) -> QuantumProgram
Transpiles a quantum program. Parameters: 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: 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: 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: Returns:
  • Type: UserBudgets
  • An object containing the updated budget information.