Compilation, analysis and optimization framework for the Scaffold quantum programming language.
NOTE: module
keyword is now scaffold_module
.
Release version -v4.0
Release version -v3.1
Release version -v3.0-alpha
This release includes two major infrastructure changes: precision control for rotation decompositions and full implementation of the afree() instruction through all of the compilation stages.
Previously the rotation decomposition pass did not allow for rotation precision to be specified, which has now been incorporated into the Rotations.cpp pass in the Transforms directory.
Afree() was implemented previously as a pass-through instruction, and now compilation will preserve the instruction and apply it to all bits contained in a pre-allocated quantum register. Afree now takes two parameters, the first is the base index of a quantum register, and the second is the size of the register to be freed. The instruction flows through to flat QASM as needed.
Introduced afree() patch. Scaffold programs written with instances of the afree() instruction previously encountered compilation errors when the circuits were executed to output flat QASM code. The patch corrects this case, where now the instruction is removed prior to final circuit generation.
Scaffold Release v2.0
New features include: OS X build available on the ScaffCC_OSX branch, abit data types representing ancilla qubits, afree() function freeing ancilla qubits, reverse() function reversing the computation of another function RKQC implementation inlined into new LLVM ModulePass support for generation of QX Quantum Computer Simulator input files
All of these changes are written up in the changelog.txt, as well as in the documentation README.md