ind = (linspace(0, m - 1, m) % mult_factor) == 0 alpha1 = alpha[ind] phi1 = phi[ind] print "h ---------------" h = real(ifft(exp(alpha1 + jay * phi1), n)) print h print print ">> Now we'll generate C code and compile it with C++ compiler." print raw_input("press ENTER to generate C code and save it....") p.dims = {'m': m, 'n': n} # only specify *some* of the dimensions p.codegen("C") p.save("fir_lowpass") raw_input("press ENTER to compile the test C++ program....") PATH_TO_EXAMPLES = "../../examples" os.chdir("fir_lowpass") shutil.copyfile(PATH_TO_EXAMPLES + "/fir_lowpass.cpp", "fir_lowpass.cpp") print "Running make...." subprocess.call(["make"]) if platform.system() == 'Linux': cmd = [ "c++", "-O3", "fir_lowpass.cpp", "-L%s" % ECOS_PATH, "-I%s/include" % ECOS_PATH, "-I%s/external/SuiteSparse_config" % ECOS_PATH, "-lecos", "-lm", "-lrt", "fir_lowpass.o", "qcml_utils.o", "-o", "fir_lowpass" ]
ind = (linspace(0,m-1,m) % mult_factor) == 0 alpha1 = alpha[ind] phi1 = phi[ind] print "h ---------------" h = real(ifft(exp(alpha1+jay*phi1),n)) print h print print ">> Now we'll generate C code and compile it with C++ compiler." print raw_input("press ENTER to generate C code and save it....") p.dims = {'m': m, 'n': n} # only specify *some* of the dimensions p.codegen("C") p.save("fir_lowpass") raw_input("press ENTER to compile the test C++ program....") PATH_TO_EXAMPLES = "../../examples" os.chdir("fir_lowpass") shutil.copyfile(PATH_TO_EXAMPLES + "/fir_lowpass.cpp", "fir_lowpass.cpp") print "Running make...." subprocess.call(["make"]) if platform.system() == 'Linux': cmd = ["c++", "-O3", "fir_lowpass.cpp", "-L%s" % ECOS_PATH, "-I%s/include" % ECOS_PATH, "-I%s/external/SuiteSparse_config" % ECOS_PATH, "-lecos", "-lm", "-lrt", "fir_lowpass.o", "qcml_utils.o", "-o","fir_lowpass"] else: cmd = ["c++", "-O3", "fir_lowpass.cpp", "-L%s" % ECOS_PATH,
print s raw_input("press ENTER to parse....") p = QCML(debug=True) p.parse(s) raw_input("press ENTER to canonicalize....") p.canonicalize() raw_input("press ENTER to solve the problem....") res = p.solve() raw_input("press ENTER to generate C code and save it....") p.codegen("C") print p.prob2socp.source p.save("lasso") raw_input("press ENTER to write the test C program....") c_template = """ #include <stdio.h> #include "lasso.h" #include "ecos.h" int read_file(const char * file, void *x, size_t size, size_t num) { FILE *f; f = fopen(file, "rb"); if (!f) { printf("Unable to open %%s!\\n", file); return 1;
""" print s raw_input("press ENTER to parse....") p = QCML(debug=True) p.parse(s) raw_input("press ENTER to canonicalize....") p.canonicalize() raw_input("press ENTER to solve the problem....") res = p.solve() raw_input("press ENTER to generate C code and save it....") p.codegen("C") p.save("lasso") raw_input("press ENTER to write the test C program....") c_template = """ #include <stdio.h> #include "lasso.h" #include "ecos.h" int read_file(const char * file, void *x, size_t size, size_t num) { FILE *f; f = fopen(file, "rb"); if (!f) { printf("Unable to open %%s!\\n", file); return 1;