Version française
Home     About     Download     Resources     Contact us    
Browse thread
Documentation request: allocation of bigarrays in C
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Li-Thiao-Té_Sébastien <sayan@c...>
Subject: Re: [Caml-list] Documentation request: allocation of bigarrays in C
Jonathan Roewen wrote:
>>In my case, I want to read a relatively big file (50MB) containing
>>arrays of floats . I use C functions for the raw speed then pass the
>>bigarrays to OCaml to do some reordering of the data, and higher-level
>>processing.
>>
>>I do not open the file in Ocaml then send a string to C for parsing, but
>>rather open the file in C and return the bigarray list to Ocaml. (cf my
>>previous mistake on creating Ocaml lists in C on this mailing-list)
> 
> Does Bigarray.X.map_file not serve the purpose?
> 
Not really. If I am not mistaken, map_file reads a file into a bigarray 
in binary mode. The file format is not as straightforward as that, I 
need to parse strings into floats and output a list of bigarrays 
embedded in a record with additional info. See the following excerpt :
1796.6221 3
1797.4133 250143
1798.0955 2401147
1799.1106 483314
1799.8252 192082
SPEC#: 2   SIZE: 140   TIME: 16.300000   MSLEVEL: 2  PRECURSOR: 531.552002
156.1387 7265
158.9650 1234
161.0317 2536
162.7167 5898
164.6776 12305
165.7509 4636
166.8494 64993
168.6152 35544
169.3650 1798

FYI, this is data from mass spectrometry experiments.

Regards,

-- 
Li-Thiao-Té Sébastien