sig
  type t
  val clone : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t
  val linearsum :
    float ->
    Nvector.NVECTOR_OPS.t ->
    float -> Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> unit
  val const : float -> Nvector.NVECTOR_OPS.t -> unit
  val prod :
    Nvector.NVECTOR_OPS.t ->
    Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> unit
  val div :
    Nvector.NVECTOR_OPS.t ->
    Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> unit
  val scale : float -> Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> unit
  val abs : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> unit
  val inv : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> unit
  val addconst :
    Nvector.NVECTOR_OPS.t -> float -> Nvector.NVECTOR_OPS.t -> unit
  val dotprod : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> float
  val maxnorm : Nvector.NVECTOR_OPS.t -> float
  val wrmsnorm : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> float
  val min : Nvector.NVECTOR_OPS.t -> float
  val compare :
    float -> Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> unit
  val invtest : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> bool
  val wl2norm : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> float
  val l1norm : Nvector.NVECTOR_OPS.t -> float
  val wrmsnormmask :
    Nvector.NVECTOR_OPS.t ->
    Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> float
  val constrmask :
    Nvector.NVECTOR_OPS.t ->
    Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> bool
  val minquotient : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> float
  val space : Nvector.NVECTOR_OPS.t -> int * int
  val getlength : Nvector.NVECTOR_OPS.t -> int
  val print : ?logfile:Sundials.Logfile.t -> Nvector.NVECTOR_OPS.t -> unit
  val linearcombination :
    Sundials.RealArray.t ->
    Nvector.NVECTOR_OPS.t array -> Nvector.NVECTOR_OPS.t -> unit
  val scaleaddmulti :
    Sundials.RealArray.t ->
    Nvector.NVECTOR_OPS.t ->
    Nvector.NVECTOR_OPS.t array -> Nvector.NVECTOR_OPS.t array -> unit
  val dotprodmulti :
    Nvector.NVECTOR_OPS.t ->
    Nvector.NVECTOR_OPS.t array -> Sundials.RealArray.t -> unit
  val linearsumvectorarray :
    float ->
    Nvector.NVECTOR_OPS.t array ->
    float ->
    Nvector.NVECTOR_OPS.t array -> Nvector.NVECTOR_OPS.t array -> unit
  val scalevectorarray :
    Sundials.RealArray.t ->
    Nvector.NVECTOR_OPS.t array -> Nvector.NVECTOR_OPS.t array -> unit
  val constvectorarray : float -> Nvector.NVECTOR_OPS.t array -> unit
  val wrmsnormvectorarray :
    Nvector.NVECTOR_OPS.t array ->
    Nvector.NVECTOR_OPS.t array -> Sundials.RealArray.t -> unit
  val wrmsnormmaskvectorarray :
    Nvector.NVECTOR_OPS.t array ->
    Nvector.NVECTOR_OPS.t array ->
    Nvector.NVECTOR_OPS.t -> Sundials.RealArray.t -> unit
  val scaleaddmultivectorarray :
    Sundials.RealArray.t ->
    Nvector.NVECTOR_OPS.t array ->
    Nvector.NVECTOR_OPS.t array array ->
    Nvector.NVECTOR_OPS.t array array -> unit
  val linearcombinationvectorarray :
    Sundials.RealArray.t ->
    Nvector.NVECTOR_OPS.t array array -> Nvector.NVECTOR_OPS.t array -> unit
  module Local :
    sig
      val dotprod : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> float
      val maxnorm : Nvector.NVECTOR_OPS.t -> float
      val min : Nvector.NVECTOR_OPS.t -> float
      val l1norm : Nvector.NVECTOR_OPS.t -> float
      val invtest : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> bool
      val constrmask :
        Nvector.NVECTOR_OPS.t ->
        Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> bool
      val minquotient :
        Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> float
      val wsqrsum : Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> float
      val wsqrsummask :
        Nvector.NVECTOR_OPS.t ->
        Nvector.NVECTOR_OPS.t -> Nvector.NVECTOR_OPS.t -> float
      val dotprodmulti :
        Nvector.NVECTOR_OPS.t ->
        Nvector.NVECTOR_OPS.t array -> Sundials.RealArray.t -> unit
      val dotprodmulti_allreduce :
        Nvector.NVECTOR_OPS.t -> Sundials.RealArray.t -> unit
    end
end