Module Nvector_pthreads

module Nvector_pthreads: sig .. end

The Pthreads nvectors of Sundials (requires pthreads).


type data = Sundials.RealArray.t 

Pthreads nvectors are based on bigarrays of floats.

type kind = [ `Pthreads | `Serial ] 

Represents the internal layout of a Pthreads nvector. Pthreads nvectors can usually be used wherever serial nvectors can.

type t = (data, kind) Nvector.t 

The type of Pthreads nvectors.

val make : ?context:Sundials.Context.t ->
?with_fused_ops:bool -> int -> int -> float -> t

make nthreads n iv creates a new Pthreads nvector with nthreads threads and n elements inialized to iv.

The optional argument enables the fused and array operations for a given nvector (they are disabled by default).

val wrap : ?context:Sundials.Context.t ->
?with_fused_ops:bool -> int -> Sundials.RealArray.t -> t

wrap nthreads a creates a new Pthreads nvector with nthreads threads over the elements of a.

The optional arguments permit to enable all the fused and array operations for a given nvector (they are disabled by default).

val unwrap : t -> Sundials.RealArray.t

Aliases Nvector.unwrap.

val pp : Stdlib.Format.formatter -> t -> unit

Pretty-print a Pthreads nvector using the Format module.

val num_threads : t -> int

Returns the number of threads used within a Pthreads nvector.

val enable : ?with_fused_ops:bool ->
?with_linear_combination:bool ->
?with_scale_add_multi:bool ->
?with_dot_prod_multi:bool ->
?with_linear_sum_vector_array:bool ->
?with_scale_vector_array:bool ->
?with_const_vector_array:bool ->
?with_wrms_norm_vector_array:bool ->
?with_wrms_norm_mask_vector_array:bool ->
?with_scale_add_multi_vector_array:bool ->
?with_linear_combination_vector_array:bool -> t -> unit

Selectively enable or disable fused and array operations. The with_fused_ops argument enables or disables all such operations.

module Ops: Nvector.NVECTOR_OPS  with type t = t

Underlyling nvector operations on Pthreads nvectors.

module Any: sig .. end

A generic nvector interface to Pthreads nvectors.