sig
  type t
  type dim = int
  type scalar = QQ.t
  val equal : Linear.QQMatrix.t -> Linear.QQMatrix.t -> bool
  val add : Linear.QQMatrix.t -> Linear.QQMatrix.t -> Linear.QQMatrix.t
  val scalar_mul :
    Linear.QQMatrix.scalar -> Linear.QQMatrix.t -> Linear.QQMatrix.t
  val mul : Linear.QQMatrix.t -> Linear.QQMatrix.t -> Linear.QQMatrix.t
  val zero : Linear.QQMatrix.t
  val identity : Linear.QQMatrix.dim list -> Linear.QQMatrix.t
  val row : Linear.QQMatrix.dim -> Linear.QQMatrix.t -> Linear.QQVector.t
  val rowsi :
    Linear.QQMatrix.t -> (Linear.QQMatrix.dim * Linear.QQVector.t) BatEnum.t
  val add_row :
    Linear.QQMatrix.dim ->
    Linear.QQVector.t -> Linear.QQMatrix.t -> Linear.QQMatrix.t
  val add_column :
    Linear.QQMatrix.dim ->
    Linear.QQVector.t -> Linear.QQMatrix.t -> Linear.QQMatrix.t
  val add_entry :
    Linear.QQMatrix.dim ->
    Linear.QQMatrix.dim -> QQ.t -> Linear.QQMatrix.t -> Linear.QQMatrix.t
  val pivot :
    Linear.QQMatrix.dim ->
    Linear.QQMatrix.t -> Linear.QQVector.t * Linear.QQMatrix.t
  val transpose : Linear.QQMatrix.t -> Linear.QQMatrix.t
  val entry :
    Linear.QQMatrix.dim ->
    Linear.QQMatrix.dim -> Linear.QQMatrix.t -> Linear.QQMatrix.scalar
  val entries :
    Linear.QQMatrix.t ->
    (Linear.QQMatrix.dim * Linear.QQMatrix.dim * Linear.QQMatrix.scalar)
    BatEnum.t
  val row_set : Linear.QQMatrix.t -> SrkUtil.Int.Set.t
  val column_set : Linear.QQMatrix.t -> SrkUtil.Int.Set.t
  val nb_rows : Linear.QQMatrix.t -> int
  val nb_columns : Linear.QQMatrix.t -> int
  val pp : Format.formatter -> Linear.QQMatrix.t -> unit
  val show : Linear.QQMatrix.t -> string
  val rational_eigenvalues : Linear.QQMatrix.t -> (QQ.t * int) list
end