git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5235 626c5289-ae23-0410-ae9c-e8d60b6d4f22
35 lines
771 B
OCaml
35 lines
771 B
OCaml
(* This example was mostly lifted from the guile example directory *)
|
|
|
|
open Swig
|
|
open Example
|
|
|
|
let with_vector v f =
|
|
for i = 0 to ((v -> size()) as int) - 1 do
|
|
f v i
|
|
done
|
|
|
|
let print_DoubleVector v =
|
|
begin
|
|
with_vector v
|
|
(fun v i ->
|
|
print_float ((v '[i to int]) as float) ;
|
|
print_string " ") ;
|
|
print_endline
|
|
end
|
|
|
|
(* Call average with a Ocaml array... *)
|
|
|
|
let v = new_DoubleVector '()
|
|
let rec fill_dv v x =
|
|
if x < 0.0001 then v else
|
|
begin
|
|
v -> push_back ((x to float)) ;
|
|
fill_dv v (x *. x)
|
|
end
|
|
let _ = fill_dv v 0.999
|
|
let _ = print_DoubleVector v ; print_endline ""
|
|
let u = new_IntVector '()
|
|
let _ = for i = 1 to 4 do
|
|
u -> push_back ((i to int))
|
|
done
|
|
let _ = (print_float ((_average u) as float) ; print_newline ())
|