Gg.BaLinear bigarrays and bigarray buffers.
WARNING. This interface is subject to change in the future.
This module has a few convenience functions for linear (1D) bigarrays.
The purpose of buffer is to allow to specify a few more data types than bigarrays are able to express and facilitate the generic handling of linear bigarrays.
type ('a, 'b) ba_scalar_type = | Int8 : (int, Bigarray.int8_signed_elt) ba_scalar_type |
| Int16 : (int, Bigarray.int16_signed_elt) ba_scalar_type |
| Int32 : (int32, Bigarray.int32_elt) ba_scalar_type |
| Int64 : (int64, Bigarray.int64_elt) ba_scalar_type |
| UInt8 : (int, Bigarray.int8_unsigned_elt) ba_scalar_type |
| UInt16 : (int, Bigarray.int16_unsigned_elt) ba_scalar_type |
| UInt32 : (int32, Bigarray.int32_elt) ba_scalar_type |
| UInt64 : (int64, Bigarray.int64_elt) ba_scalar_type |
| Float16 : (int, Bigarray.int16_unsigned_elt) ba_scalar_type |
| Float32 : (float, Bigarray.float32_elt) ba_scalar_type |
| Float64 : (float, Bigarray.float64_elt) ba_scalar_type |
The type for bigarray scalar types.
val ba_kind_of_ba_scalar_type : ('a, 'b) ba_scalar_type -> ('a, 'b) Bigarray.kindba_kind_of_ba_scalar_type st is the bigarray kind corresponding to st.
type scalar_type = [ | `Int8 |
| `Int16 |
| `Int32 |
| `Int64 |
| `UInt8 |
| `UInt16 |
| `UInt32 |
| `UInt64 |
| `Float16 |
| `Float32 |
| `Float64 |
]The type for buffer scalar types.
val scalar_type_of_ba_scalar_type : ('a, 'b) ba_scalar_type -> scalar_typescalar_type_of_ba_scalar_type st is the scalar type corresponding to st.
val scalar_type_byte_count : scalar_type -> intscalar_type_byte_count st is the number of bytes used by a scalar of type st.
val pp_scalar_type : Format.formatter -> scalar_type -> unitpp_scalar_type ppf st prints a textual representation of st on ppf.
module Buffer : sig ... endval create : ('a, 'b) ba_scalar_type -> int -> ('a, 'b) bigarraycreate k count is a bigarray of kind k with count scalars.
val length : ('a, 'b) bigarray -> intlength ba is the length of ba.
sub ba i len are the ith to ith + n scalars of ba as a bigarray. Note, this is not a copy.
blit src si dst di len copies len scalar values starting at si in src to dst starting at di.
val fill : ('a, 'b) bigarray -> 'a -> unitfill ba v sets each scalar value of ba to v.
val of_array : ('a, 'b) ba_scalar_type -> 'a array -> ('a, 'b) bigarrayof_array st a is a bigarray from array a.
val of_list : ('a, 'b) ba_scalar_type -> 'a list -> ('a, 'b) bigarrayof_list st l is a bigarray from list l.
val of_bytes : ?be:bool -> ('a, 'b) ba_scalar_type -> string -> ('a, 'b) bigarrayof_bytes be s k is a bigarray of kind k from s. if be is true data is assumed to be in big endian order (defaults to false).
TODO For now only Int8 and UInt8 are supported.
val pp : ?count:int -> ?stride:int -> ?first:int -> ?dim:int ->
pp_scalar:(Format.formatter -> 'a -> unit) -> Format.formatter -> ('a, 'b) bigarray -> unitpp count stride first dim pp_scalar ppf b prints on ppf, count groups of size dim of scalars of b, starting at first using pp_scalar, and striding stride scalars to go from group to group. If count is unspecified prints as much as possible. stride defaults to dim, first defaults to 0 and dim to 1.
get_v2 b i is the ith to i+1th scalars of b as a vector.
get_v3 b i is the ith to i+2th scalars of b as a vector.
get_v4 b i is the ith to i+3th scalars of b as a vector.
val get_2d : ('a, 'b) bigarray -> int -> 'a * 'aget_v2 b i is the ith to i+1th scalars of b.
val get_3d : ('a, 'b) bigarray -> int -> 'a * 'a * 'aget_v3 b i is the ith to i+2th scalars of b.
val get_4d : ('a, 'b) bigarray -> int -> 'a * 'a * 'a * 'aget_v4 b i is the ith to i+3th scalars of b.
val geti_2d : (int32, 'b) bigarray -> int -> int * intget_v2 b i is the ith to i+1th scalars of b. The integers are converted with Int32.to_int.
val geti_3d : (int32, 'b) bigarray -> int -> int * int * intget_v3 b i is the ith to i+2th scalars of b. The integers are converted with Int32.to_int
set_v2 b i v sets the ith to i+1th scalars of b with v.
set_v3 b i v sets the ith to i+2th scalars of b with v.
set_v4 b i v sets the ith to i+3th scalars of b with v.
val set_2d : ('a, 'b) bigarray -> int -> 'a -> 'a -> unitset_2d b i s1 s2 sets the ith to i+1th scalar of b to s1, s2.
val set_3d : ('a, 'b) bigarray -> int -> 'a -> 'a -> 'a -> unitset_3d b i s1 s2 s3 sets the ith to i+2th scalar of b to s1, s2, s3.
val set_4d : ('a, 'b) bigarray -> int -> 'a -> 'a -> 'a -> 'a -> unitset_4d b i s1 s2 s3 s4 sets the ith to i+3th scalar of b to s1, s2, s3, s4.
val seti_2d : (int32, 'b) bigarray -> int -> int -> int -> unitset_2d b i s1 s2 sets the ith to i+1th scalar of b to s1, s2.
val seti_3d : (int32, 'b) bigarray -> int -> int -> int -> int -> unitset_3d b i s1 s2 s3 sets the ith to i+2th scalar of b to s1, s2, s3.