sig
type data = Nvector.any Sundials.ROArray.t * int
type kind
type t = (Nvector_many.data, Nvector_many.kind) Nvector.t
type Nvector.gdata += Many of Nvector_many.data
val wrap :
?context:Sundials.Context.t ->
Nvector.any Sundials.ROArray.t -> Nvector_many.t
val unwrap : Nvector_many.t -> Nvector_many.data
val length : Nvector_many.t -> int
val num_subvectors : Nvector_many.t -> int
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_dot_prod_multi_local:bool -> Nvector_many.t -> unit
module Ops :
sig
type t = t
val clone : t -> t
val linearsum : float -> t -> float -> t -> t -> unit
val const : float -> t -> unit
val prod : t -> t -> t -> unit
val div : t -> t -> t -> unit
val scale : float -> t -> t -> unit
val abs : t -> t -> unit
val inv : t -> t -> unit
val addconst : t -> float -> t -> unit
val dotprod : t -> t -> float
val maxnorm : t -> float
val wrmsnorm : t -> t -> float
val min : t -> float
val compare : float -> t -> t -> unit
val invtest : t -> t -> bool
val wl2norm : t -> t -> float
val l1norm : t -> float
val wrmsnormmask : t -> t -> t -> float
val constrmask : t -> t -> t -> bool
val minquotient : t -> t -> float
val space : t -> int * int
val getlength : t -> int
val print : ?logfile:Sundials.Logfile.t -> t -> unit
val linearcombination : Sundials.RealArray.t -> t array -> t -> unit
val scaleaddmulti :
Sundials.RealArray.t -> t -> t array -> t array -> unit
val dotprodmulti : t -> t array -> Sundials.RealArray.t -> unit
val linearsumvectorarray :
float -> t array -> float -> t array -> t array -> unit
val scalevectorarray :
Sundials.RealArray.t -> t array -> t array -> unit
val constvectorarray : float -> t array -> unit
val wrmsnormvectorarray :
t array -> t array -> Sundials.RealArray.t -> unit
val wrmsnormmaskvectorarray :
t array -> t array -> t -> Sundials.RealArray.t -> unit
val scaleaddmultivectorarray :
Sundials.RealArray.t ->
t array -> t array array -> t array array -> unit
val linearcombinationvectorarray :
Sundials.RealArray.t -> t array array -> t array -> unit
module Local :
sig
val dotprod : t -> t -> float
val maxnorm : t -> float
val min : t -> float
val l1norm : t -> float
val invtest : t -> t -> bool
val constrmask : t -> t -> t -> bool
val minquotient : t -> t -> float
val wsqrsum : t -> t -> float
val wsqrsummask : t -> t -> t -> float
val dotprodmulti : t -> t array -> Sundials.RealArray.t -> unit
val dotprodmulti_allreduce : t -> Sundials.RealArray.t -> unit
end
end
module DataOps :
sig
type t = data
val clone : t -> t
val linearsum : float -> t -> float -> t -> t -> unit
val const : float -> t -> unit
val prod : t -> t -> t -> unit
val div : t -> t -> t -> unit
val scale : float -> t -> t -> unit
val abs : t -> t -> unit
val inv : t -> t -> unit
val addconst : t -> float -> t -> unit
val dotprod : t -> t -> float
val maxnorm : t -> float
val wrmsnorm : t -> t -> float
val min : t -> float
val compare : float -> t -> t -> unit
val invtest : t -> t -> bool
val wl2norm : t -> t -> float
val l1norm : t -> float
val wrmsnormmask : t -> t -> t -> float
val constrmask : t -> t -> t -> bool
val minquotient : t -> t -> float
val space : t -> int * int
val getlength : t -> int
val print : ?logfile:Sundials.Logfile.t -> t -> unit
val linearcombination : Sundials.RealArray.t -> t array -> t -> unit
val scaleaddmulti :
Sundials.RealArray.t -> t -> t array -> t array -> unit
val dotprodmulti : t -> t array -> Sundials.RealArray.t -> unit
val linearsumvectorarray :
float -> t array -> float -> t array -> t array -> unit
val scalevectorarray :
Sundials.RealArray.t -> t array -> t array -> unit
val constvectorarray : float -> t array -> unit
val wrmsnormvectorarray :
t array -> t array -> Sundials.RealArray.t -> unit
val wrmsnormmaskvectorarray :
t array -> t array -> t -> Sundials.RealArray.t -> unit
val scaleaddmultivectorarray :
Sundials.RealArray.t ->
t array -> t array array -> t array array -> unit
val linearcombinationvectorarray :
Sundials.RealArray.t -> t array array -> t array -> unit
module Local :
sig
val dotprod : t -> t -> float
val maxnorm : t -> float
val min : t -> float
val l1norm : t -> float
val invtest : t -> t -> bool
val constrmask : t -> t -> t -> bool
val minquotient : t -> t -> float
val wsqrsum : t -> t -> float
val wsqrsummask : t -> t -> t -> float
val dotprodmulti : t -> t array -> Sundials.RealArray.t -> unit
val dotprodmulti_allreduce : t -> Sundials.RealArray.t -> unit
end
end
module Any :
sig
val wrap :
?context:Sundials.Context.t ->
Nvector.any Sundials.ROArray.t -> Nvector.any
val unwrap : Nvector.any -> Nvector_many.data
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_dot_prod_multi_local:bool -> Nvector.any -> unit
end
end