loom Logo

Contents:

  • 1. Getting Started
    • 1.1. Installation
    • 1.2. Next Steps
  • 2. Basics
    • 2.1. Why Loom?
    • 2.2. Build a Quantum correction experiment
    • 2.3. Visualize stabilizers and qubits
      • 2.3.1. StabilizerPlot Visualizer
      • 2.3.2. Circuit Visualizer
    • 2.4. Run an experiment
  • 3. Examples
    • 3.1. Converter Example
      • 3.1.1. Conversion to QASM
      • 3.1.2. Conversion to Stim
    • 3.2. Visualizer Circuit Example
      • 3.2.1. Stabilizers
      • 3.2.2. Quantum circuit for syndrome extraction
      • 3.2.3. Construct and interpret the Eka object
      • 3.2.4. Visualization
    • 3.3. Visualizer Stabilizer Plot Example
      • 3.3.1. Rotated surface code
      • 3.3.2. Plot arbitrary Pauli strings
      • 3.3.3. Plot Pauli charges
      • 3.3.4. Plot multiple qubits on the same lattice
      • 3.3.5. Plot only a subset of stabilizers
      • 3.3.6. Creating a plot from scratch
      • 3.3.7. Non-rotated surface code
    • 3.4. CliffordSim Example
      • 3.4.1. Bell Pair Circuit
      • 3.4.2. Five-Qubit Code Initialization
      • 3.4.3. PauliFrame basic example
    • 3.5. Validator Syndrome Extraction Example
      • 3.5.1. Steane Code Reichardt circuit
        • Code definition
        • Circuit testing
        • Sanity checks
          • 1. Indicate that other stabilizers were measured
          • 2. Adding CNOT between two data qubits
          • 3. Performing a logical operation
          • 4. Applying a destabilizer operation
      • 3.5.2. Repetition code with binary operations
  • 4. Loom Architecture
    • 4.1. Eka
      • 4.1.1. Example
      • 4.1.2. Validations
    • 4.2. Block
      • 4.2.1. Definition
      • 4.2.2. Example
      • 4.2.3. Validations
      • 4.2.4. Assumptions
    • 4.3. Circuit
      • 4.3.1. Channels
      • 4.3.2. Circuits
      • 4.3.3. Utilities
    • 4.4. Interpretation
      • 4.4.1. Usage
      • 4.4.2. How does interpretation work?
        • Automatic dispatch
        • Interpreting operations
    • 4.5. InterpretationStep
      • 4.5.1. Output components: What the world needs
      • 4.5.2. Building components: What the world does not want to see
      • 4.5.3. Usage in the wild
      • 4.5.4. Examples for the repetition code
      • 4.5.5. Examples for the surface code
  • 5. Backends
    • 5.1. OpenQASM 3.0
    • 5.2. Stim
    • 5.3. Pennylane
    • 5.4. Cudaq
  • 6. Code Operations
  • 7. Code Factories
    • 7.1. Five Qubit Perfect Code
      • 7.1.1. Five Qubit Perfect Code Block
      • 7.1.2. Operations on Five Qubit Perfect Code
    • 7.2. Repetition Code
      • 7.2.1. Repetition Code Block
      • 7.2.2. Operations on Repetition Code
    • 7.3. Rotated Surface Code
      • 7.3.1. Rotated Surface Code
        • Rotated Surface Code Block
        • Operations on Rotated Surface Codes
      • 7.3.2. Examples
        • Simple noiseless memory experiment
        • Simple noisy memory experiment
    • 7.4. Shor Code
      • 7.4.1. Shor Code Block
      • 7.4.2. Operations on Shor Code
    • 7.5. Steane Code
      • 7.5.1. Steane Code Block
      • 7.5.2. Operations on Steane Code
  • 8. Extra Features
    • 8.1. CliffordSim
      • 8.1.1. Key Features
      • 8.1.2. Usage
        • Operations
        • DataStore
    • 8.2. Validator
      • 8.2.1. Main Validation Function
      • 8.2.2. Interpreting Debug Data
        • Code Stabilizer Check
        • Logical Transformation Check
        • Stabilizer Measurement Check
      • 8.2.3. Utility Functions
        • Getting Logical Transformations for a Clifford Operation
        • Syndrome Extraction Circuit Wrapper
        • Logical Operation Circuit Wrapper
      • 8.2.4. Limitations and Caveats
        • Inconsistencies in Probabilistic Circuits
        • Non-Proven States to Validate Clifford Operations
  • 9. API Reference
    • 9.1. Eka
      • 9.1.1. Subpackages
        • loom.eka.operations
          • Submodules
        • loom.eka.utilities
          • Submodules
      • 9.1.2. Submodules
        • loom.eka.block
          • Block
        • loom.eka.channel
          • Channel
          • ChannelType
          • create_default_label()
        • loom.eka.circuit
          • Circuit
        • loom.eka.circuit_algorithms
          • cardinal_circuit()
          • coloration_circuit()
          • extract_syndrome_circuit()
          • generate_stabilizer_and_syndrome_circuits_from_algorithm()
        • loom.eka.eka
          • Eka
        • loom.eka.lattice
          • Lattice
          • LatticeType
        • loom.eka.logical_state
          • LogicalState
        • loom.eka.matrices
          • ClassicalParityCheckMatrix
          • ParityCheckMatrix
        • loom.eka.pauli_operator
          • PauliOperator
        • loom.eka.stabilizer
          • Stabilizer
        • loom.eka.syndrome_circuit
          • SyndromeCircuit
          • default_circuit()
        • loom.eka.tanner_graphs
          • ClassicalTannerGraph
          • TannerGraph
          • cartesian_product_tanner_graphs()
          • verify_css_code_stabilizers()
    • 9.2. Interpreter
      • 9.2.1. Subpackages
        • loom.interpreter.applicator
          • Submodules
      • 9.2.2. Submodules
        • loom.interpreter.detector
          • Detector
        • loom.interpreter.interpretation_step
          • InterpretationStep
          • check_frozen()
        • loom.interpreter.interpreter
          • cleanup_final_step()
          • interpret_eka()
          • interpret_operation()
          • load_plugin_options()
        • loom.interpreter.logical_observable
          • LogicalObservable
        • loom.interpreter.syndrome
          • Syndrome
        • loom.interpreter.utilities
          • Cbit
    • 9.3. Visualizer
      • 9.3.1. Submodules
        • loom.visualizer.circuit_visualizer
          • hierarchy_layout()
          • plot_circuit_tree()
        • loom.visualizer.plotting_utils
          • average_color_hex()
          • center_of_points()
          • center_of_scatter_plot()
          • change_color_brightness()
          • convert_circuit_to_nx_graph()
          • draw_half_circle()
          • get_angle_from_x_axis()
          • get_font_color()
          • get_label_for_circuit()
          • hex_to_rgb()
          • interpolate_values()
          • order_points_counterclockwise()
          • point_in_polygon()
          • rgb_to_hex()
        • loom.visualizer.stabilizer_visualizer
          • StabilizerPlot
    • 9.4. Executor
      • 9.4.1. Submodules
        • loom.executor.circuit_error_model
          • ApplicationMode
          • AsymmetricDepolarizeCEM
          • CircuitErrorModel
          • ErrorProbProtocol
          • ErrorType
          • HomogeneousTimeDependentCEM
          • HomogeneousTimeIndependentCEM
        • loom.executor.converter
          • detector_outcomes()
          • detector_reference_states()
        • loom.executor.eka_circuit_to_cudaq_converter
          • Converter
          • EkaToCudaqConverter
        • loom.executor.eka_circuit_to_pennylane_converter
          • MEASUREMENT_OPERATIONS_MAP()
          • RESET_OPERATIONS_MAP()
          • convert_circuit_to_pennylane()
        • loom.executor.eka_circuit_to_qasm_converter
          • convert_circuit_to_qasm()
        • loom.executor.eka_circuit_to_stim_converter
          • EkaCircuitToStimConverter
          • noise_annotated_stim_circuit()
        • loom.executor.main
          • convert_circuit_to_cliffordsim()
        • loom.executor.utilities
          • format_channel_label_to_tuple()
    • 9.5. Cliffordsim
      • 9.5.1. Subpackages
        • loom.cliffordsim.moments
          • Submodules
        • loom.cliffordsim.operations
          • Submodules
      • 9.5.2. Submodules
        • loom.cliffordsim.classicalreg
          • ClassicalRegister
          • ClassicalRegisterSnapshot
        • loom.cliffordsim.data_store
          • DataStore
        • loom.cliffordsim.engine
          • Engine
        • loom.cliffordsim.exceptions
          • ClassicalOperationError
          • ClassicalRegisterError
          • EngineRunError
          • InvalidTableauError
          • PropagationError
          • TableauSizeError
        • loom.cliffordsim.invoker
          • Invoker
        • loom.cliffordsim.moment_queue
          • MomentFactory
          • MomentQueue
        • loom.cliffordsim.pauli_frame
          • PauliFrame
        • loom.cliffordsim.tableau
          • Tableau
          • TableauSnapshot
          • compare_stabilizer_set()
    • 9.6. Validator
      • 9.6.1. Submodules
        • loom.validator.check_abstract
          • AbstractValidityCheck
        • loom.validator.check_code_stabilizers
          • CodeStabilizerCheck
          • CodeStabilizerCheckOutput
          • check_code_stabilizers_output()
        • loom.validator.check_logical_ops
          • LogicalOperatorCheck
          • LogicalOperatorCheckOutput
          • check_logical_operators_transformation()
          • find_logical_state()
        • loom.validator.check_stabilizer_measurement
          • StabilizerMeasurementCheck
          • StabilizerMeasurementCheckOutput
          • check_input_stabilizer_measurement()
          • get_mresults_with_flipped_reduced_stabilizers()
        • loom.validator.circuit_validation
          • find_final_swaps()
          • get_validator_cliffordsim_operations()
          • is_circuit_valid()
          • validate_logical_state_transformations()
          • validate_logical_state_transformations_with_parity()
          • validate_measurement_to_input_stabilizer_map()
          • validate_output_stabilizers_parity()
          • validate_output_stabilizers_with_any_value()
        • loom.validator.circuit_validation_wrappers
          • is_logical_operation_circuit_valid()
          • is_syndrome_extraction_circuit_valid()
        • loom.validator.debug_dataclass
          • AllChecks
          • DebugData
        • loom.validator.utilities
          • all_possible_pauli_strings()
          • get_all_cliffordsim_registers_with_random_flags()
          • get_parity_from_cbits()
          • logical_state_transformations_to_check()
          • logical_states_to_check()
    • 9.7. Five Qubit Perfect Code
      • 9.7.1. Subpackages
        • loom_five_qubit_perfect_code.applicator
          • Submodules
        • loom_five_qubit_perfect_code.code_factory
          • Submodules
      • 9.7.2. Submodules
        • loom_five_qubit_perfect_code.selectors
          • selector_dict
    • 9.8. Repetition Code
      • 9.8.1. Subpackages
        • loom_repetition_code.applicator
          • Submodules
        • loom_repetition_code.code_factory
          • Submodules
      • 9.8.2. Submodules
        • loom_repetition_code.selectors
    • 9.9. Rotated Surface Code
      • 9.9.1. Subpackages
        • loom_rotated_surface_code.applicator
          • Submodules
        • loom_rotated_surface_code.code_factory
          • Submodules
        • loom_rotated_surface_code.operations
          • Submodules
        • loom_rotated_surface_code.utilities
          • Submodules
      • 9.9.2. Submodules
        • loom_rotated_surface_code.selectors
          • selector_dict
    • 9.10. Shor Code
      • 9.10.1. Subpackages
        • loom_shor_code.applicator
          • Submodules
        • loom_shor_code.code_factory
          • Submodules
      • 9.10.2. Submodules
        • loom_shor_code.selectors
          • selector_dict
    • 9.11. Steane Code
      • 9.11.1. Subpackages
        • loom_steane_code.applicator
          • Submodules
        • loom_steane_code.code_factory
          • Submodules
      • 9.11.2. Submodules
        • loom_steane_code.selectors
          • selector_dict
loom
  • Loom documentation
  • View page source

Loom documentation

This guide contains an overview of the important features within Loom.

Contents:

  • 1. Getting Started
    • 1.1. Installation
    • 1.2. Next Steps
  • 2. Basics
    • 2.1. Why Loom?
    • 2.2. Build a Quantum correction experiment
    • 2.3. Visualize stabilizers and qubits
    • 2.4. Run an experiment
  • 3. Examples
    • 3.1. Converter Example
    • 3.2. Visualizer Circuit Example
    • 3.3. Visualizer Stabilizer Plot Example
    • 3.4. CliffordSim Example
    • 3.5. Validator Syndrome Extraction Example
  • 4. Loom Architecture
    • 4.1. Eka
    • 4.2. Block
    • 4.3. Circuit
    • 4.4. Interpretation
    • 4.5. InterpretationStep
  • 5. Backends
    • 5.1. OpenQASM 3.0
    • 5.2. Stim
    • 5.3. Pennylane
    • 5.4. Cudaq
  • 6. Code Operations
  • 7. Code Factories
    • 7.1. Five Qubit Perfect Code
    • 7.2. Repetition Code
    • 7.3. Rotated Surface Code
    • 7.4. Shor Code
    • 7.5. Steane Code
  • 8. Extra Features
    • 8.1. CliffordSim
    • 8.2. Validator
  • 9. API Reference
    • 9.1. Eka
    • 9.2. Interpreter
    • 9.3. Visualizer
    • 9.4. Executor
    • 9.5. Cliffordsim
    • 9.6. Validator
    • 9.7. Five Qubit Perfect Code
    • 9.8. Repetition Code
    • 9.9. Rotated Surface Code
    • 9.10. Shor Code
    • 9.11. Steane Code
Next

© Copyright 2025, Entropica Labs Pte Ltd.

Built with Sphinx using a theme provided by Read the Docs.