genQC logo genQC
  • Overview
  • Get Started
  • Tutorials
  • API Reference
  • Research
  • Code Repository
  1. Platform
  2. Backends
  3. Pennylane circuits backend

API Reference

  • Modules Overview
  • Release notes

  • Benchmark
    • Compilation benchmark
  • Dataset
    • Dataset balancing
    • Cached dataset
    • Quantum circuit dataset
    • Config dataset
    • Dataset helper functions
    • Mixed cached dataset
  • Inference
    • Evaluation metrics
    • Evaluation helper
    • Sampling functions
  • Models
    • Config model
    • Frozen OpenCLIP
    • Layers
    • Position encodings
    • Conditional qc-UNet
    • Encoder for unitaries
    • Clip
      • Frozen OpenCLIP
      • Unitary CLIP
    • Embedding
      • Base embedder
      • Rotational preset embedder
    • Transformers
      • Transformers and attention
      • CirDiT - Circuit Diffusion Transformer
      • Transformers
  • Pipeline
    • Callbacks
    • Compilation Diffusion Pipeline
    • Diffusion Pipeline
    • Diffusion Pipeline Special
    • Metrics
    • Multimodal Diffusion Pipeline
    • Pipeline
    • Unitary CLIP Pipeline
  • Platform
    • Circuits dataset generation functions
    • Circuits instructions
    • Simulation backend
    • Backends
      • Base backend
      • CUDA-Q circuits backend
      • Pennylane circuits backend
      • Qiskit circuits backend
    • Tokenizer
      • Base tokenizer
      • Circuits tokenizer
      • Tensor tokenizer
  • Scheduler
    • Scheduler
    • DDIM Scheduler
    • DDPM Scheduler
    • DPM Scheduler
  • Utils
    • Async functions
    • Config loader
    • Math and algorithms
    • Miscellaneous util

On this page

  • Utils
    • instruction_name_to_pennylane_name
    • ParametrizedPennylaneCircuit
  • Backend
    • CircuitsPennylaneBackend
  • Test
    • genqc <-> backend
  • Report an issue
  • View source
  1. Platform
  2. Backends
  3. Pennylane circuits backend

Pennylane circuits backend

PennyLane based quantum circuit backend.

Utils


source

instruction_name_to_pennylane_name

 instruction_name_to_pennylane_name (name:str)

Maps instruction names to PennyLane names.


source

ParametrizedPennylaneCircuit

 ParametrizedPennylaneCircuit (circuit:pennylane.workflow.qnode.QNode,
                               params:torch.Tensor)

Backend


source

CircuitsPennylaneBackend

 CircuitsPennylaneBackend ()

A backend for PennyLane.

Test

from genQC.platform.tokenizer.circuits_tokenizer import CircuitTokenizer

genqc <-> backend

tensor = torch.tensor([
                [3, 0, -2, 0, 1],
                [0, 0,  2, 0, 1],
                [0, 3, -2, 3, 0],
            ], dtype=torch.int32)

params_tensor = torch.tensor([       # ... [max_params, time]
                    [1, 1, 1, 1,  0.9],
                ])

vocabulary   = {"cp":1, "ccx":2, "rx":3}
tokenizer    = CircuitTokenizer(vocabulary)
instructions = tokenizer.decode(tensor, params_tensor)

instructions.print()
CircuitInstruction(name='rx', control_nodes=[], target_nodes=[0], params=[12.566370964050293])
CircuitInstruction(name='rx', control_nodes=[], target_nodes=[2], params=[12.566370964050293])
CircuitInstruction(name='ccx', control_nodes=[0, 2], target_nodes=[1], params=[12.566370964050293])
CircuitInstruction(name='rx', control_nodes=[], target_nodes=[2], params=[12.566370964050293])
CircuitInstruction(name='cp', control_nodes=[], target_nodes=[0, 1], params=[11.9380521774292])
backend = CircuitsPennylaneBackend()

qc = backend.genqc_to_backend(instructions, flip_qubit_order=False)
backend.draw(qc);

Back to top
CUDA-Q circuits backend
Qiskit circuits backend
 

Copyright 2025, Florian Fürrutter

  • Report an issue
  • View source