sig
  type ('a, 'b, 'c) matrix = {
    mat_i : 'a array;
    mat_j : 'b array;
    mat_mat : 'c array array;
  }
  val latex :
    Pervasives.out_channel ->
    ?cols:int ->
    ('-> string) ->
    ('-> string) ->
    ('-> string) -> ('a, 'b, 'c) Smatrices.Simple.matrix -> unit
  val store_matrix : string -> ('a, 'b, 'c) Smatrices.Simple.matrix -> unit
  val load_matrix : string -> ('a, 'b, 'c) Smatrices.Simple.matrix
  exception Uncompatible_matrices
  val concat_matrices_i :
    ?check:('-> '-> unit) ->
    ('a, 'b, 'c) Smatrices.Simple.matrix ->
    ('a, 'b, 'c) Smatrices.Simple.matrix ->
    ('a, 'b, 'c) Smatrices.Simple.matrix
  val concat_matrices_j :
    ?check:('-> '-> unit) ->
    ('a, 'b, 'c) Smatrices.Simple.matrix ->
    ('a, 'b, 'c) Smatrices.Simple.matrix ->
    ('a, 'b, 'c) Smatrices.Simple.matrix
end