(Apologies in advance for being a complete Ocaml newbie!) I've done all the requisite profiling and thought fairly deeply about the efficiency of my Python code, but am still going to have to speed up the innermost guts of what I am doing. Essentially, I need to pass a list of 6-tuples containing only integers to my new sadly necessary super-fast compiled language function which i am not looking forward to writing:
input: [(1,2,3,4,5,6), (7,8,9,10,11,12),...] and after much thrashing of processor resources, return data which looks like this to the Python calling environment: output: [( (1, 2), (1,), (12,), (13), (1, 7, 11), (9,) ), ( another nested tuple like preceding one ), .... ] Each member of the returned list is a tuple containing six tuples, and each of those six tuples has at least one integer member. It would also be acceptable for the return values to be entirely nested lists instead of having the two innermost sequence types as tuples. Ocaml is certainly going to be fast enough, and I'm sufficiently tired of C++ and especially STL compiler error messages to want to learn something new for when I have a need for speed. Essentially the algorithm I am going to speed up requires no high level data structures more complex than integer set and a vector which can contain objects encapsulating an array or tuple of the aforementioned integer sets plus one or two integer variables. All this should be within my capability to pick up fairly quickly despite my total ignorance of Ocaml, I hope :) Anyway, I can probably very quickly figure out some hacked way to get the data from Python into my function given that in the worst case I could take advantage of the knowledge that each input tuple always has 6 elements, and simply pass in a big array of ints. Yes, I know this is a bit retarded, but I'm talking worst case assuming on very tight schedule and no time to delve deeply into SWIG or whatever. Similarly it wouldn't be too difficult to return the result as the mother all of all strings which i could then parse fairly easily. However, I hope someone reading this will be able to tell me that I'm being a total pessimist and that in fact it isn't very difficult to do what I want to do using SWIG or some other interface method. I'm not asking for a complete solution, more like some general pointers from someone who has actually done something similar before. After that I'll RTFM and won't ask too many more annoying questions. Promise! :) TIA as the guts instead of C++, I'd be happy to know about it. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "ocaml-developer" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/ocaml-developer?hl=en For other OCaml forums, see http://caml.inria.fr/resources/forums.en.html -~----------~----~----~----~------~----~------~--~---
