qrunch.quantum.internal

Unified Python module that contains all Rust-backed quantum classes. This consolidates all #[pyclass] definitions into a single .so file, which solves PyO3’s type identity issues across module boundaries.

Functions

create_hermitian_pauli_sum_from_fermionic_hamiltonian(...)

create_hermitian_pauli_sum_from_hardcore_bosonic_hamiltonian(...)

full_heuristic_gradient_metrics_biguint(...)

full_heuristic_gradient_metrics_for_custom_operators(...)

full_heuristic_gradient_metrics_u64(...)

heuristic_gradient_metrics_biguint(...)

heuristic_gradient_metrics_for_custom_operators(...)

heuristic_gradient_metrics_u64(observable, ...)

multiply_paulis(paulis)

selected_ci_metrics_biguint(observable, ...)

selected_ci_metrics_for_custom_operators(...)

selected_ci_metrics_u64(observable, ...)

Classes

HermitianPauliSum

class AntiHermitianPauliSum

Bases: object

classmethod __new__(*args, **kwargs)
constant()

Returns the constant as a complex number (re=0)

indices()
len()
number_of_qubits
prune(tolerance)
string_coefficient_pairs()
terms_as_int
class ExcitationGate

Bases: object

classmethod __new__(*args, **kwargs)
static new_double_excitation_gate(number_of_qubits, creation_index1, creation_index2, annihilation_index1, annihilation_index2, theta, float_type=Ellipsis, particle_conservation=Ellipsis, gate_zs=Ellipsis)
static new_single_excitation_gate(number_of_qubits, creation_index, annihilation_index, theta, float_type=Ellipsis, particle_conservation=Ellipsis, gate_zs=Ellipsis)
class ExcitationGateCircuit

Bases: object

classmethod __new__(*args, **kwargs)
add_gate(gate)
get_energy(shots=None, hamiltonian=None, eps=None)
get_parameters()
get_samples(shots, eps=None)
get_state_vector()
run_circuit()
set_gates(gates)
set_grouping(grouping)
set_hamiltonian(hamiltonian)
update_parameter_at_index(parameter, index)
update_parameters(parameters)
class FloatType

Bases: object

F32 = FloatType.F32
F64 = FloatType.F64
classmethod __new__(*args, **kwargs)
class GateZs

Bases: object

Exclude = GateZs.Exclude
Include = GateZs.Include
classmethod __new__(*args, **kwargs)
class Grouping

Bases: object

classmethod __new__(*args, **kwargs)
class Hamiltonian

Bases: object

classmethod __new__(*args, **kwargs)
static from_hermitian_pauli_sum(pauli_sum, float_type=Ellipsis)
class HermitianPauliSum

Bases: object

classmethod __new__(*args, **kwargs)
constant()

Expose the constant_value

filter_untouched_qubits(untouched_mask)

Filters the sum based on a bitmask of untouched qubits. Any term acting with X or Y on an untouched qubit is removed.

format_complex_str(suffix)
indices()

Returns a sorted list of unique qubit indices acted upon by this sum.

len()
number_of_qubits
prune(tolerance)
string_coefficient_pairs()
terms_as_int
class ParallelSetting

Bases: object

Parallel = ParallelSetting.Parallel
Serial = ParallelSetting.Serial
classmethod __new__(*args, **kwargs)
class ParticleConservation

Bases: object

Spin = ParticleConservation.Spin
Total = ParticleConservation.Total
classmethod __new__(*args, **kwargs)
class PauliString

Bases: object

classmethod __new__(*args, **kwargs)
as_ints()

Returns bitmasks (x, y, z) as Python ints (via BigUint).

commutative_sign(other)

Returns the sign when commuting with another PauliString (-1 or 1).

classmethod from_sorted_and_disjoint_sets(x_indices=None, y_indices=None, z_indices=None)
classmethod from_stabilizer(stabilizer)
classmethod from_z_indices(z_indices)
is_commuting(other)

Check if the Pauli string commutes with another.

is_diagonal()

Check if the Pauli string only contains diagonal (I and Z) operators.

is_identity()
max_index
min_index
multiply(other)

Multiply with another PauliString.

to_stabilizer(num_qubits=None)

Converts to Stabilizer.

x_indices
y_indices
z_indices
class RustCircuit

Bases: object

classmethod __new__(*args, **kwargs)
cx(control_qubit_index, target_qubit_index)

Append a gate corresponding to the CXGate in Kvantify Qrunch.

decay(random_threshold, index)

Append a gate corresponding to the Decay.

dephasing(random_threshold, index)

Append a gate corresponding to the Dephasing.

double_excitation(parameter, creation_qubit_index_1, creation_qubit_index_2, annihilation_qubit_index_1, annihilation_qubit_index_2)

Append a gate corresponding to the DoubleExcitationGate in Kvantify Qrunch.

num_qubits()
requires_complex_numbers()
rx(parameter, qubit_index)

Append a gate corresponding to the RXGate in Kvantify Qrunch.

ry(parameter, qubit_index)

Append a gate corresponding to the RYGate in Kvantify Qrunch.

rz(parameter, qubit_index)

Append a gate corresponding to the RZGate in Kvantify Qrunch.

single_excitation(parameter, creation_qubit_index, annihilation_qubit_index)

Append a gate corresponding to the SingleExcitationGate in Kvantify Qrunch.

x(qubit_index)

Append a gate corresponding to the XGate in Kvantify Qrunch.

class RustEstimatingResult

Bases: object

classmethod __new__(*args, **kwargs)
expectation_values
number_of_amplitudes_used
state_vector_error
class RustMemoryRestrictedSimulator

Bases: object

classmethod __new__(*args, **kwargs)
estimate(observables, circuit)
get_cached_effective_max_number_of_amplitudes()
sample(circuit, shots=None)
class RustSamplingResult

Bases: object

classmethod __new__(*args, **kwargs)
number_of_amplitudes_used
samples
state_vector_error
class Stabilizer

Bases: object

Stabilizer of Pauli strings, represented by z and x one-hot vectors. Each entry is 0 or 1.

classmethod __new__(*args, **kwargs)
multiply(other)

Multiplies with another stabilizer. Returns (Resulting Stabilizer, Complex Phase)

x
z
create_hermitian_pauli_sum_from_fermionic_hamiltonian(one_body_alpha_alpha, one_body_beta_beta, two_body_alpha_alpha, two_body_beta_beta, two_body_beta_alpha, number_of_qubits, tolerance=1e-10)
create_hermitian_pauli_sum_from_hardcore_bosonic_hamiltonian(one_body_matrix, two_body_matrix, number_of_qubits, tolerance=1e-10)
full_heuristic_gradient_metrics_biguint(observable, measurements_integer_dict, gate_pool_as_generator_indices)
full_heuristic_gradient_metrics_for_custom_operators(observable, measurements_integer_dict, gate_pool_as_generator_dict_list)
full_heuristic_gradient_metrics_u64(observable, measurements_integer_dict, gate_pool_as_generator_indices)
heuristic_gradient_metrics_biguint(observable, measurements_integer_dict, gate_pool_as_generator_indices)
heuristic_gradient_metrics_for_custom_operators(observable, measurements_integer_dict, gate_pool_as_generator_dict_list)
heuristic_gradient_metrics_u64(observable, measurements_integer_dict, gate_pool_as_generator_indices)
multiply_paulis(paulis)
selected_ci_metrics_biguint(observable, measurements_integer_dict, gate_pool_as_generator_indices, expectation_value)
selected_ci_metrics_for_custom_operators(observable, measurements_integer_dict, gate_pool_as_generator_dict_list, expectation_value)
selected_ci_metrics_u64(observable, measurements_integer_dict, gate_pool_as_generator_indices, expectation_value)