sig
  module Context :
    sig
      type t
      val create : int -> t
      val ellipsis_default : string ref
      val vertical_default : t option ref
      val horizontal_default : t option ref
      val set_dim_defaults : t option -> unit
    end
  val pp_mat_gen :
    ?pp_open:(Format.formatter -> unit) ->
    ?pp_close:(Format.formatter -> unit) ->
    ?pp_head:(Format.formatter -> int -> unit) ->
    ?pp_foot:(Format.formatter -> int -> unit) ->
    ?pp_end_row:(Format.formatter -> int -> unit) ->
    ?pp_end_col:(Format.formatter -> row:int -> col:int -> unit) ->
    ?pp_left:(Format.formatter -> int -> unit) ->
    ?pp_right:(Format.formatter -> int -> unit) ->
    ?pad:char option ->
    ?ellipsis:string ->
    ?vertical_context:Context.t option ->
    ?horizontal_context:Context.t option ->
    (Format.formatter -> 'el -> unit) ->
    Format.formatter ->
    ('el, 'a, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
  type 'el pp_el_default = (Format.formatter -> 'el -> unit) ref
  val pp_float_el_default : float pp_el_default
  val pp_complex_el_default : Complex.t pp_el_default
  val pp_int32_el : Format.formatter -> int32 -> unit
  type ('el, 'elt) pp_vec =
      Format.formatter ->
      ('el, 'elt, Bigarray.fortran_layout) Bigarray.Array1.t -> unit
  val pp_fvec : (float, 'elt) pp_vec
  val pp_cvec : (Complex.t, 'elt) pp_vec
  val pp_ivec : (int32, 'elt) pp_vec
  val pp_rfvec : (float, 'elt) pp_vec
  val pp_rcvec : (Complex.t, 'elt) pp_vec
  val pp_rivec : (int32, 'elt) pp_vec
  type ('el, 'elt) pp_mat =
      Format.formatter ->
      ('el, 'elt, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
  val pp_fmat : (float, 'elt) pp_mat
  val pp_cmat : (Complex.t, 'elt) pp_mat
  val pp_imat : (int32, 'elt) pp_mat
  type ('el, 'elt) pp_labeled_vec =
      ?pp_head:(Format.formatter -> int -> unit) ->
      ?pp_foot:(Format.formatter -> int -> unit) ->
      ?pp_left:(Format.formatter -> int -> unit) option ->
      ?pp_right:(Format.formatter -> int -> unit) ->
      ?pad:char option ->
      ?ellipsis:string ->
      ?vertical_context:Context.t option ->
      ?horizontal_context:Context.t option ->
      unit ->
      Format.formatter ->
      ('el, 'elt, Bigarray.fortran_layout) Bigarray.Array1.t -> unit
  val pp_labeled_fvec : (float, 'elt) pp_labeled_vec
  val pp_labeled_cvec : (Complex.t, 'elt) pp_labeled_vec
  val pp_labeled_ivec : (int32, 'elt) pp_labeled_vec
  val pp_labeled_rfvec : (float, 'elt) pp_labeled_vec
  val pp_labeled_rcvec : (Complex.t, 'elt) pp_labeled_vec
  val pp_labeled_rivec : (int32, 'elt) pp_labeled_vec
  type ('el, 'elt) pp_lvec =
      ?print_head:bool ->
      ?print_foot:bool ->
      ?print_left:bool ->
      ?print_right:bool ->
      ?labels:string array ->
      ?name:string ->
      ?pad:char option ->
      ?ellipsis:string ->
      ?vertical_context:Context.t option ->
      ?horizontal_context:Context.t option ->
      unit ->
      Format.formatter ->
      ('el, 'elt, Bigarray.fortran_layout) Bigarray.Array1.t -> unit
  val pp_lfvec : (float, 'elt) pp_lvec
  val pp_lcvec : (Complex.t, 'elt) pp_lvec
  val pp_livec : (int32, 'elt) pp_lvec
  val pp_rlfvec : (float, 'elt) pp_lvec
  val pp_rlcvec : (Complex.t, 'elt) pp_lvec
  val pp_rlivec : (int32, 'elt) pp_lvec
  type ('el, 'elt) pp_labeled_mat =
      ?pp_head:(Format.formatter -> int -> unit) option ->
      ?pp_foot:(Format.formatter -> int -> unit) option ->
      ?pp_left:(Format.formatter -> int -> unit) option ->
      ?pp_right:(Format.formatter -> int -> unit) option ->
      ?pad:char option ->
      ?ellipsis:string ->
      ?vertical_context:Context.t option ->
      ?horizontal_context:Context.t option ->
      unit ->
      Format.formatter ->
      ('el, 'elt, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
  val pp_labeled_fmat : (float, 'elt) pp_labeled_mat
  val pp_labeled_cmat : (Complex.t, 'elt) pp_labeled_mat
  val pp_labeled_imat : (int32, 'elt) pp_labeled_mat
  type ('el, 'elt) pp_lmat =
      ?print_head:bool ->
      ?print_foot:bool ->
      ?print_left:bool ->
      ?print_right:bool ->
      ?row_labels:string array ->
      ?col_labels:string array ->
      ?pad:char option ->
      ?ellipsis:string ->
      ?vertical_context:Context.t option ->
      ?horizontal_context:Context.t option ->
      unit ->
      Format.formatter ->
      ('el, 'elt, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
  val pp_lfmat : (float, 'elt) pp_lmat
  val pp_lcmat : (Complex.t, 'elt) pp_lmat
  val pp_limat : (int32, 'elt) pp_lmat
  type ('el, 'elt) pp_el_ovec =
      Format.formatter ->
      (Format.formatter -> 'el -> unit) ->
      ('el, 'elt, Bigarray.fortran_layout) Bigarray.Array1.t -> unit
  val pp_ovec : ('el, 'elt) pp_el_ovec
  val pp_rovec : ('el, 'elt) pp_el_ovec
  type ('el, 'elt) pp_ovec =
      Format.formatter ->
      ('el, 'elt, Bigarray.fortran_layout) Bigarray.Array1.t -> unit
  val pp_ofvec : (float, 'elt) pp_ovec
  val pp_ocvec : (Complex.t, 'elt) pp_ovec
  val pp_oivec : (int32, 'elt) pp_ovec
  val pp_rofvec : (float, 'elt) pp_ovec
  val pp_rocvec : (Complex.t, 'elt) pp_ovec
  val pp_roivec : (int32, 'elt) pp_ovec
  val pp_omat :
    Format.formatter ->
    (Format.formatter -> 'el -> unit) ->
    ('el, 'c, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
  type ('el, 'elt) pp_omat =
      Format.formatter ->
      ('el, 'elt, Bigarray.fortran_layout) Bigarray.Array2.t -> unit
  val pp_ofmat : (float, 'elt) pp_omat
  val pp_ocmat : (Complex.t, 'elt) pp_omat
  val pp_oimat : (int32, 'elt) pp_omat
  module Toplevel :
    sig
      val lsc : int -> unit
      val pp_fvec : (float, 'elt) pp_vec
      val pp_cvec : (Complex.t, 'elt) pp_vec
      val pp_ivec : (int32, 'elt) pp_vec
      val pp_rfvec : (float, 'elt) pp_vec
      val pp_rcvec : (Complex.t, 'elt) pp_vec
      val pp_rivec : (int32, 'elt) pp_vec
      val pp_fmat : (float, 'elt) pp_mat
      val pp_cmat : (Complex.t, 'elt) pp_mat
      val pp_imat : (int32, 'elt) pp_mat
    end
end