Reason · Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.

Reason
sig
 val zero : float
 val one : float
 val minus_one : float
 external neg : float -> float = "%negfloat"
 external add : float -> float -> float = "%addfloat"
 external sub : float -> float -> float = "%subfloat"
 external mul : float -> float -> float = "%mulfloat"
 external div : float -> float -> float = "%divfloat"
 external fma : float -> float -> float -> float = "caml_fma_float"
  "caml_fma" [@@unboxed] [@@noalloc]
 external rem : float -> float -> float = "caml_fmod_float" "fmod"
  [@@unboxed] [@@noalloc]
 val succ : float -> float
 val pred : float -> float
 external abs : float -> float = "%absfloat"
 val infinity : float
 val neg_infinity : float
 val nan : float
 val pi : float
 val max_float : float
 val min_float : float
 val epsilon : float
 val is_finite : float -> bool
 val is_infinite : float -> bool
 val is_nan : float -> bool
 val is_integer : float -> bool
 external of_int : int -> float = "%floatofint"
 external to_int : float -> int = "%intoffloat"
 external of_string : string -> float = "caml_float_of_string"
 val of_string_opt : string -> float option
 val to_string : float -> string
 type fpclass =
  Stdlib.fpclass =
   FP_normal
  | FP_subnormal
  | FP_zero
  | FP_infinite
  | FP_nan
 external classify_float : (float [@unboxed]) -> Float.fpclass
  = "caml_classify_float" "caml_classify_float_unboxed" [@@noalloc]
 external pow : float -> float -> float = "caml_power_float" "pow"
  [@@unboxed] [@@noalloc]
 external sqrt : float -> float = "caml_sqrt_float" "sqrt" [@@unboxed]
  [@@noalloc]
 external cbrt : float -> float = "caml_cbrt_float" "caml_cbrt" [@@unboxed]
  [@@noalloc]
 external exp : float -> float = "caml_exp_float" "exp" [@@unboxed]
  [@@noalloc]
 external exp2 : float -> float = "caml_exp2_float" "caml_exp2" [@@unboxed]
  [@@noalloc]
 external log : float -> float = "caml_log_float" "log" [@@unboxed]
  [@@noalloc]
 external log10 : float -> float = "caml_log10_float" "log10" [@@unboxed]
  [@@noalloc]
 external log2 : float -> float = "caml_log2_float" "caml_log2" [@@unboxed]
  [@@noalloc]
 external expm1 : float -> float = "caml_expm1_float" "caml_expm1"
  [@@unboxed] [@@noalloc]
 external log1p : float -> float = "caml_log1p_float" "caml_log1p"
  [@@unboxed] [@@noalloc]
 external cos : float -> float = "caml_cos_float" "cos" [@@unboxed]
  [@@noalloc]
 external sin : float -> float = "caml_sin_float" "sin" [@@unboxed]
  [@@noalloc]
 external tan : float -> float = "caml_tan_float" "tan" [@@unboxed]
  [@@noalloc]
 external acos : float -> float = "caml_acos_float" "acos" [@@unboxed]
  [@@noalloc]
 external asin : float -> float = "caml_asin_float" "asin" [@@unboxed]
  [@@noalloc]
 external atan : float -> float = "caml_atan_float" "atan" [@@unboxed]
  [@@noalloc]
 external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
  [@@unboxed] [@@noalloc]
 external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
  [@@unboxed] [@@noalloc]
 external cosh : float -> float = "caml_cosh_float" "cosh" [@@unboxed]
  [@@noalloc]
 external sinh : float -> float = "caml_sinh_float" "sinh" [@@unboxed]
  [@@noalloc]
 external tanh : float -> float = "caml_tanh_float" "tanh" [@@unboxed]
  [@@noalloc]
 external acosh : float -> float = "caml_acosh_float" "caml_acosh"
  [@@unboxed] [@@noalloc]
 external asinh : float -> float = "caml_asinh_float" "caml_asinh"
  [@@unboxed] [@@noalloc]
 external atanh : float -> float = "caml_atanh_float" "caml_atanh"
  [@@unboxed] [@@noalloc]
 external erf : float -> float = "caml_erf_float" "caml_erf" [@@unboxed]
  [@@noalloc]
 external erfc : float -> float = "caml_erfc_float" "caml_erfc" [@@unboxed]
  [@@noalloc]
 external trunc : float -> float = "caml_trunc_float" "caml_trunc"
  [@@unboxed] [@@noalloc]
 external round : float -> float = "caml_round_float" "caml_round"
  [@@unboxed] [@@noalloc]
 external ceil : float -> float = "caml_ceil_float" "ceil" [@@unboxed]
  [@@noalloc]
 external floor : float -> float = "caml_floor_float" "floor" [@@unboxed]
  [@@noalloc]
 external next_after : float -> float -> float = "caml_nextafter_float"
  "caml_nextafter" [@@unboxed] [@@noalloc]
 external copy_sign : float -> float -> float = "caml_copysign_float"
  "caml_copysign" [@@unboxed] [@@noalloc]
 external sign_bit : (float [@unboxed]) -> bool = "caml_signbit_float"
  "caml_signbit" [@@noalloc]
 external frexp : float -> float * int = "caml_frexp_float"
 external ldexp :
  (float [@unboxed]) -> (int [@untagged]) -> (float [@unboxed])
  = "caml_ldexp_float" "caml_ldexp_float_unboxed" [@@noalloc]
 external modf : float -> float * float = "caml_modf_float"
 type t = float
 val compare : Float.t -> Float.t -> int
 val equal : Float.t -> Float.t -> bool
 val min : Float.t -> Float.t -> Float.t
 val max : float -> float -> float
 val min_max : float -> float -> float * float
 val min_num : Float.t -> Float.t -> Float.t
 val max_num : Float.t -> Float.t -> Float.t
 val min_max_num : float -> float -> float * float
 val hash : Float.t -> int
 module Array :
  sig
   type t = floatarray
   val length : Float.Array.t -> int
   val get : Float.Array.t -> int -> float
   val set : Float.Array.t -> int -> float -> unit
   val make : int -> float -> Float.Array.t
   val create : int -> Float.Array.t
   val init : int -> (int -> float) -> Float.Array.t
   val append : Float.Array.t -> Float.Array.t -> Float.Array.t
   val concat : Float.Array.t list -> Float.Array.t
   val sub : Float.Array.t -> int -> int -> Float.Array.t
   val copy : Float.Array.t -> Float.Array.t
   val fill : Float.Array.t -> int -> int -> float -> unit
   val blit : Float.Array.t -> int -> Float.Array.t -> int -> int -> unit
   val to_list : Float.Array.t -> float list
   val of_list : float list -> Float.Array.t
   val iter : (float -> unit) -> Float.Array.t -> unit
   val iteri : (int -> float -> unit) -> Float.Array.t -> unit
   val map : (float -> float) -> Float.Array.t -> Float.Array.t
   val mapi : (int -> float -> float) -> Float.Array.t -> Float.Array.t
   val fold_left : ('a -> float -> 'a) -> 'a -> Float.Array.t -> 'a
   val fold_right : (float -> 'a -> 'a) -> Float.Array.t -> 'a -> 'a
   val iter2 :
    (float -> float -> unit) -> Float.Array.t -> Float.Array.t -> unit
   val map2 :
    (float -> float -> float) ->
    Float.Array.t -> Float.Array.t -> Float.Array.t
   val for_all : (float -> bool) -> Float.Array.t -> bool
   val exists : (float -> bool) -> Float.Array.t -> bool
   val mem : float -> Float.Array.t -> bool
   val mem_ieee : float -> Float.Array.t -> bool
   val sort : (float -> float -> int) -> Float.Array.t -> unit
   val stable_sort : (float -> float -> int) -> Float.Array.t -> unit
   val fast_sort : (float -> float -> int) -> Float.Array.t -> unit
   val to_seq : Float.Array.t -> float Stdlib.Seq.t
   val to_seqi : Float.Array.t -> (int * float) Stdlib.Seq.t
   val of_seq : float Stdlib.Seq.t -> Float.Array.t
   val map_to_array : (float -> 'a) -> Float.Array.t -> 'a array
   val map_from_array : ('a -> float) -> 'a array -> Float.Array.t
   external unsafe_get : Float.Array.t -> int -> float
    = "%floatarray_unsafe_get"
   external unsafe_set : Float.Array.t -> int -> float -> unit
    = "%floatarray_unsafe_set"
  end
 module ArrayLabels :
  sig
   type t = floatarray
   val length : Float.ArrayLabels.t -> int
   val get : Float.ArrayLabels.t -> int -> float
   val set : Float.ArrayLabels.t -> int -> float -> unit
   val make : int -> float -> Float.ArrayLabels.t
   val create : int -> Float.ArrayLabels.t
   val init : int -> f:(int -> float) -> Float.ArrayLabels.t
   val append :
    Float.ArrayLabels.t -> Float.ArrayLabels.t -> Float.ArrayLabels.t
   val concat : Float.ArrayLabels.t list -> Float.ArrayLabels.t
   val sub :
    Float.ArrayLabels.t -> pos:int -> len:int -> Float.ArrayLabels.t
   val copy : Float.ArrayLabels.t -> Float.ArrayLabels.t
   val fill : Float.ArrayLabels.t -> pos:int -> len:int -> float -> unit
   val blit :
    src:Float.ArrayLabels.t ->
    src_pos:int ->
    dst:Float.ArrayLabels.t -> dst_pos:int -> len:int -> unit
   val to_list : Float.ArrayLabels.t -> float list
   val of_list : float list -> Float.ArrayLabels.t
   val iter : f:(float -> unit) -> Float.ArrayLabels.t -> unit
   val iteri : f:(int -> float -> unit) -> Float.ArrayLabels.t -> unit
   val map :
    f:(float -> float) -> Float.ArrayLabels.t -> Float.ArrayLabels.t
   val mapi :
    f:(int -> float -> float) ->
    Float.ArrayLabels.t -> Float.ArrayLabels.t
   val fold_left :
    f:('a -> float -> 'a) -> init:'a -> Float.ArrayLabels.t -> 'a
   val fold_right :
    f:(float -> 'a -> 'a) -> Float.ArrayLabels.t -> init:'a -> 'a
   val iter2 :
    f:(float -> float -> unit) ->
    Float.ArrayLabels.t -> Float.ArrayLabels.t -> unit
   val map2 :
    f:(float -> float -> float) ->
    Float.ArrayLabels.t -> Float.ArrayLabels.t -> Float.ArrayLabels.t
   val for_all : f:(float -> bool) -> Float.ArrayLabels.t -> bool
   val exists : f:(float -> bool) -> Float.ArrayLabels.t -> bool
   val mem : float -> set:Float.ArrayLabels.t -> bool
   val mem_ieee : float -> set:Float.ArrayLabels.t -> bool
   val sort : cmp:(float -> float -> int) -> Float.ArrayLabels.t -> unit
   val stable_sort :
    cmp:(float -> float -> int) -> Float.ArrayLabels.t -> unit
   val fast_sort :
    cmp:(float -> float -> int) -> Float.ArrayLabels.t -> unit
   val to_seq : Float.ArrayLabels.t -> float Stdlib.Seq.t
   val to_seqi : Float.ArrayLabels.t -> (int * float) Stdlib.Seq.t
   val of_seq : float Stdlib.Seq.t -> Float.ArrayLabels.t
   val map_to_array : f:(float -> 'a) -> Float.ArrayLabels.t -> 'a array
   val map_from_array : f:('a -> float) -> 'a array -> Float.ArrayLabels.t
   external unsafe_get : Float.ArrayLabels.t -> int -> float
    = "%floatarray_unsafe_get"
   external unsafe_set : Float.ArrayLabels.t -> int -> float -> unit
    = "%floatarray_unsafe_set"
  end
end

AltStyle によって変換されたページ (->オリジナル) /