| (* 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 |
| 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 ()) |