Skip to content

103 quantum registers - #173

Open
Iliasmi wants to merge 16 commits into
developmentfrom
103-quantum-registers
Open

103 quantum registers#173
Iliasmi wants to merge 16 commits into
developmentfrom
103-quantum-registers

Conversation

@Iliasmi

@Iliasmi Iliasmi commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR adds explicit quantum and classical register support across the circuit model, backend API, circuit editor, simulator, and results view.

  • Added register management for quantum and classical registers, including creating/deleting registers and adding/removing qubits or classical bits.
  • Introduced a shared RegisterType discriminator and extended circuit DTOs/API requests to handle classical registers and measurement destinations.
  • Updated measurement handling so measurement gates must target exactly one qubit, cannot be inverted or controlled, and must write to at least one classical bit.
  • Added UI flows for managing registers and selecting a classical bit when placing measurement gates.
  • Reworked circuit rendering to display quantum and classical register sections, including collapsible classical registers and separate classical wire styling.
  • Improved drag/drop and scheduling logic so operations are placed only on valid quantum rows and collisions are handled consistently.
  • Reworked simulation execution to support single-qubit and mid-circuit measurements, classical memory/readout, measurement mappings, shot-based outcomes, and optional final readout of unmeasured qubits.
  • Updated the results view to show measurement/readout histograms, outcome tables, measurement mappings, endianness/order controls, filters, and large-circuit warnings.
  • Added and updated backend/frontend tests around registers, measurements, simulation translation, chart data, and results rendering.
  • Adjusted build/dev setup so Gradle uses a project-local Node/npm for Spotless and updated the README Docker Compose command.

Iliasmi and others added 3 commits August 11, 2026 12:09
…ster-cleanup

# Conflicts:
#	backend/src/main/java/edu/kit/quak/application/circuit/ports/in/CircuitServicePort.java
#	backend/src/main/java/edu/kit/quak/application/circuit/services/CircuitService.java
#	backend/src/main/java/edu/kit/quak/core/circuit/model/QuantumCircuit.java
#	backend/src/main/java/edu/kit/quak/infrastructure/circuit/in/web/rest/CircuitRestAdapter.java
#	backend/src/test/java/edu/kit/quak/core/circuit/model/QuantumCircuitTest.java
#	backend/src/test/java/edu/kit/quak/infrastructure/circuit/in/web/rest/mapper/QuantumOperationDtoMapperTest.java
#	backend/src/test/java/edu/kit/quak/infrastructure/circuit/out/db/jpa/CircuitJpaAdapterTest.java
#	backend/src/test/java/edu/kit/quak/infrastructure/circuit/out/db/jpa/mapper/CircuitJpaMapperTest.java
#	frontend/src/simulation/qulacsMapper.test.ts
#	frontend/src/simulation/qulacsMapper.ts
#	frontend/src/views/circuit-view/CircuitView.tsx
#	frontend/src/views/circuit-view/components/CircuitToolbar.tsx
#	frontend/src/views/circuit-view/components/DropzoneGrid.tsx
#	frontend/src/views/circuit-view/components/ElementaryQuantumGate.tsx
#	frontend/src/views/circuit-view/components/QuantumOperationGrid.tsx
#	frontend/src/views/circuit-view/components/QubitWires.tsx
#	frontend/src/views/circuit-view/util/circuitService.ts
#	frontend/src/views/results-view/ResultsView.tsx
@f-marschall
f-marschall force-pushed the 103-quantum-registers branch from 146a31c to e557112 Compare August 11, 2026 20:37
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants