Source file arb__c_generated_functions__Function_description__Function.ml

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
module CI = Cstubs_internals

external arb_stubs_1_acb_init : _ CI.fatptr -> unit = "arb_stubs_1_acb_init" 

external arb_stubs_2_acb_clear : _ CI.fatptr -> unit
  = "arb_stubs_2_acb_clear" 

external arb_stubs_3_mag_init : _ CI.fatptr -> unit = "arb_stubs_3_mag_init" 

external arb_stubs_4_mag_clear : _ CI.fatptr -> unit
  = "arb_stubs_4_mag_clear" 

external arb_stubs_5_arf_init : _ CI.fatptr -> unit = "arb_stubs_5_arf_init" 

external arb_stubs_6_arf_clear : _ CI.fatptr -> unit
  = "arb_stubs_6_arf_clear" 

external arb_stubs_7_arb_init : _ CI.fatptr -> unit = "arb_stubs_7_arb_init" 

external arb_stubs_8_arb_clear : _ CI.fatptr -> unit
  = "arb_stubs_8_arb_clear" 

external arb_stubs_9_acb_rel_accuracy_bits : _ CI.fatptr -> Signed.long
  = "arb_stubs_9_acb_rel_accuracy_bits" 

external arb_stubs_10_arf_get_fmpz_fixed_si
  : _ CI.fatptr -> _ CI.fatptr -> Signed.long -> bool
  = "arb_stubs_10_arf_get_fmpz_fixed_si" 

type 'a result = 'a
type 'a return = 'a
type 'a fn =
 | Returns  : 'a CI.typ   -> 'a return fn
 | Function : 'a CI.typ * 'b fn  -> ('a -> 'b) fn
let map_result f x = f x
let returning t = Returns t
let (@->) f p = Function (f, p)
let foreign : type a b. string -> (a -> b) fn -> (a -> b) =
  fun name t -> match t, name with
| Function
    (CI.Pointer _,
     Function
       (CI.Pointer _,
        Function (CI.Primitive CI.Long, Returns (CI.Primitive CI.Bool)))),
  "arf_get_fmpz_fixed_si" ->
  (fun x1 x3 x5 ->
    let CI.CPointer x4 = x3 in
    let CI.CPointer x2 = x1 in arb_stubs_10_arf_get_fmpz_fixed_si x2 x4 x5)
| Function (CI.Pointer _, Returns (CI.Primitive CI.Long)),
  "acb_rel_accuracy_bits" ->
  (fun x6 -> let CI.CPointer x7 = x6 in arb_stubs_9_acb_rel_accuracy_bits x7)
| Function (CI.Pointer _, Returns CI.Void), "arb_clear" ->
  (fun x8 -> let CI.CPointer x9 = x8 in arb_stubs_8_arb_clear x9)
| Function (CI.Pointer _, Returns CI.Void), "arb_init" ->
  (fun x10 -> let CI.CPointer x11 = x10 in arb_stubs_7_arb_init x11)
| Function (CI.Pointer _, Returns CI.Void), "arf_clear" ->
  (fun x12 -> let CI.CPointer x13 = x12 in arb_stubs_6_arf_clear x13)
| Function (CI.Pointer _, Returns CI.Void), "arf_init" ->
  (fun x14 -> let CI.CPointer x15 = x14 in arb_stubs_5_arf_init x15)
| Function (CI.Pointer _, Returns CI.Void), "mag_clear" ->
  (fun x16 -> let CI.CPointer x17 = x16 in arb_stubs_4_mag_clear x17)
| Function (CI.Pointer _, Returns CI.Void), "mag_init" ->
  (fun x18 -> let CI.CPointer x19 = x18 in arb_stubs_3_mag_init x19)
| Function (CI.Pointer _, Returns CI.Void), "acb_clear" ->
  (fun x20 -> let CI.CPointer x21 = x20 in arb_stubs_2_acb_clear x21)
| Function (CI.Pointer _, Returns CI.Void), "acb_init" ->
  (fun x22 -> let CI.CPointer x23 = x22 in arb_stubs_1_acb_init x23)
| _, s ->  Printf.ksprintf failwith "No match for %s" s


let foreign_value : type a. string -> a Ctypes.typ -> a Ctypes.ptr =
  fun name t -> match t, name with
| _, s ->  Printf.ksprintf failwith "No match for %s" s