qlinks.operators package#
Submodules#
qlinks.operators.base module#
- class qlinks.operators.base.OperatorAction(coefficient, config)[source]#
Bases:
objectOne operator action on one computational configuration.
- coefficient:
Matrix element contributed by this action.
- config:
Resulting configuration after the operator acts. For diagonal operators, this is usually a copy of the input config.
- coefficient: complex#
- class qlinks.operators.base.LocalOperator(*args, **kwargs)[source]#
Bases:
ProtocolInterface for all configuration-space operators.
- layout: VariableLayout#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(*args, **kwargs)#
- class qlinks.operators.base.DiagonalLocalOperator(*args, **kwargs)[source]#
Bases:
LocalOperator,ProtocolConfiguration-space diagonal operator.
Returning
Nonemeans the operator gives no action on this config. Returning a complex number means the operator contributes that diagonal matrix element.
- class qlinks.operators.base.BaseLocalOperator[source]#
Bases:
objectConvenience base class for configuration-space local operators.
Design rule#
Concrete operators should precompute all geometry/layout-dependent data in __post_init__(), so apply() only performs cheap indexed array operations.
- layout: VariableLayout#
- name: str#
- class qlinks.operators.base.OperatorSum(terms, name='operator_sum')[source]#
Bases:
objectFormal sum of local operators.
This is still only an action-level object. Sparse matrix construction is handled by the next layer.
- Parameters:
terms (tuple[LocalOperator, ...])
name (str)
- terms: tuple[LocalOperator, ...]#
- name: str#
- classmethod from_terms(terms, name='operator_sum')[source]#
- Parameters:
terms (Sequence[LocalOperator])
name (str)
- Return type:
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(terms, name='operator_sum')#
- Parameters:
terms (tuple[LocalOperator, ...])
name (str)
- Return type:
None
- qlinks.operators.base.combine_duplicate_actions(actions, *, atol=0.0)[source]#
Combine actions that produce the same output configuration.
This is useful before sparse assembly when two terms lead to the same row/column matrix element.
- Parameters:
actions (Sequence[OperatorAction])
atol (float)
- Return type:
tuple[OperatorAction, …]
qlinks.operators.diagonal module#
- class qlinks.operators.diagonal.ConstantDiagonalOperator(layout, coefficient, name='constant_diagonal')[source]#
Bases:
BaseLocalOperatorDiagonal operator c * I.
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, coefficient, name='constant_diagonal')#
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.diagonal.LocalValueDiagonalOperator(layout, variable_index, coefficient=1.0, name='local_value_diagonal')[source]#
Bases:
BaseLocalOperatorDiagonal operator proportional to one variable value.
coefficient * config[variable_index]
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='local_value_diagonal')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.diagonal.LocalSquareValueDiagonalOperator(layout, variable_index, coefficient=1.0, name='local_square_value_diagonal')[source]#
Bases:
BaseLocalOperatorDiagonal operator proportional to one squared variable value.
coefficient * config[variable_index] ** 2
For spin-1 variables m in {-1, 0, +1}, this represents coefficient * (S^z)^2 in the S^z product basis.
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='local_square_value_diagonal')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.diagonal.LocalSumDiagonalOperator(layout, variable_indices, weights=None, coefficient=1.0, name='local_sum_diagonal')[source]#
Bases:
BaseLocalOperatorDiagonal operator
coefficient * sum_i weights[i] * config[variable_indices[i]]
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- class qlinks.operators.diagonal.PatternDiagonalOperator(layout, variable_indices, pattern, coefficient=1.0, name='pattern_diagonal')[source]#
Bases:
BaseLocalOperatorDiagonal projector-like operator.
If selected variables match pattern, return coefficient * config. Otherwise return no action.
Example
A flippability counter for a plaquette can be represented as a sum of pattern diagonal operators.
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
qlinks.operators.plaquette module#
- class qlinks.operators.plaquette.PlaquettePatternTransition(initial, final, coefficient=1.0)[source]#
Bases:
objectOne allowed plaquette pattern transition.
- initial:
Values on plaquette links before the operator acts.
- final:
Values on plaquette links after the operator acts.
- coefficient:
Matrix element for this transition.
- Parameters:
- coefficient: complex#
- class qlinks.operators.plaquette.PlaquettePatternOperator(layout, lattice, plaquette_id, transitions, name='plaquette_pattern')[source]#
Bases:
BaseLocalOperatorGeneral plaquette transition operator.
It reads the plaquette’s link variables in the lattice plaquette order. If the current values match one of the allowed transition patterns, it returns the corresponding new configuration.
This is suitable for QDM plaquette flips, constrained ring exchanges, and other local loop moves.
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
transitions (tuple[PlaquettePatternTransition, ...])
name (str)
- layout: VariableLayout#
- lattice: LatticeGraph#
- plaquette_id: int#
- transitions: tuple[PlaquettePatternTransition, ...]#
- name: str#
- classmethod qdm_flip(layout, lattice, plaquette_id, coefficient=1.0, reverse_coefficient=None)[source]#
Standard binary dimer plaquette flip:
1010 <-> 0101
The order is the plaquette link order supplied by the lattice.
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
reverse_coefficient (complex | None)
- Return type:
- classmethod alternating_binary_flip(layout, lattice, plaquette_id, coefficient=1.0, reverse_coefficient=None)[source]#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
reverse_coefficient (complex | None)
- Return type:
- classmethod alternating_flux_flip(layout, lattice, plaquette_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
- Return type:
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, lattice, plaquette_id, transitions, name='plaquette_pattern')#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
transitions (tuple[PlaquettePatternTransition, ...])
name (str)
- Return type:
None
- qlinks.operators.plaquette.qdm_flippability_projectors(layout, lattice, plaquette_id, coefficient=1.0)[source]#
Return diagonal projectors onto the two flippable QDM plaquette patterns:
1010 and 0101
The potential term V * P_p^2 in a QDM-like model can be represented using these diagonal projectors.
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
- Return type:
- qlinks.operators.plaquette.alternating_binary_flippability_projectors(layout, lattice, plaquette_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
- Return type:
- qlinks.operators.plaquette.alternating_flux_flippability_projectors(layout, lattice, plaquette_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
- Return type:
qlinks.operators.pxp module#
- class qlinks.operators.pxp.PXPSpinFlipOperator(layout, lattice, site_id, coefficient=1.0, occupied_value=1, name='pxp_spin_flip')[source]#
Bases:
BaseLocalOperatorConstrained spin flip for PXP/Rydberg-blockade models.
The spin at site_id is flipped only if all neighboring sites are not occupied.
- With binary variables:
0 <-> 1
- and usually:
occupied_value = 1
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
site_id (int)
coefficient (complex)
occupied_value (int)
name (str)
- layout: VariableLayout#
- lattice: LatticeGraph#
- site_id: int#
- coefficient: complex#
- occupied_value: int#
- name: str#
- property site_variable: int#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, lattice, site_id, coefficient=1.0, occupied_value=1, name='pxp_spin_flip')#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
site_id (int)
coefficient (complex)
occupied_value (int)
name (str)
- Return type:
None
qlinks.operators.transitions module#
- class qlinks.operators.transitions.SetVariablesOperator(layout, variable_indices, initial_values, final_values, coefficient=1.0, name='set_variables')[source]#
Bases:
BaseLocalOperatorGeneral local transition operator.
If
config[variable_indices] == initial_values
then produce a new config with
new_config[variable_indices] = final_values
Otherwise return no action.
- Parameters:
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_indices, initial_values, final_values, coefficient=1.0, name='set_variables')#
- class qlinks.operators.transitions.BinaryFlipOperator(layout, variable_index, coefficient=1.0, name='binary_flip')[source]#
Bases:
BaseLocalOperatorFlip one binary variable 0 <-> 1.
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- classmethod on_site(layout, site_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
site_id (int)
coefficient (complex)
- Return type:
- classmethod on_link(layout, link_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
link_id (int)
coefficient (complex)
- Return type:
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='binary_flip')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.transitions.NegationFlipOperator(layout, variable_index, coefficient=1.0, name='negation_flip')[source]#
Bases:
BaseLocalOperatorFlip one sign variable v -> -v.
Useful for internal integer representation of spin-1/2 flux variables with values {-1, +1}.
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- classmethod on_link(layout, link_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
link_id (int)
coefficient (complex)
- Return type:
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='negation_flip')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.transitions.MultiNegationFlipOperator(layout, variable_indices, coefficient=1.0, name='multi_negation_flip')[source]#
Bases:
BaseLocalOperatorSimultaneously apply v -> -v to several variables.
Useful as a simple QLM-like plaquette flip when the link variables are represented as {-1, +1}.
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_indices, coefficient=1.0, name='multi_negation_flip')#
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- Return type:
None
qlinks.operators.updates module#
- class qlinks.operators.updates.LocalUpdateAction(coefficient, variable_indices, new_values)[source]#
Bases:
objectCompact operator action.
Instead of storing the full output configuration, store only
variable_indices new_values
The optimized sparse builder will reuse a scratch array:
scratch[:] = config scratch[variable_indices] = new_values
- Parameters:
- coefficient: complex#
- class qlinks.operators.updates.LocalUpdateOperator(*args, **kwargs)[source]#
Bases:
ProtocolOptimized local-operator protocol.
This protocol does not return a full new configuration. It returns only local updates.
- layout: VariableLayout#
- name: str#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(*args, **kwargs)#
- class qlinks.operators.updates.SingleLocalUpdateOperator(*args, **kwargs)[source]#
Bases:
LocalUpdateOperator,ProtocolLocal update operator with at most one action per input config.
- class qlinks.operators.updates.BaseLocalUpdateOperator[source]#
Bases:
object- layout: VariableLayout#
- name: str#
- class qlinks.operators.updates.UpdateOperatorSum(terms, name='update_operator_sum')[source]#
Bases:
objectSum of update-level local operators.
- Parameters:
terms (tuple[LocalUpdateOperator, ...])
name (str)
- terms: tuple[LocalUpdateOperator, ...]#
- name: str#
- classmethod from_terms(terms, name='update_operator_sum')[source]#
- Parameters:
terms (Sequence[LocalUpdateOperator])
name (str)
- Return type:
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(terms, name='update_operator_sum')#
- Parameters:
terms (tuple[LocalUpdateOperator, ...])
name (str)
- Return type:
None
- class qlinks.operators.updates.UpdateSetVariablesOperator(layout, variable_indices, initial_values, final_values, coefficient=1.0, name='update_set_variables')[source]#
Bases:
BaseLocalUpdateOperatorOptimized version of SetVariablesOperator.
If config[variable_indices] == initial_values, return a local update setting those variables to final_values.
- Parameters:
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, variable_indices, initial_values, final_values, coefficient=1.0, name='update_set_variables')#
- class qlinks.operators.updates.UpdateBinaryFlipOperator(layout, variable_index, coefficient=1.0, name='update_binary_flip')[source]#
Bases:
BaseLocalUpdateOperatorOptimized binary flip 0 <-> 1.
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- classmethod on_site(layout, site_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
site_id (int)
coefficient (complex)
- Return type:
- classmethod on_link(layout, link_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
link_id (int)
coefficient (complex)
- Return type:
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='update_binary_flip')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.updates.UpdateNegationFlipOperator(layout, variable_index, coefficient=1.0, name='update_negation_flip')[source]#
Bases:
BaseLocalUpdateOperatorOptimized sign flip v -> -v.
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- classmethod on_link(layout, link_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
link_id (int)
coefficient (complex)
- Return type:
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='update_negation_flip')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.updates.UpdateMultiNegationFlipOperator(layout, variable_indices, coefficient=1.0, name='update_multi_negation_flip')[source]#
Bases:
BaseLocalUpdateOperatorOptimized simultaneous sign flip on several variables.
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, variable_indices, coefficient=1.0, name='update_multi_negation_flip')#
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.updates.UpdatePlaquettePatternTransition(initial: 'npt.NDArray[np.int64]', final: 'npt.NDArray[np.int64]', coefficient: 'complex' = 1.0)[source]#
Bases:
object- Parameters:
- coefficient: complex#
- class qlinks.operators.updates.UpdatePlaquettePatternOperator(layout, lattice, plaquette_id, transitions, name='update_plaquette_pattern')[source]#
Bases:
BaseLocalUpdateOperatorOptimized plaquette-pattern transition operator.
This is the update-action version of PlaquettePatternOperator.
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
transitions (tuple[UpdatePlaquettePatternTransition, ...])
name (str)
- layout: VariableLayout#
- lattice: LatticeGraph#
- plaquette_id: int#
- transitions: tuple[UpdatePlaquettePatternTransition, ...]#
- name: str#
- classmethod qdm_flip(layout, lattice, plaquette_id, coefficient=1.0, reverse_coefficient=None)[source]#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
reverse_coefficient (complex | None)
- Return type:
- property supports_single_update: bool#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, lattice, plaquette_id, transitions, name='update_plaquette_pattern')#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
transitions (tuple[UpdatePlaquettePatternTransition, ...])
name (str)
- Return type:
None
- class qlinks.operators.updates.UpdatePXPSpinFlipOperator(layout, lattice, site_id, coefficient=1.0, occupied_value=1, name='update_pxp_spin_flip')[source]#
Bases:
BaseLocalUpdateOperatorOptimized PXP constrained spin flip.
Flip site_id only if all neighbors are not occupied.
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
site_id (int)
coefficient (complex)
occupied_value (int)
name (str)
- layout: VariableLayout#
- lattice: LatticeGraph#
- site_id: int#
- coefficient: complex#
- occupied_value: int#
- name: str#
- property site_variable: int#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, lattice, site_id, coefficient=1.0, occupied_value=1, name='update_pxp_spin_flip')#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
site_id (int)
coefficient (complex)
occupied_value (int)
name (str)
- Return type:
None
Module contents#
- class qlinks.operators.BaseLocalOperator[source]#
Bases:
objectConvenience base class for configuration-space local operators.
Design rule#
Concrete operators should precompute all geometry/layout-dependent data in __post_init__(), so apply() only performs cheap indexed array operations.
- layout: VariableLayout#
- name: str#
- class qlinks.operators.BasisOperator(basis, operators, combine_duplicates=True, drop_zero_atol=0.0, dtype=<class 'numpy.complex128'>)[source]#
Bases:
objectMatrix-like wrapper around configuration-space LocalOperator objects.
This object does not explicitly build the sparse matrix. Instead, it applies the local operators directly by looping over the basis states.
Examples
>>> O = BasisOperator(basis, operators) >>> y = O @ v >>> value = v.T @ O @ v >>> value_complex = v.conj() @ O @ v >>> y_t = O.T @ v >>> y_h = O.H @ v
- Parameters:
basis (Basis)
operators (tuple[LocalOperator, ...])
combine_duplicates (bool)
drop_zero_atol (float)
dtype (DTypeLike)
- operators: tuple[LocalOperator, ...]#
- combine_duplicates: bool = True#
- drop_zero_atol: float = 0.0#
- dtype#
alias of
complex128
- classmethod from_operator(basis, operator, **kwargs)[source]#
- Parameters:
basis (Basis)
operator (LocalOperator)
- Return type:
- property shape: tuple[int, int]#
- property T: TransposedBasisOperator#
- property H: TransposedBasisOperator#
Hermitian adjoint view.
- expectation(vector, *, conjugate=True)[source]#
Compute <v|O|v> by default.
If conjugate=False, compute v.T @ O @ v.
- Parameters:
vector (ArrayLike)
conjugate (bool)
- Return type:
complex
- __init__(basis, operators, combine_duplicates=True, drop_zero_atol=0.0, dtype=<class 'numpy.complex128'>)#
- Parameters:
basis (Basis)
operators (tuple[LocalOperator, ...])
combine_duplicates (bool)
drop_zero_atol (float)
dtype (DTypeLike)
- Return type:
None
- class qlinks.operators.BinaryFlipOperator(layout, variable_index, coefficient=1.0, name='binary_flip')[source]#
Bases:
BaseLocalOperatorFlip one binary variable 0 <-> 1.
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- classmethod on_site(layout, site_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
site_id (int)
coefficient (complex)
- Return type:
- classmethod on_link(layout, link_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
link_id (int)
coefficient (complex)
- Return type:
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='binary_flip')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.ConstantDiagonalOperator(layout, coefficient, name='constant_diagonal')[source]#
Bases:
BaseLocalOperatorDiagonal operator c * I.
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, coefficient, name='constant_diagonal')#
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.DiagonalLocalOperator(*args, **kwargs)[source]#
Bases:
LocalOperator,ProtocolConfiguration-space diagonal operator.
Returning
Nonemeans the operator gives no action on this config. Returning a complex number means the operator contributes that diagonal matrix element.
- class qlinks.operators.LocalOperator(*args, **kwargs)[source]#
Bases:
ProtocolInterface for all configuration-space operators.
- layout: VariableLayout#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(*args, **kwargs)#
- class qlinks.operators.LocalSquareValueDiagonalOperator(layout, variable_index, coefficient=1.0, name='local_square_value_diagonal')[source]#
Bases:
BaseLocalOperatorDiagonal operator proportional to one squared variable value.
coefficient * config[variable_index] ** 2
For spin-1 variables m in {-1, 0, +1}, this represents coefficient * (S^z)^2 in the S^z product basis.
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='local_square_value_diagonal')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.LocalSumDiagonalOperator(layout, variable_indices, weights=None, coefficient=1.0, name='local_sum_diagonal')[source]#
Bases:
BaseLocalOperatorDiagonal operator
coefficient * sum_i weights[i] * config[variable_indices[i]]
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- class qlinks.operators.LocalValueDiagonalOperator(layout, variable_index, coefficient=1.0, name='local_value_diagonal')[source]#
Bases:
BaseLocalOperatorDiagonal operator proportional to one variable value.
coefficient * config[variable_index]
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='local_value_diagonal')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.MultiNegationFlipOperator(layout, variable_indices, coefficient=1.0, name='multi_negation_flip')[source]#
Bases:
BaseLocalOperatorSimultaneously apply v -> -v to several variables.
Useful as a simple QLM-like plaquette flip when the link variables are represented as {-1, +1}.
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_indices, coefficient=1.0, name='multi_negation_flip')#
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.NegationFlipOperator(layout, variable_index, coefficient=1.0, name='negation_flip')[source]#
Bases:
BaseLocalOperatorFlip one sign variable v -> -v.
Useful for internal integer representation of spin-1/2 flux variables with values {-1, +1}.
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- classmethod on_link(layout, link_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
link_id (int)
coefficient (complex)
- Return type:
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='negation_flip')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.OperatorAction(coefficient, config)[source]#
Bases:
objectOne operator action on one computational configuration.
- coefficient:
Matrix element contributed by this action.
- config:
Resulting configuration after the operator acts. For diagonal operators, this is usually a copy of the input config.
- coefficient: complex#
- class qlinks.operators.OperatorSum(terms, name='operator_sum')[source]#
Bases:
objectFormal sum of local operators.
This is still only an action-level object. Sparse matrix construction is handled by the next layer.
- Parameters:
terms (tuple[LocalOperator, ...])
name (str)
- terms: tuple[LocalOperator, ...]#
- name: str#
- classmethod from_terms(terms, name='operator_sum')[source]#
- Parameters:
terms (Sequence[LocalOperator])
name (str)
- Return type:
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(terms, name='operator_sum')#
- Parameters:
terms (tuple[LocalOperator, ...])
name (str)
- Return type:
None
- class qlinks.operators.PXPSpinFlipOperator(layout, lattice, site_id, coefficient=1.0, occupied_value=1, name='pxp_spin_flip')[source]#
Bases:
BaseLocalOperatorConstrained spin flip for PXP/Rydberg-blockade models.
The spin at site_id is flipped only if all neighboring sites are not occupied.
- With binary variables:
0 <-> 1
- and usually:
occupied_value = 1
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
site_id (int)
coefficient (complex)
occupied_value (int)
name (str)
- layout: VariableLayout#
- lattice: LatticeGraph#
- site_id: int#
- coefficient: complex#
- occupied_value: int#
- name: str#
- property site_variable: int#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, lattice, site_id, coefficient=1.0, occupied_value=1, name='pxp_spin_flip')#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
site_id (int)
coefficient (complex)
occupied_value (int)
name (str)
- Return type:
None
- class qlinks.operators.PatternDiagonalOperator(layout, variable_indices, pattern, coefficient=1.0, name='pattern_diagonal')[source]#
Bases:
BaseLocalOperatorDiagonal projector-like operator.
If selected variables match pattern, return coefficient * config. Otherwise return no action.
Example
A flippability counter for a plaquette can be represented as a sum of pattern diagonal operators.
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- class qlinks.operators.PlaquettePatternOperator(layout, lattice, plaquette_id, transitions, name='plaquette_pattern')[source]#
Bases:
BaseLocalOperatorGeneral plaquette transition operator.
It reads the plaquette’s link variables in the lattice plaquette order. If the current values match one of the allowed transition patterns, it returns the corresponding new configuration.
This is suitable for QDM plaquette flips, constrained ring exchanges, and other local loop moves.
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
transitions (tuple[PlaquettePatternTransition, ...])
name (str)
- layout: VariableLayout#
- lattice: LatticeGraph#
- plaquette_id: int#
- transitions: tuple[PlaquettePatternTransition, ...]#
- name: str#
- classmethod qdm_flip(layout, lattice, plaquette_id, coefficient=1.0, reverse_coefficient=None)[source]#
Standard binary dimer plaquette flip:
1010 <-> 0101
The order is the plaquette link order supplied by the lattice.
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
reverse_coefficient (complex | None)
- Return type:
- classmethod alternating_binary_flip(layout, lattice, plaquette_id, coefficient=1.0, reverse_coefficient=None)[source]#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
reverse_coefficient (complex | None)
- Return type:
- classmethod alternating_flux_flip(layout, lattice, plaquette_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
- Return type:
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, lattice, plaquette_id, transitions, name='plaquette_pattern')#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
transitions (tuple[PlaquettePatternTransition, ...])
name (str)
- Return type:
None
- class qlinks.operators.PlaquettePatternTransition(initial, final, coefficient=1.0)[source]#
Bases:
objectOne allowed plaquette pattern transition.
- initial:
Values on plaquette links before the operator acts.
- final:
Values on plaquette links after the operator acts.
- coefficient:
Matrix element for this transition.
- Parameters:
- coefficient: complex#
- class qlinks.operators.SetVariablesOperator(layout, variable_indices, initial_values, final_values, coefficient=1.0, name='set_variables')[source]#
Bases:
BaseLocalOperatorGeneral local transition operator.
If
config[variable_indices] == initial_values
then produce a new config with
new_config[variable_indices] = final_values
Otherwise return no action.
- Parameters:
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, variable_indices, initial_values, final_values, coefficient=1.0, name='set_variables')#
- class qlinks.operators.SpinOneXYBondOperator(layout, lattice, link_id, coefficient=1.0, name='spin_one_xy_bond')[source]#
Bases:
BaseLocalOperatorSpin-1 XY bond operator on sites i,j.
- H_ij = J_xy * (S^x_i S^x_j + S^y_i S^y_j)
= J_xy/2 * (S^+_i S^-_j + S^-_i S^+_j)
The computational basis is the S^z product basis with values:
m_i in {-1, 0, +1}
- Parameters:
layout (VariableLayout)
lattice (ChainLattice)
link_id (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- lattice: ChainLattice#
- link_id: int#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, lattice, link_id, coefficient=1.0, name='spin_one_xy_bond')#
- Parameters:
layout (VariableLayout)
lattice (ChainLattice)
link_id (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.UpdateSpinOneXYBondOperator(layout, lattice, link_id, coefficient=1.0, name='update_spin_one_xy_bond')[source]#
Bases:
BaseLocalUpdateOperatorUpdate-action version of
SpinOneXYBondOperator.The operator returns only local two-site updates instead of allocating full output configurations. It is intended for
OptimizedSparseHamiltonianBuilder.- Parameters:
layout (VariableLayout)
lattice (ChainLattice)
link_id (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- lattice: ChainLattice#
- link_id: int#
- coefficient: complex#
- name: str#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, lattice, link_id, coefficient=1.0, name='update_spin_one_xy_bond')#
- Parameters:
layout (VariableLayout)
lattice (ChainLattice)
link_id (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.TransposedBasisOperator(parent, conjugate=False)[source]#
Bases:
objectTranspose or adjoint view of BasisOperator.
- Parameters:
parent (BasisOperator)
conjugate (bool)
- parent: BasisOperator#
- conjugate: bool = False#
- property shape: tuple[int, int]#
- property T: BasisOperator | TransposedBasisOperator#
- property H: BasisOperator#
- __init__(parent, conjugate=False)#
- Parameters:
parent (BasisOperator)
conjugate (bool)
- Return type:
None
- qlinks.operators.spin_one_lower_amplitude(m)[source]#
Spin-1 S^- amplitude.
for S=1 and m in {-1, 0, 1}.
- Parameters:
m (int)
- Return type:
float
- qlinks.operators.spin_one_raise_amplitude(m)[source]#
Spin-1 S^+ amplitude.
for S=1 and m in {-1, 0, 1}.
- Parameters:
m (int)
- Return type:
float
- class qlinks.operators.ToricCodePlaquetteFluxOperator(layout, lattice, plaquette_id, coefficient=-1.0, name='toric_code_plaquette_flux')[source]#
Bases:
BaseLocalOperatorToric-code plaquette operator B_p in the Z basis.
It is diagonal:
- Parameters:
layout (VariableLayout)
lattice (SquareLattice)
plaquette_id (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- lattice: SquareLattice#
- plaquette_id: int#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, lattice, plaquette_id, coefficient=-1.0, name='toric_code_plaquette_flux')#
- Parameters:
layout (VariableLayout)
lattice (SquareLattice)
plaquette_id (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.ToricCodeStarFlipOperator(layout, lattice, site_id, coefficient=-1.0, name='toric_code_star_flip')[source]#
Bases:
BaseLocalOperatorToric-code star operator A_v in the Z basis.
It flips all links incident on site v.
- Parameters:
layout (VariableLayout)
lattice (SquareLattice)
site_id (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- lattice: SquareLattice#
- site_id: int#
- coefficient: complex#
- name: str#
- apply(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[OperatorAction, …]
- __init__(layout, lattice, site_id, coefficient=-1.0, name='toric_code_star_flip')#
- Parameters:
layout (VariableLayout)
lattice (SquareLattice)
site_id (int)
coefficient (complex)
name (str)
- Return type:
None
- qlinks.operators.combine_duplicate_actions(actions, *, atol=0.0)[source]#
Combine actions that produce the same output configuration.
This is useful before sparse assembly when two terms lead to the same row/column matrix element.
- Parameters:
actions (Sequence[OperatorAction])
atol (float)
- Return type:
tuple[OperatorAction, …]
- qlinks.operators.qdm_flippability_projectors(layout, lattice, plaquette_id, coefficient=1.0)[source]#
Return diagonal projectors onto the two flippable QDM plaquette patterns:
1010 and 0101
The potential term V * P_p^2 in a QDM-like model can be represented using these diagonal projectors.
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
- Return type:
- qlinks.operators.as_basis_operator(basis, operators, **kwargs)[source]#
Convenience constructor.
- Parameters:
basis (Basis)
operators (LocalOperator | Sequence[LocalOperator])
- Return type:
- qlinks.operators.alternating_binary_flippability_projectors(layout, lattice, plaquette_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
- Return type:
- qlinks.operators.alternating_flux_flippability_projectors(layout, lattice, plaquette_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
- Return type:
- class qlinks.operators.BaseLocalUpdateOperator[source]#
Bases:
object- layout: VariableLayout#
- name: str#
- class qlinks.operators.LocalUpdateAction(coefficient, variable_indices, new_values)[source]#
Bases:
objectCompact operator action.
Instead of storing the full output configuration, store only
variable_indices new_values
The optimized sparse builder will reuse a scratch array:
scratch[:] = config scratch[variable_indices] = new_values
- Parameters:
- coefficient: complex#
- class qlinks.operators.LocalUpdateOperator(*args, **kwargs)[source]#
Bases:
ProtocolOptimized local-operator protocol.
This protocol does not return a full new configuration. It returns only local updates.
- layout: VariableLayout#
- name: str#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(*args, **kwargs)#
- class qlinks.operators.SingleLocalUpdateOperator(*args, **kwargs)[source]#
Bases:
LocalUpdateOperator,ProtocolLocal update operator with at most one action per input config.
- class qlinks.operators.UpdateBinaryFlipOperator(layout, variable_index, coefficient=1.0, name='update_binary_flip')[source]#
Bases:
BaseLocalUpdateOperatorOptimized binary flip 0 <-> 1.
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- classmethod on_site(layout, site_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
site_id (int)
coefficient (complex)
- Return type:
- classmethod on_link(layout, link_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
link_id (int)
coefficient (complex)
- Return type:
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='update_binary_flip')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.UpdateMultiNegationFlipOperator(layout, variable_indices, coefficient=1.0, name='update_multi_negation_flip')[source]#
Bases:
BaseLocalUpdateOperatorOptimized simultaneous sign flip on several variables.
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, variable_indices, coefficient=1.0, name='update_multi_negation_flip')#
- Parameters:
layout (VariableLayout)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.UpdateNegationFlipOperator(layout, variable_index, coefficient=1.0, name='update_negation_flip')[source]#
Bases:
BaseLocalUpdateOperatorOptimized sign flip v -> -v.
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- layout: VariableLayout#
- variable_index: int#
- coefficient: complex#
- name: str#
- classmethod on_link(layout, link_id, coefficient=1.0)[source]#
- Parameters:
layout (VariableLayout)
link_id (int)
coefficient (complex)
- Return type:
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, variable_index, coefficient=1.0, name='update_negation_flip')#
- Parameters:
layout (VariableLayout)
variable_index (int)
coefficient (complex)
name (str)
- Return type:
None
- class qlinks.operators.UpdateOperatorSum(terms, name='update_operator_sum')[source]#
Bases:
objectSum of update-level local operators.
- Parameters:
terms (tuple[LocalUpdateOperator, ...])
name (str)
- terms: tuple[LocalUpdateOperator, ...]#
- name: str#
- classmethod from_terms(terms, name='update_operator_sum')[source]#
- Parameters:
terms (Sequence[LocalUpdateOperator])
name (str)
- Return type:
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(terms, name='update_operator_sum')#
- Parameters:
terms (tuple[LocalUpdateOperator, ...])
name (str)
- Return type:
None
- class qlinks.operators.UpdatePXPSpinFlipOperator(layout, lattice, site_id, coefficient=1.0, occupied_value=1, name='update_pxp_spin_flip')[source]#
Bases:
BaseLocalUpdateOperatorOptimized PXP constrained spin flip.
Flip site_id only if all neighbors are not occupied.
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
site_id (int)
coefficient (complex)
occupied_value (int)
name (str)
- layout: VariableLayout#
- lattice: LatticeGraph#
- site_id: int#
- coefficient: complex#
- occupied_value: int#
- name: str#
- property site_variable: int#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, lattice, site_id, coefficient=1.0, occupied_value=1, name='update_pxp_spin_flip')#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
site_id (int)
coefficient (complex)
occupied_value (int)
name (str)
- Return type:
None
- class qlinks.operators.UpdatePlaquettePatternOperator(layout, lattice, plaquette_id, transitions, name='update_plaquette_pattern')[source]#
Bases:
BaseLocalUpdateOperatorOptimized plaquette-pattern transition operator.
This is the update-action version of PlaquettePatternOperator.
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
transitions (tuple[UpdatePlaquettePatternTransition, ...])
name (str)
- layout: VariableLayout#
- lattice: LatticeGraph#
- plaquette_id: int#
- transitions: tuple[UpdatePlaquettePatternTransition, ...]#
- name: str#
- classmethod qdm_flip(layout, lattice, plaquette_id, coefficient=1.0, reverse_coefficient=None)[source]#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
coefficient (complex)
reverse_coefficient (complex | None)
- Return type:
- property supports_single_update: bool#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, lattice, plaquette_id, transitions, name='update_plaquette_pattern')#
- Parameters:
layout (VariableLayout)
lattice (LatticeGraph)
plaquette_id (int)
transitions (tuple[UpdatePlaquettePatternTransition, ...])
name (str)
- Return type:
None
- class qlinks.operators.UpdatePlaquettePatternTransition(initial: 'npt.NDArray[np.int64]', final: 'npt.NDArray[np.int64]', coefficient: 'complex' = 1.0)[source]#
Bases:
object- Parameters:
- coefficient: complex#
- class qlinks.operators.UpdateSetVariablesOperator(layout, variable_indices, initial_values, final_values, coefficient=1.0, name='update_set_variables')[source]#
Bases:
BaseLocalUpdateOperatorOptimized version of SetVariablesOperator.
If config[variable_indices] == initial_values, return a local update setting those variables to final_values.
- Parameters:
- layout: VariableLayout#
- coefficient: complex#
- name: str#
- apply_update(config)[source]#
- Parameters:
config (ArrayLike)
- Return type:
tuple[LocalUpdateAction, …]
- __init__(layout, variable_indices, initial_values, final_values, coefficient=1.0, name='update_set_variables')#