sig
  type ordering =
    Sundials_LinearSolver_impl.Klu.ordering =
      Amd
    | ColAmd
    | Natural
  val make :
    ?context:Sundials.Context.t ->
    ?ordering:Sundials_LinearSolver.Direct.Klu.ordering ->
    ([> Nvector_serial.kind ] as 'a) Nvector.serial ->
    ('s, 'a) Sundials.Matrix.sparse ->
    ('Sundials.Matrix.Sparse.t, 'a, [ `Dls | `Klu ])
    Sundials_LinearSolver.serial_t
  val reinit :
    ('Sundials.Matrix.Sparse.t, [> Nvector_serial.kind ] as 'a, [> `Klu ])
    Sundials_LinearSolver.serial_t ->
    ('s, 'a) Sundials.Matrix.sparse -> ?nnz:int -> unit -> unit
  val set_ordering :
    ('Sundials.Matrix.Sparse.t, [> Nvector_serial.kind ], [> `Klu ])
    Sundials_LinearSolver.serial_t ->
    Sundials_LinearSolver.Direct.Klu.ordering -> unit
end