From: Marco A. V. G. <mar...@uc...> - 2014-02-21 13:00:03
|
Hi guys, This is not a question about details but a 'more general' consideration. I have a C++ shared library (mylib.so) that I want to interface with several languages (Python, R, Octave/Matlab, Ruby, Java... ). The library uses Armadillo for matrix algebra, and its functions receive and return arma::mat objects. arma::mat myfunc (arma::mat arg1); Looking for an easy way of interfacing with many languages at once, I am considering to add a 'facade' to avoid armadillo types, in this way: void myfunc_facade (double* IN_array, int rows, int cols, double* OUT_array, int* OUT_rows, int* OUT_cols){ // BUILD THE ARMA::MAT OBJECT***************************** arma::mat in_mat = build_mat(IN_array, rows, cols); // CALL THE ORIGINAL FUNCTION***************************** arma::mat out_mat = myfunc(in_mat); // RETURNTHE DATA**************************************** OUT_array = out_mat.memptr(); *OUT_cols= out_mat.n_cols; *OUT_rows = out_mat.n_rows; return; } Does it make sense to you? Thank you very much! Marco Villegas |