sig
  type elt = float
  type 'a typed_array
  type t = elt typed_array
  external unsafe_get : t -> int -> elt = "" "BS-EXTERNAL"
  external unsafe_set : t -> int -> elt -> unit = "" "BS-EXTERNAL"
  external buffer : t -> array_buffer = "" "BS-EXTERNAL"
  external byteLength : t -> int = "" "BS-EXTERNAL"
  external byteOffset : t -> int = "" "BS-EXTERNAL"
  external setArray : elt array -> t -> unit = "set" "BS-EXTERNAL"
  external setArrayOffset : elt array -> int -> t -> unit = "set"
    "BS-EXTERNAL"
  external length : t -> int = "" "BS-EXTERNAL"
  external copyWithin : to_:int -> t -> t = "" "BS-EXTERNAL"
  external copyWithinFrom : to_:int -> from:int -> t -> t = "copyWithin"
    "BS-EXTERNAL"
  external copyWithinFromRange : to_:int -> start:int -> end_:int -> t -> t
    = "copyWithin" "BS-EXTERNAL"
  external fillInPlace : elt -> t -> t = "fill" "BS-EXTERNAL"
  external fillFromInPlace : elt -> from:int -> t -> t = "fill" "BS-EXTERNAL"
  external fillRangeInPlace : elt -> start:int -> end_:int -> t -> t = "fill"
    "BS-EXTERNAL"
  external reverseInPlace : t -> t = "reverse" "BS-EXTERNAL"
  external sortInPlace : t -> t = "sort" "BS-EXTERNAL"
  external sortInPlaceWith :
    ([ `Arity_2 of elt * elt ], int) Js.Internal.fn -> t -> t = "sort"
    "BS-EXTERNAL"
  external includes : elt -> t -> Js.boolean = "" "BS-EXTERNAL"
  external indexOf : elt -> t -> int = "" "BS-EXTERNAL"
  external indexOfFrom : elt -> from:int -> t -> int = "indexOf"
    "BS-EXTERNAL"
  external join : t -> string = "" "BS-EXTERNAL"
  external joinWith : string -> t -> string = "join" "BS-EXTERNAL"
  external lastIndexOf : elt -> t -> int = "" "BS-EXTERNAL"
  external lastIndexOfFrom : elt -> from:int -> t -> int = "lastIndexOf"
    "BS-EXTERNAL"
  external slice : start:int -> end_:int -> t -> t = "" "BS-EXTERNAL"
  external copy : t -> t = "slice" "BS-EXTERNAL"
  external sliceFrom : int -> t -> t = "slice" "BS-EXTERNAL"
  external toString : t -> string = "" "BS-EXTERNAL"
  external toLocaleString : t -> string = "" "BS-EXTERNAL"
  external every :
    ([ `Arity_1 of elt ], Js.boolean) Js.Internal.fn -> t -> Js.boolean = ""
    "BS-EXTERNAL"
  external everyi :
    ([ `Arity_2 of elt * int ], Js.boolean) Js.Internal.fn -> t -> Js.boolean
    = "every" "BS-EXTERNAL"
  external filter : ([ `Arity_1 of elt ], bool) Js.Internal.fn -> t -> t = ""
    "BS-EXTERNAL"
  external filteri :
    ([ `Arity_2 of elt * int ], Js.boolean) Js.Internal.fn -> t -> t
    = "filter" "BS-EXTERNAL"
  external find :
    ([ `Arity_1 of elt ], bool) Js.Internal.fn -> t -> elt Js.undefined = ""
    "BS-EXTERNAL"
  external findi :
    ([ `Arity_2 of elt * int ], bool) Js.Internal.fn -> t -> elt Js.undefined
    = "find" "BS-EXTERNAL"
  external findIndex : ([ `Arity_1 of elt ], bool) Js.Internal.fn -> t -> int
    = "" "BS-EXTERNAL"
  external findIndexi :
    ([ `Arity_2 of elt * int ], bool) Js.Internal.fn -> t -> int
    = "findIndex" "BS-EXTERNAL"
  external forEach : ([ `Arity_1 of elt ], unit) Js.Internal.fn -> t -> unit
    = "" "BS-EXTERNAL"
  external forEachi :
    ([ `Arity_2 of elt * int ], unit) Js.Internal.fn -> t -> unit = "forEach"
    "BS-EXTERNAL"
  external map :
    ([ `Arity_1 of elt ], 'b) Js.Internal.fn -> t -> 'b typed_array = ""
    "BS-EXTERNAL"
  external mapi :
    ([ `Arity_2 of elt * int ], 'b) Js.Internal.fn -> t -> 'b typed_array
    = "map" "BS-EXTERNAL"
  external reduce :
    ([ `Arity_2 of 'b * elt ], 'b) Js.Internal.fn -> '-> t -> 'b = ""
    "BS-EXTERNAL"
  external reducei :
    ([ `Arity_3 of 'b * elt * int ], 'b) Js.Internal.fn -> '-> t -> 'b
    = "reduce" "BS-EXTERNAL"
  external reduceRight :
    ([ `Arity_2 of 'b * elt ], 'b) Js.Internal.fn -> '-> t -> 'b = ""
    "BS-EXTERNAL"
  external reduceRighti :
    ([ `Arity_3 of 'b * elt * int ], 'b) Js.Internal.fn -> '-> t -> 'b
    = "reduceRight" "BS-EXTERNAL"
  external some :
    ([ `Arity_1 of elt ], Js.boolean) Js.Internal.fn -> t -> Js.boolean = ""
    "BS-EXTERNAL"
  external somei :
    ([ `Arity_2 of elt * int ], Js.boolean) Js.Internal.fn -> t -> Js.boolean
    = "some" "BS-EXTERNAL"
  external _BYTES_PER_ELEMENT : int = "Float64Array.BYTES_PER_ELEMENT"
    "BS-EXTERNAL"
  external make : elt array -> t = "Float64Array" "BS-EXTERNAL"
  external fromBuffer : Js_typed_array.array_buffer -> t = "Float64Array"
    "BS-EXTERNAL"
  external fromBufferOffset : Js_typed_array.array_buffer -> int -> t
    = "Float64Array" "BS-EXTERNAL"
  external fromBufferRange :
    Js_typed_array.array_buffer -> offset:int -> length:int -> t
    = "Float64Array" "BS-EXTERNAL"
  external fromLength : int -> t = "Float64Array" "BS-EXTERNAL"
  external from : elt Js_typed_array.array_like -> t = "Float64Array.from"
    "BS-EXTERNAL"
  external create : float array -> t = "Float64Array" "BS-EXTERNAL"
  external of_buffer : Js_typed_array.array_buffer -> t = "Float64Array"
    "BS-EXTERNAL"
end