sig
  type csc
  type csr
  type _ sformat =
      CSC : Sundials_Matrix.Sparse.csc Sundials_Matrix.Sparse.sformat
    | CSR : Sundials_Matrix.Sparse.csr Sundials_Matrix.Sparse.sformat
  type 's t
  type index_array =
      (Sundials.Index.t, Sundials.Index.index_elt, Stdlib.Bigarray.c_layout)
      Stdlib.Bigarray.Array1.t
  val make :
    'Sundials_Matrix.Sparse.sformat ->
    int -> int -> int -> 'Sundials_Matrix.Sparse.t
  val from_dense :
    'Sundials_Matrix.Sparse.sformat ->
    float -> Sundials_Matrix.Dense.t -> 'Sundials_Matrix.Sparse.t
  val from_band :
    'Sundials_Matrix.Sparse.sformat ->
    float -> Sundials_Matrix.Band.t -> 'Sundials_Matrix.Sparse.t
  val sformat :
    'Sundials_Matrix.Sparse.t -> 'Sundials_Matrix.Sparse.sformat
  val is_csc : 'Sundials_Matrix.Sparse.t -> bool
  val size : 'Sundials_Matrix.Sparse.t -> int * int
  val dims : 'Sundials_Matrix.Sparse.t -> int * int
  val pp : Stdlib.Format.formatter -> 'Sundials_Matrix.Sparse.t -> unit
  val ppi :
    ?start:string ->
    ?stop:string ->
    ?sep:string ->
    ?indent:int ->
    ?itemsep:string ->
    ?rowcol:(Stdlib.Format.formatter -> int -> unit) ->
    ?item:(Stdlib.Format.formatter -> int -> float -> unit) ->
    unit -> Stdlib.Format.formatter -> 'Sundials_Matrix.Sparse.t -> unit
  val set_col :
    Sundials_Matrix.Sparse.csc Sundials_Matrix.Sparse.t -> int -> int -> unit
  val get_col :
    Sundials_Matrix.Sparse.csc Sundials_Matrix.Sparse.t -> int -> int
  val set_row :
    Sundials_Matrix.Sparse.csr Sundials_Matrix.Sparse.t -> int -> int -> unit
  val get_row :
    Sundials_Matrix.Sparse.csr Sundials_Matrix.Sparse.t -> int -> int
  val set : 'Sundials_Matrix.Sparse.t -> int -> int -> float -> unit
  val get : 'Sundials_Matrix.Sparse.t -> int -> int * float
  val unwrap :
    'Sundials_Matrix.Sparse.t ->
    Sundials_Matrix.Sparse.index_array * Sundials_Matrix.Sparse.index_array *
    Sundials.RealArray.t
  val resize : ?nnz:int -> 'Sundials_Matrix.Sparse.t -> unit
  val ops :
    ('Sundials_Matrix.Sparse.t, Nvector_serial.data)
    Sundials_Matrix.matrix_ops
  val scale_add :
    float ->
    'Sundials_Matrix.Sparse.t -> 'Sundials_Matrix.Sparse.t -> unit
  val scale_addi : float -> 'Sundials_Matrix.Sparse.t -> unit
  val matvec :
    'Sundials_Matrix.Sparse.t ->
    Sundials.RealArray.t -> Sundials.RealArray.t -> unit
  val set_to_zero : 'Sundials_Matrix.Sparse.t -> unit
  val blit :
    src:'Sundials_Matrix.Sparse.t ->
    dst:'Sundials_Matrix.Sparse.t -> unit
  val copy_to_csr :
    Sundials_Matrix.Sparse.csc Sundials_Matrix.Sparse.t ->
    Sundials_Matrix.Sparse.csr Sundials_Matrix.Sparse.t
  val copy_to_csc :
    Sundials_Matrix.Sparse.csr Sundials_Matrix.Sparse.t ->
    Sundials_Matrix.Sparse.csc Sundials_Matrix.Sparse.t
  val space : 'Sundials_Matrix.Sparse.t -> int * int
  val set_rowval :
    Sundials_Matrix.Sparse.csc Sundials_Matrix.Sparse.t -> int -> int -> unit
  val get_rowval :
    Sundials_Matrix.Sparse.csc Sundials_Matrix.Sparse.t -> int -> int
  val set_colval :
    Sundials_Matrix.Sparse.csr Sundials_Matrix.Sparse.t -> int -> int -> unit
  val get_colval :
    Sundials_Matrix.Sparse.csr Sundials_Matrix.Sparse.t -> int -> int
  val set_data : 'Sundials_Matrix.Sparse.t -> int -> float -> unit
  val get_data : 'Sundials_Matrix.Sparse.t -> int -> float
  val invalidate : 'Sundials_Matrix.Sparse.t -> unit
end