Qulacs backend

The Qulacs backend (QulacsExecutor) provides fast C++ statevector simulation.

pip install "qc-executor[qulacs]"

Basic usage

from qc_executor import Executor, QuantumCircuit, QuantumOperator, Parameters

# 1. Build a parametrized circuit
x = Parameters("x", 1)
p = Parameters("p", 2)

qc = QuantumCircuit(2)
qc.h(0)
qc.ryy(0, 1, p[0] * x[0])

# 2. Build a parametrized observable
p_obs = Parameters("p_obs", 2)
observable = QuantumOperator(["ZI", "IZ"], [p_obs[0], p_obs[1]])

# 3. Create the executor and transpile the circuit
executor = Executor.create("qulacs", seed=0, shots=10000)
qulacs_circuit = executor.transpile_circuit(qc)

# 4. Expectation value
result = executor.expectation_value(
    qulacs_circuit,
    observable,
    x=[0.1],
    p=[0.3],
    p_obs=[0.5, 0.6],
)
print("Expectation value:", result)

# 5. Gradients
grads = executor.expectation_value_derivatives(
    qulacs_circuit,
    observable,
    "x",
    "p",
    "p_obs",
    x=[0.1],
    p=[0.3],
    p_obs=[0.5, 0.6],
)
print(grads)

# 6. Statevector and samples
executor.statevector(qulacs_circuit, x=[0.8], p=[0.5])
executor.sample(qulacs_circuit, x=[0.8], p=[0.5])

Configuration

QulacsExecutor is a local simulator and takes only the common executor options (shots, seed, log_file, log_level, caching, cache_dir, max_cache_size). See QulacsExecutor for details.