IcebergQEDPolicy¶
- class guppyft.code.iceberg.encode.IcebergQEDPolicy(threshold: int = 1, costs: OperationCosts = <factory>)[source]¶
Policy to determine when QED cycles are injected.
Each logical block accumulates a cost based on costs. Once a block’s accumulated cost reaches threshold, a QED cycle is performed on that block and its counter is reset.
- costs¶
See IcebergQEDPolicy.OperationCosts.
- class OperationCosts(idle: float = 0.0, alloc_dynq: float = 0.0, x: float = 0.0, y: float = 0.0, z: float = 0.0, x_all: float = 0.0, y_all: float = 0.0, z_all: float = 0.0, x_all_except_at: float = 0.0, z_all_except_at: float = 0.0, x_all_except_z_at: float = 0.0, z_all_except_x_at: float = 0.0, rx: float = 0.0, rz: float = 0.0, pauli_exp_x_all: float = 0.0, pauli_exp_y_all: float = 0.0, pauli_exp_z_all: float = 0.0, pauli_exp_x_all_except_at: float = 0.0, pauli_exp_z_all_except_at: float = 0.0, pauli_exp_x_all_except_z_at: float = 0.0, pauli_exp_z_all_except_x_at: float = 0.0, h_all: float = 0.0, cx_all: float = 0.0, cx_intrablock: float = 0.0, cx_interblock: float = 0.0, xx_intrablock: float = 0.0, yy_intrablock: float = 0.0, zz_intrablock: float = 0.0, xx_phase_intrablock: float = 0.0, xx_phase_interblock: float = 0.0, yy_phase_intrablock: float = 0.0, yy_phase_interblock: float = 0.0, zz_phase_intrablock: float = 0.0, zz_phase_interblock: float = 0.0, fan_in: float = 0.0, fan_out: float = 0.0, swap_intrablock: float = 0.0)[source]¶
Configuration for operation costs that are used to determined when QED cycles should be performed during runtime.
- __eq__(other)¶
Return self==value.
- __init__(idle: float = 0.0, alloc_dynq: float = 0.0, x: float = 0.0, y: float = 0.0, z: float = 0.0, x_all: float = 0.0, y_all: float = 0.0, z_all: float = 0.0, x_all_except_at: float = 0.0, z_all_except_at: float = 0.0, x_all_except_z_at: float = 0.0, z_all_except_x_at: float = 0.0, rx: float = 0.0, rz: float = 0.0, pauli_exp_x_all: float = 0.0, pauli_exp_y_all: float = 0.0, pauli_exp_z_all: float = 0.0, pauli_exp_x_all_except_at: float = 0.0, pauli_exp_z_all_except_at: float = 0.0, pauli_exp_x_all_except_z_at: float = 0.0, pauli_exp_z_all_except_x_at: float = 0.0, h_all: float = 0.0, cx_all: float = 0.0, cx_intrablock: float = 0.0, cx_interblock: float = 0.0, xx_intrablock: float = 0.0, yy_intrablock: float = 0.0, zz_intrablock: float = 0.0, xx_phase_intrablock: float = 0.0, xx_phase_interblock: float = 0.0, yy_phase_intrablock: float = 0.0, yy_phase_interblock: float = 0.0, zz_phase_intrablock: float = 0.0, zz_phase_interblock: float = 0.0, fan_in: float = 0.0, fan_out: float = 0.0, swap_intrablock: float = 0.0) None¶
- __repr__()¶
Return repr(self).
- __eq__(other)¶
Return self==value.
- __init__(threshold: int = 1, costs: OperationCosts = <factory>) None¶
- __repr__()¶
Return repr(self).