This folder contains examples of how to use the Kirin library. Each example is a standalone project that can be run independently.
simple.py: A simple example that demonstrates how to create a simple Kirin dialect group and its kernel.food: A more sophisticated example but without any domain specifics. It demonstrates how to create a new Kirin dialect and combine it with existing dialects with custom analysis and rewrites.pauli: An example that implements a dialect with rewrites that simplifies products of Pauli matrices.
- bloqade.qasm2: This is an eDSL for quantum computing that uses Kirin to define an eDSL for the Quantum Assembly Language (QASM) 2.0. It demonstrates how to create multiple dialects using Kirin, run custom analysis and rewrites, and generate code from the dialects (back to QASM 2.0 in this case).
- bloqade.stim: This is an eDSL for quantum computing that uses Kirin to define an eDSL for the STIM language. It demonstrates how to create multiple dialects using Kirin, run custom analysis and rewrites, and generate code from the dialects (back to Stim in this case).
- bloqade.qBraid: This example demonstrates how to lower from an existing representation into the Kirin IR by using the visitor pattern.
- bloqade.analysis: This directory contains examples of how to write custom analysis passes using Kirin for quantum computing.