module Int: S
with type elt = int
type
elt
type ('a, [< `R | `W ])
t = (elt, 'a, [< `R | `W ] as 'b) CCArray1.array_
val add : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
('a, [< `R | `W > `R ]) t -> ('a, 'b) t
Elementwise sum
Raises WrongDimension
if dimensions do not fit
val mult : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
('a, [< `R | `W > `R ]) t -> ('a, 'b) t
Elementwise product
val scalar_add : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
x:elt -> ('a, 'b) t
Raises WrongDimension
if dimensions do not fit
val scalar_mult : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
x:elt -> ('a, 'b) t
Raises WrongDimension
if dimensions do not fit
val sum_elt : ('a, [< `R | `W > `R ]) t -> elt
Efficient sum of elements
val product_elt : ('a, [< `R | `W > `R ]) t -> elt
Efficient product of elements
val dot_product : ('a, [< `R | `W > `R ]) t ->
('b, [< `R | `W > `R ]) t -> elt
dot_product a b
returns sum_i a(i)*b(i)
with the given
sum and product, on elt
.
dot_product a b = sum_elt (product a b)
Raises WrongDimension
if a
and b
do not have the same size
module Infix: sig
.. end
include CCArray1.S.Infix