epiqc / ScaffCC

Compilation, analysis and optimization framework for the Scaffold quantum programming language.
BSD 2-Clause "Simplified" License
188 stars 53 forks source link

About the CTQG part in the paper #45

Open sqrta opened 3 years ago

sqrta commented 3 years ago

Is the CTQG(CLASSICAL-TO-QUANTUMGATE CONVERSION) part proposed in the paper available now? I want to transform some simple classical functions into the quantum circuit but do not find doc for the CTQG. The example code in the paper

#define M 100
scaff_module main_ctqg(qint[16] sum, qint[16] i, qint[16] n){
int control_i;
$ i := 1;
$ sum := 0;
for (control_i = 1; control_i <= M; control_i++) {
$if (i <= n)
$ sum += i;
$endif
$ i += 1;
}

cannot be compiled by current ScaffCC.

epiqc commented 3 years ago

CTQG was written by IBM and we did not have permission to open source it. It has been replaced by RKQC, which should have similar functionality.


Fred Chong Seymour Goodman Professor Department of Computer Science University of Chicago http://people.cs.uchicago.edu/~ftchong/

Lead-PI, EPiQC, an NSF Expedition in Computing http://epiqc.cs.uchicago.edu/

On Fri, Jan 8, 2021 at 2:25 AM sqrta notifications@github.com wrote:

Is the CTQG(CLASSICAL-TO-QUANTUMGATE CONVERSION) part proposed in the paper available now? I want to transform some simple classical functions into the quantum circuit but do not find doc for the CTQG. The example code in the paper

define M 100

scaff_module main_ctqg(qint[16] sum, qint[16] i, qint[16] n){ int control_i; $ i := 1; $ sum := 0; for (control_i = 1; control_i <= M; control_i++) { $if (i <= n) $ sum += i; $endif $ i += 1; }

cannot be compiled by current ScaffCC.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/epiqc/ScaffCC/issues/45, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEVLUCTLXRKWEZH3EQVRCNLSY2GYPANCNFSM4VZ6EZKQ .


EPiQC-admin mailing list EPiQC-admin@mailman.cs.uchicago.edu https://mailman.cs.uchicago.edu/mailman/listinfo/epiqc-admin

sqrta commented 3 years ago

Thanks. After I build the RKQC and run the hello world example in the terminal

./rkqc src/examples/e001_hello_world.cpp 

It prints out an error

Compiling src/examples/e001_hello_world
./src/examples
Building RKQC
CMake Error at examples/CMakeLists.txt:2 (add_executable):
Done.
Running src/examples/e001_hello_world
./rkqc: line 34: build/examples/src/examples/e001_hello_world: No such file or directory
Cleaning Output

The file examples/CMakeLists.txt is

macro(add_test ARG1)
    add_executable( ${ARG1} ${ARG1}.cpp )
    target_link_libraries( ${ARG1} ${ARGN} )
    install( TARGETS ${ARG1} DESTINATION ${CMAKE_INSTALL_PREFIX} )
endmacro(add_test)
add_test( src/examples/e001_hello_world revkit_core boost_system boost_filesystem boost_regex boost_signals )

My cmake is in version 3.5.1.