[Ocaml and C] Passing Arrays and Matrices of floats from Ocaml to C and back
 OdalricAmbrym Maillard
[
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:  20100304 (11:07) 
From:  OdalricAmbrym Maillard <odalricambrym.maillard@g...> 
Subject:  [Ocaml and C] Passing Arrays and Matrices of floats from Ocaml to C and back 
<camllist@inria.fr>, Hello, I have the following problem : I wan to use a Leastsquares Regression solver written in C in a program written in OCaml. I have something like this in the Ocaml program, * let beta = solve_olsr psi_matrix y_train in ...* where psi_matrix is built using Array.make_matrix and y_train by Array.make The dimensions are KxN for psi_matrix and N for y_train, and the output beta should be a vector of length K (built with Array.make etc). I have a C function with the following signature : * void olsr(int rows, int columns, double **matrix_of_data, double *vector_of_data, double ** vector_of_coefficients)* Thus, I need to create a stub function, that will lok like this *CAMLValue solve_olsr(value ...,value...) { CAMLparam... CAMLReturn ... }* My problem is the following : how do proceed since the parameters I need to transmt are vectors or matrices of float (for Caml, i.e. double for C), and not just integers or floats ? I really do not know how to transfer arrays and matrix of floats from Caml to C, and back. It would be great to have an answer. Thank you, OdalricAmbrym