quilc icon indicating copy to clipboard operation
quilc copied to clipboard

The optimizing Quil compiler.

Results 127 quilc issues
Sort by recently updated
recently updated
newest added

Adds four options to the RPC entry-point. - enable-approximate-compilation - compressor-passes - rewriting-peephole-size - global-queue-tolerance-threshold The options are modeled after the implementation of state-aware, setting the corresponding global variables using...

This PR removes the need to load LAPACK for CL-QUIL. Depends on: https://github.com/quil-lang/magicl/pull/171

There's a wonderful [paper](https://arxiv.org/abs/1909.05270) by Raban Iten, David Sutter, Stefan Woerner on compressor-like functionality for quantum circuits. At minimum, we should review it. At maximum, we should implement it. What...

enhancement
valves-and-cogs
proposal/discussion

Please see the log here: [quilc-failure.txt](https://github.com/quil-lang/quilc/files/9226883/quilc-failure.txt) Version: 1.26.0 FreeBSD 13.1

Passes all tests, and produces output just as good as the original implementation on some basic benchmarks I ran. (commits should probably be squashed)

``` TEST-MEMOIZE-PAULI-BASIS-MATRICES Unhandled FIASCO::FAILED-ASSERTION in thread #: Test assertion failed when running TEST-MEMOIZE-PAULI-BASIS-MATRICES: Binary predicate (>= X Y) failed. x: NON-MEMO-TIMES => 7 y: (* MEMO-TIMES MIN-SLOW-TO-FAST-RATIO) => 8 Backtrace...

@notmgsk reports that `CONTROLLED RX(param) 0 1` can't be compiled when `param` is a memory reference. Should `uncontrol-rotation` from modifiers.lisp be handling this?

enhancement
🥧SWAP

I would like a few log levels, between noise-stream and nothing. Sometimes I want to see the progress of compilation after the addresser has been warmed, when the addresser has...

A single `RY` gate translates to two `RX` gates, when we could get away with just one. ``` QUIL> (print-parsed-program (compiler-hook (parse-quil "RY(pi) 0") (build-nq-linear-chip 2))) RZ(2.2216554087607694) 0 # Entering...

enhancement
🥧SWAP

You can now do e.g. `(copy-instance SOME-BINARY-CLASSICAL-INSTRUCTION :left NEW-LEFT-OPERAND)` to make a copy of `SOME-BINARY-CLASSICAL-INSTRUCTION` that has its `left` slot overwritten with `NEW-LEFT-OPERAND`. I suspect there are plenty of places...