logo
Free Access (12 Qubits)

Making data accessible for quantum computing

Believe it or not: The future of quantum computing will be big data

The problem we solve: copying data into quantum.

Our product offers scalable data management and scalable quantum state preparation routines.

1

Problem 1

Quantum Computing has "No-Cloning" Theorem, it cannot simply copy data

2

Problem 2

Data is needed for Quantum Chemistry, Machine Learning, Solving PDE and Monte Carlo Simulation

3

Problem 3

A completely new layer in the quantum stack is needed: Storage and processing of quantum operations

Our Solution

Q-Alchemy

Q-Alchemy optimizes the process of bringing classical data into quantum form by smartly exploiting entanglement and data ordering, making state preparation more feasible for quantum and hybrid algorithms, despite a heavy classical cost.

Read more about the algorithm

High-Performance Data Processing

Data Handling: High-Performance-Computing

Platform-Agnostic Quantum Integration

Superconductor, Ion Traps, Photons, Neutral Atoms, Topological Qubits, many more

Cross-Platform Compatibility

Platform-specific adaptations dependent modifications exist

Optimal for HHL

Encode sparse right-hand side vector. Exploits sparse states, save up to 4x depth

Why Q-Alchemy?

The unique and powerful way to copy data into a quantum processor.
Improve the success of the algorithm by automating the coding of the initial state. This optimizes the end-2-end performance of your algorithm.
Copy data into a quantum processor
Tunable Fidelity Loss >> Short Circuits
Seamless Integration
We offer a nice and ready to use Python SDK to integrate your workflows with our service. We have Qiskit & PennyLane integrations.

from q_alchemy.initialize import q_alchemy_as_qasm

zero = load_mnist_784(number="0", pad=True, normalize=True)[0]

qasm, summary = q_alchemy_as_qasm(
    zero,
    max_fidelity_loss=0.2,
    return_summary=True
)

import numpy as np
from sklearn.datasets import fetch_openml
from q_alchemy.qiskit_integration import QAlchemyInitialize, OptParams

zero = load_mnist_784(number="0", pad=True, normalize=True)[0]
filler = np.empty(2 ** 10 - zero.shape[0])
filler.fill(0)

zero = np.hstack([zero, filler])
zero = zero / np.linalg.norm(zero)

instr = QAlchemyInitialize(
    params=zero.tolist(),
    opt_params=OptParams(
        max_fidelity_loss=0.1,
        basis_gates=["id", "rx", "ry", "rz", "cx"],
        api_key="<your api key>"
    )
)
instr.definition.draw(fold=-1)

import numpy as np
import pennylane as qml
from sklearn.datasets import fetch_openml

from q_alchemy.pennylane_integration import QAlchemyStatePreparation, OptParams

mnist = fetch_openml('mnist_784', version=1, parser="auto")

zero: np.ndarray = mnist.data[mnist.target == "0"].iloc[0].to_numpy()
filler = np.empty(2 ** 10 - zero.shape[0])
filler.fill(0)

zero = np.hstack([zero, filler])
zero = zero / np.linalg.norm(zero)

dev = qml.device('lightning.qubit', wires=10)

@qml.qnode(dev)
def circuit(state=None):
    QAlchemyStatePreparation(
        state,
        wires=range(10),
        opt_params=OptParams(
            max_fidelity_loss=0.1,
            basis_gates=["id", "rx", "ry", "rz", "cx"],
            api_key="<your api key>"
        )
    )
    return qml.state()

print(qml.draw(circuit, level="device", max_length=100)(zero.tolist()))
Quantum-Classical Data Handling Stack
Data Upload, Storage & Processing Software Solution

Subscribe to our newsletter

Stay updated with the latest articles, tutorials, and insights from our team. We'll never spam your inbox.