sig
  type ('a, 'b) op_t0 = ('a, 'b) Owl_dense_matrix_generic.t
  val ( + ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( - ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( * ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( / ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( +$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( -$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( *$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( /$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( $+ ) :
    '->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( $- ) :
    '->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( $* ) :
    '->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( $/ ) :
    '->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( = ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t -> bool
  val ( != ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t -> bool
  val ( <> ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t -> bool
  val ( > ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t -> bool
  val ( < ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t -> bool
  val ( >= ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t -> bool
  val ( <= ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t -> bool
  type ('a, 'b) op_t1 = ('a, 'b) Owl_dense_matrix_generic.t
  val ( =$ ) : ('a, 'b) Owl_dense_matrix_generic.t -> '-> bool
  val ( !=$ ) : ('a, 'b) Owl_dense_matrix_generic.t -> '-> bool
  val ( <>$ ) : ('a, 'b) Owl_dense_matrix_generic.t -> '-> bool
  val ( <$ ) : ('a, 'b) Owl_dense_matrix_generic.t -> '-> bool
  val ( >$ ) : ('a, 'b) Owl_dense_matrix_generic.t -> '-> bool
  val ( <=$ ) : ('a, 'b) Owl_dense_matrix_generic.t -> '-> bool
  val ( >=$ ) : ('a, 'b) Owl_dense_matrix_generic.t -> '-> bool
  val ( =. ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( !=. ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( <>. ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( <. ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( >. ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( <=. ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( >=. ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( =.$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( !=.$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( <>.$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( <.$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( >.$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( <=.$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( >=.$ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( =~ ) :
    ?eps:float ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t -> bool
  val ( =~$ ) :
    ?eps:float -> ('a, 'b) Owl_dense_matrix_generic.t -> '-> bool
  val ( =~. ) :
    ?eps:float ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
  val ( =~.$ ) :
    ?eps:float ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    '-> ('a, 'b) Owl_dense_matrix_generic.t
  val ( % ) :
    (float, 'a) Owl_dense_matrix_generic.t ->
    (float, 'a) Owl_dense_matrix_generic.t ->
    (float, 'a) Owl_dense_matrix_generic.t
  val ( %$ ) :
    (float, 'a) Owl_dense_matrix_generic.t ->
    float -> (float, 'a) Owl_dense_matrix_generic.t
  val ( ** ) :
    (float, 'a) Owl_dense_matrix_generic.t ->
    (float, 'a) Owl_dense_matrix_generic.t ->
    (float, 'a) Owl_dense_matrix_generic.t
  val ( $** ) :
    float ->
    (float, 'a) Owl_dense_matrix_generic.t ->
    (float, 'a) Owl_dense_matrix_generic.t
  val ( **$ ) :
    (float, 'a) Owl_dense_matrix_generic.t ->
    float -> (float, 'a) Owl_dense_matrix_generic.t
  type ('a, 'b) op_t2 = ('a, 'b) Owl_dense_matrix_generic.t
  val ( *@ ) :
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t ->
    ('a, 'b) Owl_dense_matrix_generic.t
end