54 std::string script = std::get<std::string>(args[0]);
55 std::vector<double> pargs;
56 for(
size_t i = 1; i < args.size(); i++) {
57 pargs.push_back(std::get<double>(args[i]));
62 object main_module =
import(
"__main__");
63 object main_namespace = main_module.attr(
"__dict__");
65 boost::python::class_<std::vector<double> >(
"PyVec")
66 .def(boost::python::vector_indexing_suite<std::vector<double> >());
67 main_namespace[
"arguments"] = pargs;
69 object ignored = exec_file(script.c_str(), main_namespace);
70 double res = extract<double>(main_namespace[
"result"]);
73 return std::make_tuple(res,
true);
75 }
catch (error_already_set) {
77 return std::make_tuple(0.0,
false);