sig
  type t
  type dimensions = { n : int; mu : int; smu : int; ml : int; }
  val make :
    Sundials_Matrix.Band.dimensions -> float -> Sundials_Matrix.Band.t
  val create : Sundials_Matrix.Band.dimensions -> Sundials_Matrix.Band.t
  val size : Sundials_Matrix.Band.t -> int * int
  val dims : Sundials_Matrix.Band.t -> Sundials_Matrix.Band.dimensions
  val pp : Stdlib.Format.formatter -> Sundials_Matrix.Band.t -> unit
  val ppi :
    ?start:string ->
    ?stop:string ->
    ?sep:string ->
    ?indent:int ->
    ?itemsep:string ->
    ?empty:string ->
    ?item:(Stdlib.Format.formatter -> int -> int -> float -> unit) ->
    unit -> Stdlib.Format.formatter -> Sundials_Matrix.Band.t -> unit
  val get : Sundials_Matrix.Band.t -> int -> int -> float
  val set : Sundials_Matrix.Band.t -> int -> int -> float -> unit
  val update :
    Sundials_Matrix.Band.t -> int -> int -> (float -> float) -> unit
  val unwrap : Sundials_Matrix.Band.t -> Sundials.RealArray2.data
  val ops :
    (Sundials_Matrix.Band.t, Nvector_serial.data) Sundials_Matrix.matrix_ops
  val scale_add :
    float -> Sundials_Matrix.Band.t -> Sundials_Matrix.Band.t -> unit
  val scale_addi : float -> Sundials_Matrix.Band.t -> unit
  val matvec :
    Sundials_Matrix.Band.t ->
    Sundials.RealArray.t -> Sundials.RealArray.t -> unit
  val set_to_zero : Sundials_Matrix.Band.t -> unit
  val blit : src:Sundials_Matrix.Band.t -> dst:Sundials_Matrix.Band.t -> unit
  val space : Sundials_Matrix.Band.t -> int * int
  val invalidate : Sundials_Matrix.Band.t -> unit
end