Mex with Function Pointers?

3 views (last 30 days)
Sam Butler
Sam Butler on 21 Sep 2013
Answered: Sam Butler on 20 Nov 2013
I want to build most of my code in MatLab, but there is one routine that needs to be sped up in C++ (and made to use the GPU; highly parallel problem). The thing is, that problem requires a function pointer.
If I use mex "naively", passing in a function handle to the C interface, can I access this function from C or are there known issues with doing this?
(If it makes a difference, the function was defined using the f = @(x,y) sin(x).*cos(y); syntax for defining functions.)

Answers (1)

Sam Butler
Sam Butler on 20 Nov 2013
I got this code to work properly using a mix of C++ objects and MatLab objects, by tracking the function pointer's 64-bit integer value in MatLab and having the MatLab class extend handle (so it gets deleted automatically, to call the C++ code to delete).

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!