28 #include "casadi_misc.hpp"
29 #include "importer.hpp"
30 #include "serializer.hpp"
31 #include "casadi_os.hpp"
32 #include "casadi_meta.hpp"
37 uout() << s << std::flush;
41 uerr() << s << std::flush;
45 const std::string& op,
48 std::string signature =
"f";
50 std::string op_full = op +
"__" + signature;
53 casadi_error(
"Transformation '" + op +
"' not defined in library '" + name +
54 "' for the following signature: " + signature);
64 std::string s = ss.
encode();
65 const char* out = t(api_version, casadi_version.c_str(), s.c_str(),
68 casadi_error(
"Transformation '" + op +
"' defined in library '" + name +
80 const char* external_transform_test_success__f(
char api_version,
const char* casadi_version,
83 if (api_version != 0) {
84 cb_stderr(
"version mismatch");
91 std::string msg =
"passed options: " +
str(opts) +
"\n";
93 cb_stdout(msg.c_str());
95 cb_stdout(
"Doing a lot of stuff...\n");
96 cb_stderr(
"Warning here...\n");
100 static std::string s = ss.
encode();
105 const char* external_transform_test_fail__f(
char api_version,
const char* casadi_version,
108 cb_stdout(
"This is going to fail\n");
109 cb_stderr(
"Fatal error\n");
Function unpack_function()
signal_t get_function(const std::string &symname)
Get a function pointer for numerical evaluation.
void pack(const Sparsity &e)
std::string encode()
Returns a string that holds the serialized objects.
void callback_stdout(const char *s)
void(* external_print_callback_t)(const char *s)
const char *(* external_transform_t)(char api_version, const char *casadi_version, const char *in, external_print_callback_t cb_stdout, external_print_callback_t cb_stderr)
std::string str(const T &v)
String representation, any type.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
void callback_stderr(const char *s)
Function external_transform(const std::string &name, const std::string &op, const Function &f, const Dict &opts)
Apply a transformation defined externally.