package fadbadml

  1. Overview
  2. Docs

Source file fadbad.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
(**************************************************************************)
(*                                                                        *)
(*                                FADBADml                                *)
(*                                                                        *)
(*           OCaml port by François Bidet and Ismail Bennani              *)
(*     Based on FADBAD++, written by Ole Stauning and Claus Bendtsen      *)
(*                                                                        *)
(*                          Copyright 2019-2020                           *)
(*                                                                        *)
(*   This file is distributed under the terms of the CeCILL-C license.    *)
(*                                                                        *)
(**************************************************************************)

(** Interface to library FADBADml *)

(** {1 Basic types} *)

(** Type of a module of operators *)
module type OpS = Types.OpS

(** Type of a module of operators over ordered elements *)
module type OrderedOpS = Types.OrderedOpS

(** {1 Basic operators} *)

(** Operators over float elements *)
module OpFloat = Op.Float

(** Operators over float elements, including comparison operators *)
module OrderedFloat = Op.OrderedFloat

(** {1 Forward Automatic Differentiation (FAD)} *)

(** Construct a FAD-like module from a module of operators *)
module F(T : OpS) = Fadiff.FTypeName(T)

(** Construct a FAD-like module from a module of operators over ordered
    elements *)
module OrderedF(T : OrderedOpS) = Fadiff.OrderedFTypeName(T)

(** {1 Backward Automatic Differentiation (BAD)} *)

(** Construct a BAD-like module from a module of operators *)
module B(T : OpS) = Badiff.BTypeName(T)

(** Construct a BAD-like module from a module of operators over ordered
    elements *)
module OrderedB(T : OrderedOpS) = Badiff.OrderedBTypeName(T)

(** {1 Automatic Taylor Expansion (TAD)} *)

(** Construct a TAD-like module from a module of operators *)
module T (T : OpS) = Tadiff.TTypeName(T)

(** {1 Low level implementation} *)

module Fadiff = Fadiff
module Badiff = Badiff
module Tadiff = Tadiff
OCaml

Innovation. Community. Security.