Spoc_core_jsAll types, kind helpers, type-id helpers, creation, accessors, copy, slicing, list/array creation, and sync-callback API from the base functor. Refer to Spoc_core_base.Make for full documentation.
include sig ... endtype (!'a, !'b) scalar_kind = | Float32 : (float, Stdlib.Bigarray.float32_elt) scalar_kind| Float64 : (float, Stdlib.Bigarray.float64_elt) scalar_kind| Int32 : (int32, Stdlib.Bigarray.int32_elt) scalar_kind| Int64 : (int64, Stdlib.Bigarray.int64_elt) scalar_kind| Char : (char, Stdlib.Bigarray.int8_unsigned_elt) scalar_kind| Complex32 : (Stdlib.Complex.t, Stdlib.Bigarray.complex32_elt) scalar_kindtype location = Spoc_core_base.Make(Spoc_core_js__.Js_ops).location = type !'a custom_type =
'a Spoc_core_base.Make(Spoc_core_js__.Js_ops).custom_type =
{elem_size : int;type_id : 'a Sarek_ir_types.Type_id.t;vector_type_id : ('a, unit) t Sarek_ir_types.Type_id.t;get : unit -> int -> 'a;set : unit -> int -> 'a -> unit;name : string;}and (!'c, !'d) kind = ('c, 'd) Spoc_core_base.Make(Spoc_core_js__.Js_ops).kind =
| Scalar : ('a, 'b) scalar_kind -> ('a, 'b) kind| Custom : 'a0 custom_type -> ('a0, unit) kindand (!'c, !'d) host_storage =
('c, 'd) Spoc_core_base.Make(Spoc_core_js__.Js_ops).host_storage =
| Bigarray_storage : ('a, 'b, Stdlib.Bigarray.c_layout) Stdlib.Bigarray.Array1.t ->
('a, 'b)
host_storage| Custom_storage : {ptr : unit;custom : 'a0 custom_type;length : int;} -> ('a0, unit) host_storageand (!'a, !'b) t = ('a, 'b) Spoc_core_base.Make(Spoc_core_js__.Js_ops).t = {host : ('a, 'b) host_storage;device_buffers : (int, unit) Stdlib.Hashtbl.t;length : int;kind : ('a, 'b) kind;mutable location : location;mutable auto_sync : bool;id : int;}val to_bigarray_kind : ('a, 'b) scalar_kind -> ('a, 'b) Stdlib.Bigarray.kindval scalar_elem_size : ('a, 'b) scalar_kind -> intval elem_size : ('a, 'b) kind -> intval scalar_kind_name : ('a, 'b) scalar_kind -> stringval kind_name : ('a, 'b) kind -> stringval float32_type_id : float Sarek_ir_types.Type_id.tval float64_type_id : float Sarek_ir_types.Type_id.tval int32_type_id : int32 Sarek_ir_types.Type_id.tval int64_type_id : int64 Sarek_ir_types.Type_id.tval char_type_id : char Sarek_ir_types.Type_id.tval complex32_type_id : Stdlib.Complex.t Sarek_ir_types.Type_id.tval scalar_type_id : ('a, 'b) scalar_kind -> 'a Sarek_ir_types.Type_id.tval type_id : ('a, 'b) kind -> 'a Sarek_ir_types.Type_id.tval float32_vector_type_id :
(float, Stdlib.Bigarray.float32_elt) t Sarek_ir_types.Type_id.tval float64_vector_type_id :
(float, Stdlib.Bigarray.float64_elt) t Sarek_ir_types.Type_id.tval int32_vector_type_id :
(int32, Stdlib.Bigarray.int32_elt) t Sarek_ir_types.Type_id.tval int64_vector_type_id :
(int64, Stdlib.Bigarray.int64_elt) t Sarek_ir_types.Type_id.tval char_vector_type_id :
(char, Stdlib.Bigarray.int8_unsigned_elt) t Sarek_ir_types.Type_id.tval complex32_vector_type_id :
(Stdlib.Complex.t, Stdlib.Bigarray.complex32_elt) t Sarek_ir_types.Type_id.tval vector_type_id : ('a, 'b) kind -> ('a, 'b) t Sarek_ir_types.Type_id.tval create_scalar : ('a, 'b) scalar_kind -> ?dev:unit -> int -> ('a, 'b) tval create_custom : 'a custom_type -> ?dev:unit -> int -> ('a, unit) tval of_bigarray :
('a, 'b) scalar_kind ->
('a, 'b, Stdlib.Bigarray.c_layout) Stdlib.Bigarray.Array1.t ->
('a, 'b) tval of_raw_handle : 'a custom_type -> nativeint -> int -> ('a, unit) tval to_bigarray :
('a, 'b) t ->
('a, 'b, Stdlib.Bigarray.c_layout) Stdlib.Bigarray.Array1.tval has_buffer : ('a, 'b) t -> unit -> boolval get_buffer : ('a, 'b) t -> unit -> unit optionval is_sub : ('a, 'b) t -> boolval depth : ('a, 'b) t -> intval parent_id : ('a, 'b) t -> int optionval sub_start : ('a, 'b) t -> int optionval sub_ok_range : ('a, 'b) t -> int optionval sub_ko_range : ('a, 'b) t -> int optiontype sync_callback = Spoc_core_base.Make(Spoc_core_js__.Js_ops).sync_callback = {sync : 'a 'b. ('a, 'b) t -> bool;}val register_sync_callback : sync_callback -> unitval ensure_cpu_sync : ('a, 'b) t -> unitval host_handle : ('a, 'b) t -> unitval host_raw : ('a, 'b) t -> nativeintval float32 : (float, Stdlib.Bigarray.float32_elt) kindval float64 : (float, Stdlib.Bigarray.float64_elt) kindval int32 : (int32, Stdlib.Bigarray.int32_elt) kindval int64 : (int64, Stdlib.Bigarray.int64_elt) kindval char : (char, Stdlib.Bigarray.int8_unsigned_elt) kindval complex32 : (Stdlib.Complex.t, Stdlib.Bigarray.complex32_elt) kindval get : ('a, 'b) t -> int -> 'aget vec i returns the i-th element of a scalar vector. Raises Invalid_argument if vec uses custom storage (not reachable on the pure Bigarray path).
val set : ('a, 'b) t -> int -> 'a -> unitset vec i v sets the i-th element of a scalar vector. Raises Invalid_argument if vec uses custom storage.
val to_array : ('a, 'b) t -> 'a arrayto_array vec converts a scalar vector to an OCaml array. Raises Invalid_argument if vec uses custom storage.