[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Matthieu Dubuget <matthieu.dubuget@g...> |
| Subject: | Re: [Caml-list] nonlinear fit function binding |
Thanks for your reply, Rabih. 2007/5/31, RABIH.ELCHAAR@sgam.com <RABIH.ELCHAAR@sgam.com>: > > I did a wrapping of the levmar library. > Unfortunately, since I am to use this in a commercial product, and I was not able (yet ?) to convince my boss to release the sources, I can't use with levmar, wich is GPLed... I may switch to cminpack. But i think this is not related to my current question. The approach I chose is to allocate bigarrays from Caml, and pass them to > the main C function, along with the function f. > Does it mean that each time f function is called by the minimization, the C wrappers has to copy the params C array into your Bigarray pre-allocated storage place? That's why I choosed to leave the C array untouched and wrap a Bigarray around it (should not be a big amount of memory). Am I wrong in going this way? In the main function, I register f and all the bigarrays as global roots, > and then call as many times the c sub function to compute the minimization. I do not understand this part. f is passed to the main (C) function from OCaml: why do you need to register it as a global root? Same question for the Bigarrays? Does it mean that else, nothing in OCaml world would point to them? > > Feel free to ask for more precisions if needed > > Hope this helps. > Surely. I really need to acquire a better understanding of GC and C interface in OCaml. Really, I do not understand what happens to those C allocated Bigarrays... Salutations Matthieu