File: runme.ml

package info (click to toggle)
swig1.3 1.3.29-2.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 23,096 kB
  • ctags: 12,521
  • sloc: cpp: 34,881; ansic: 27,466; python: 8,393; makefile: 4,838; yacc: 4,816; java: 4,629; sh: 3,594; cs: 3,175; ruby: 2,678; perl: 2,349; lisp: 1,984; tcl: 1,243; php: 1,026; ml: 823
file content (35 lines) | stat: -rw-r--r-- 771 bytes parent folder | download | duplicates (19)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
(* 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 ())