package owl-base

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file owl_algodiff_ops_builder_sig.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# 1 "src/base/algodiff/owl_algodiff_ops_builder_sig.ml"
module type Sig = sig
  type elt
  type arr
  type t
  type op

  val op_siso
    :  ff:(t -> t)
    -> fd:(t -> t)
    -> df:(t -> t -> t -> t)
    -> r:(t -> op)
    -> t
    -> t
  (** single input single output operation *)

  val op_sipo
    :  ff:(t -> t * t)
    -> fd:(t -> t * t)
    -> df:(t -> t -> t -> t)
    -> r:(t * (t ref * t ref) * (t ref * t ref) -> op)
    -> t
    -> t * t
  (** single input pair outputs operation *)

  val op_sito
    :  ff:(t -> t * t * t)
    -> fd:(t -> t * t * t)
    -> df:(t -> t -> t -> t)
    -> r:(t * (t ref * t ref * t ref) * (t ref * t ref * t ref) -> op)
    -> t
    -> t * t * t
  (** single input triple outputs operation *)

  val op_siao
    :  ff:(t -> t array)
    -> fd:(t -> t array)
    -> df:(t -> t -> t -> t)
    -> r:(t * t ref array * t ref array -> op)
    -> t
    -> t array
  (** single input array outputs operation *)

  val op_piso
    :  ff:(t -> t -> t)
    -> fd:(t -> t -> t)
    -> df_da:(t -> t -> t -> t -> t)
    -> df_db:(t -> t -> t -> t -> t)
    -> df_dab:(t -> t -> t -> t -> t -> t)
    -> r_d_d:(t -> t -> op)
    -> r_d_c:(t -> t -> op)
    -> r_c_d:(t -> t -> op)
    -> t
    -> t
    -> t
  (** pair inputs single output operation *)

  module type Siso = sig
    val label : string
    val ff_f : elt -> t
    val ff_arr : arr -> t
    val df : t -> t -> t -> t
    val dr : t -> t -> t ref -> t
  end

  val build_siso : (module Siso) -> t -> t

  module type Sipo = sig
    val label : string
    val ff_f : elt -> t * t
    val ff_arr : arr -> t * t
    val df : t -> t -> t -> t
    val dr : t -> t -> t ref * t ref -> t ref * t ref -> t
  end

  val build_sipo : (module Sipo) -> t -> t * t

  module type Sito = sig
    val label : string
    val ff_f : elt -> t * t * t
    val ff_arr : arr -> t * t * t
    val df : t -> t -> t -> t
    val dr : t -> t -> t ref * t ref * t ref -> t ref * t ref * t ref -> t
  end

  val build_sito : (module Sito) -> t -> t * t * t

  module type Siao = sig
    val label : string
    val ff_f : elt -> t array
    val ff_arr : arr -> t array
    val df : t -> t -> t -> t
    val dr : t -> t -> t ref array -> t ref array -> t
  end

  val build_siao : (module Siao) -> t -> t array

  module type Piso = sig
    val label : string
    val ff_aa : elt -> elt -> t
    val ff_ab : elt -> arr -> t
    val ff_ba : arr -> elt -> t
    val ff_bb : arr -> arr -> t
    val df_da : t -> t -> t -> t -> t
    val df_db : t -> t -> t -> t -> t
    val df_dab : t -> t -> t -> t -> t -> t
    val dr_ab : t -> t -> t -> t ref -> t * t
    val dr_a : t -> t -> t -> t ref -> t
    val dr_b : t -> t -> t -> t ref -> t
  end

  val build_piso : (module Piso) -> t -> t -> t

  module type Aiso = sig
    val label : string
    val ff : t array -> t
    val df : int list -> t -> t array -> t array -> t
    val dr : int list -> t array -> t -> t ref -> (t * t) list
  end

  val build_aiso : (module Aiso) -> t array -> t
end
OCaml

Innovation. Community. Security.