sig
type kind
type 'd t = ('d, Nvector_custom.kind) Nvector.t
type communicator
type 'd nvector_ops = {
check : 'd -> 'd -> bool;
clone : 'd -> 'd;
space : ('d -> int * int) option;
getlength : 'd -> int;
print : ('d -> Sundials.Logfile.t option -> unit) option;
linearsum : float -> 'd -> float -> 'd -> 'd -> unit;
const : float -> 'd -> unit;
prod : 'd -> 'd -> 'd -> unit;
div : 'd -> 'd -> 'd -> unit;
scale : float -> 'd -> 'd -> unit;
abs : 'd -> 'd -> unit;
inv : 'd -> 'd -> unit;
addconst : 'd -> float -> 'd -> unit;
maxnorm : 'd -> float;
wrmsnorm : 'd -> 'd -> float;
min : 'd -> float;
dotprod : 'd -> 'd -> float;
compare : float -> 'd -> 'd -> unit;
invtest : 'd -> 'd -> bool;
wl2norm : ('d -> 'd -> float) option;
l1norm : ('d -> float) option;
wrmsnormmask : ('d -> 'd -> 'd -> float) option;
constrmask : ('d -> 'd -> 'd -> bool) option;
minquotient : ('d -> 'd -> float) option;
getcommunicator : ('d -> Nvector_custom.communicator) option;
linearcombination :
(Sundials.RealArray.t -> 'd array -> 'd -> unit) option;
scaleaddmulti :
(Sundials.RealArray.t -> 'd -> 'd array -> 'd array -> unit) option;
dotprodmulti : ('d -> 'd array -> Sundials.RealArray.t -> unit) option;
linearsumvectorarray :
(float -> 'd array -> float -> 'd array -> 'd array -> unit) option;
scalevectorarray :
(Sundials.RealArray.t -> 'd array -> 'd array -> unit) option;
constvectorarray : (float -> 'd array -> unit) option;
wrmsnormvectorarray :
('d array -> 'd array -> Sundials.RealArray.t -> unit) option;
wrmsnormmaskvectorarray :
('d array -> 'd array -> 'd -> Sundials.RealArray.t -> unit) option;
scaleaddmultivectorarray :
(Sundials.RealArray.t ->
'd array -> 'd array array -> 'd array array -> unit)
option;
linearcombinationvectorarray :
(Sundials.RealArray.t -> 'd array array -> 'd array -> unit) option;
dotprod_local : ('d -> 'd -> float) option;
maxnorm_local : ('d -> float) option;
min_local : ('d -> float) option;
l1norm_local : ('d -> float) option;
invtest_local : ('d -> 'd -> bool) option;
constrmask_local : ('d -> 'd -> 'd -> bool) option;
minquotient_local : ('d -> 'd -> float) option;
wsqrsum_local : ('d -> 'd -> float) option;
wsqrsummask_local : ('d -> 'd -> 'd -> float) option;
dotprodmulti_local :
('d -> 'd array -> Sundials.RealArray.t -> unit) option;
dotprodmulti_allreduce : ('d -> Sundials.RealArray.t -> unit) option;
}
val make_wrap :
'd Nvector_custom.nvector_ops ->
?context:Sundials.Context.t ->
?with_fused_ops:bool -> 'd -> 'd Nvector_custom.t
val add_tracing :
string -> 'd Nvector_custom.nvector_ops -> 'd Nvector_custom.nvector_ops
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 -> 'd Nvector_custom.t -> unit
module MakeOps :
functor
(A : sig
type data
val ops : Nvector_custom.MakeOps.data Nvector_custom.nvector_ops
end)
->
sig
type kind = kind
type data = A.data
type t = (data, kind) Nvector.nvector
val wrap :
?context:Sundials.Context.t -> ?with_fused_ops:bool -> data -> t
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
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
end
module Any :
sig
val convert_ops :
inject:('d -> Nvector.gdata) ->
project:(Nvector.gdata -> 'd) ->
'd Nvector_custom.nvector_ops ->
Nvector.gdata Nvector_custom.nvector_ops
val make_wrap :
Nvector.gdata Nvector_custom.nvector_ops ->
inject:('d -> Nvector.gdata) ->
?context:Sundials.Context.t ->
?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 -> 'd -> Nvector.any
end
end