Skip to main content

Compact quantum circuit helpers, encodings, algorithms, navigation and Qiskit interop.

Project description

quantum_cq

Biblioteca Python extraida de um notebook de computacao quantica, com uma camada compacta de circuitos (QC), encoders classicos, algoritmos basicos e interop com Qiskit.

Instalacao

pip install quantum-cq

Extras opcionais:

pip install "quantum-cq[aer]"       # simuladores Aer
pip install "quantum-cq[ibm]"       # IBM Quantum Runtime
pip install "quantum-cq[notebook]"  # pandas, matplotlib, IPython e widgets
pip install "quantum-cq[all]"       # todos os extras opcionais

Uso rapido

from quantum_cq import CQ

encoded_basis = CQ.encode([1, 0, 1])
encoded_angle = CQ.encode([0.1, 0.2])
deutsch = CQ.algorithm("deutsch").with_case(2).build()
bv = CQ.algorithm("bernstein_vazirani").with_secret("1011").build()
dj = CQ.algorithm("deutsch_jozsa").with_num_qubits(3).with_kind("balanced").build()
grover = CQ.algorithm("grover").with_marked_state("11").build()
qpe = CQ.algorithm("phase_estimation").with_phase(0.25).with_precision(3).build()
qft = CQ.primitive("qft").build(num_qubits=3)
diffuser = CQ.primitive("standard_diffuser").build(num_qubits=3)
phase_rotation = CQ.operator("phase_rotation").with_phase(0.25).build()
memory = CQ.memory([3, 5, 7, 9])
nav = CQ.encode(memory, role="navigation")
qram_like = CQ.encode(memory, role="navigation", engine="qram_like")
print(CQ.metrics(nav))
print(CQ.to_qiskit(nav).draw())
graph = CQ.graph(edges=[(0, 1), (1, 2), (2, 3)], num_vertices=4)
neighbor_oracle = CQ.encode(graph, role="navigation")

cycle = CQ.graph(edges=[(0, 1), (1, 2), (2, 3), (3, 0)], num_vertices=4)
walk = CQ.primitive("coined_quantum_walk").build(cycle, steps=1)

QC como circuito oficial

from quantum_cq import CQ
from quantum_cq.algorithms import twobit_block
from quantum_cq.compact import QC, m, obs, sep

uf0 = twobit_block(2)
qc = QC(
    "Deutsch",
    [
        [0, "-", "H", obs("pre_oracle"), uf0, sep("after_oracle"), "H", m(0)],
        [0, "X", "H", obs("pre_oracle"), uf0, "-", "-", "-"],
    ],
    c=1,
)

same_qc = CQ.from_qc(qc)
qiskit_circuit = CQ.to_qiskit(qc)
metrics = CQ.metrics(qc)

Exportacao

qiskit_circuit = CQ.export(qc, target="qiskit")

Exportadores futuros como mqt e openqasm ainda levantam NotImplementedError; eles nao fingem implementacao parcial.

Encodings generalizados

A arquitetura separa os papeis:

  • StateEncoding: dados classicos para estado quantico.
  • OracleEncoding: funcao ou predicado para oraculo.
  • OperatorEncoding: operador ou unitario reutilizavel.
  • NavigationEncoding: memoria enderecada ou grafo para acesso coerente.
  • QuantumWalk: dinamica unitaria sobre uma estrutura navegavel.

engine="qram_like" simula a semantica logica de acesso QRAM-like, mas nao e QRAM fisico. A metadata marca physical_qram=False.

Logging

A biblioteca escreve eventos operacionais no terminal por padrao.

from quantum_cq import configure_logging

configure_logging(level="INFO")

Testes

python -m pytest -q

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quantum_cq-0.1.0.tar.gz (87.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quantum_cq-0.1.0-py3-none-any.whl (79.7 kB view details)

Uploaded Python 3

File details

Details for the file quantum_cq-0.1.0.tar.gz.

File metadata

  • Download URL: quantum_cq-0.1.0.tar.gz
  • Upload date:
  • Size: 87.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for quantum_cq-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ac3182400615d9f7396db2e2a496b91ee2605c800d4ec62f06151ab2c3ff2ad2
MD5 bf8d15c47f31bdab668b9bc17f5490cc
BLAKE2b-256 0fa0c92f45bb5bbb4f35f813a075358457664e0302c6d7d2137b3a18afee8dfb

See more details on using hashes here.

File details

Details for the file quantum_cq-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: quantum_cq-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 79.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for quantum_cq-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b574ba4b87963919cd7504fae5fe2581a4f3eef2343c26438db2d623b75df9cc
MD5 69a5585e15e7d06bb9381db6580c928b
BLAKE2b-256 f1722a75bd4f386c8d9d56201a89d6c21436dcac44e2eaf2cb71384de886b765

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page