On 07/03/2014 04:14 AM, Llelan D. wrote:
A common task I've coded is to run multiple implementations of the same function head-to-head to profile their effectiveness. An example would be a competition in which each of two implementations provide a response for each match. The usual way in other interpreted languages is to have the implementers write a source file implementing the same function prototype (same name, arguments, and return type). You load each one in their own namespace and run each for each match.

Is there a way to load the functions in two .sci files so that the second does not clobber the first. I can find no system for qualifying function names or creating namespaces in Scilab. The files can not be run in-place (without persisting in the session) since the exec() function only loads the functions and does not run any. Using statements outside of any function does no good as additional function definitions might be required in the file to implement their algorithm.

I've thought of using exec() on one file, qualifying the loaded function names with <unique competitor name>_<function name> with assignments and clearing the original function variables (which works manually), and doing the same for the second file but I can find no way of getting a list of functions loaded by the last exec().

I'm either missing something really obvious or am stymied. Any help would be greatly appreciated.
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users


I am not sure that I truly understand your problem, but maybe what follows can be helpful if you can run your two implementation sequentially: - functions are first class citizens in scilab which mean you can copy them like normal variables:
myfunc=sin;
disp("myfunc(pi/2)="+string(myfunc(%pi/2)));
myfunc=cos;
disp("myfunc(pi/2)="+string(myfunc(%pi/2)));

Could this be used to solve your problem by renaming the implementation to test on the fly?

Antoine
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

Reply via email to