sig
type elt = int
type ('a, 'b) t = (elt, 'a, 'b) array_ constraint 'b = [< `R | `W ]
val add :
?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W > `R ]) t -> ('a, 'b) t
val mult :
?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W > `R ]) t -> ('a, 'b) t
val scalar_add :
?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t -> x:elt -> ('a, 'b) t
val scalar_mult :
?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t -> x:elt -> ('a, 'b) t
val sum_elt : ('a, [< `R | `W > `R ]) t -> elt
val product_elt : ('a, [< `R | `W > `R ]) t -> elt
val dot_product :
('a, [< `R | `W > `R ]) t -> ('b, [< `R | `W > `R ]) t -> elt
module Infix :
sig
val ( * ) :
('a, [< `R | `W > `R ]) t ->
('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
val ( + ) :
('a, [< `R | `W > `R ]) t ->
('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
val ( *! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
val ( +! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
end
val ( * ) :
('a, [< `R | `W > `R ]) t ->
('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
val ( + ) :
('a, [< `R | `W > `R ]) t ->
('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
val ( *! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
val ( +! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
end