Library
Module
Module type
Parameter
Class
Class type
type t = vec
val random :
?rnd_state:Random.State.t ->
?from:float ->
?range:float ->
int ->
Lacaml_float64.vec
random ?rnd_state ?from ?range n
val abs : Lacaml_float64.Types.Vec.unop
abs ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the absolute value of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val signum : Lacaml_float64.Types.Vec.unop
signum ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the sign value (-1
for negative numbers, 0
(or -0
) for zero, 1
for positive numbers, nan
for nan
) of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val sqr : Lacaml_float64.Types.Vec.unop
sqr ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the square of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val sqrt : Lacaml_float64.Types.Vec.unop
sqrt ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the square root of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val exp : Lacaml_float64.Types.Vec.unop
exp ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the exponential of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val exp2 : Lacaml_float64.Types.Vec.unop
exp ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the base-2 exponential of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val expm1 : Lacaml_float64.Types.Vec.unop
expm1 ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes exp x -. 1.
for n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val log : Lacaml_float64.Types.Vec.unop
log ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the logarithm of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val log10 : Lacaml_float64.Types.Vec.unop
log10 ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the base-10 logarithm of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val log1p : Lacaml_float64.Types.Vec.unop
log1p ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes log (1 + x)
for n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val sin : Lacaml_float64.Types.Vec.unop
sin ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the sine of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val cos : Lacaml_float64.Types.Vec.unop
cos ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the cosine of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val tan : Lacaml_float64.Types.Vec.unop
tan ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the tangent of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val asin : Lacaml_float64.Types.Vec.unop
asin ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the arc sine of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val acos : Lacaml_float64.Types.Vec.unop
acos ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the arc cosine of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val atan : Lacaml_float64.Types.Vec.unop
atan ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the arc tangent of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val sinh : Lacaml_float64.Types.Vec.unop
sinh ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the hyperbolic sine of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val cosh : Lacaml_float64.Types.Vec.unop
cosh ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the hyperbolic cosine of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val tanh : Lacaml_float64.Types.Vec.unop
tanh ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the hyperbolic tangent of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val asinh : Lacaml_float64.Types.Vec.unop
asinh ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the hyperbolic arc sine of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val acosh : Lacaml_float64.Types.Vec.unop
cosh ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the hyperbolic arc cosine of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val atanh : Lacaml_float64.Types.Vec.unop
atanh ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the hyperbolic arc tangent of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val floor : Lacaml_float64.Types.Vec.unop
floor ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the floor of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val ceil : Lacaml_float64.Types.Vec.unop
ceil ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the ceiling of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val erf : Lacaml_float64.Types.Vec.unop
erf ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the error function for n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val erfc : Lacaml_float64.Types.Vec.unop
erfc ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the complementary error function for n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val logistic : Lacaml_float64.Types.Vec.unop
logistic ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the logistict function 1/(1 + exp(-a)
for n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val relu : Lacaml_float64.Types.Vec.unop
relu ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the rectified linear unit function max(x, 0)
for n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val softplus : Lacaml_float64.Types.Vec.unop
softplus ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the softplus function log(1 + exp(x)
for n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val softsign : Lacaml_float64.Types.Vec.unop
softsign ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the softsign function x / (1 + abs(x))
for n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val pow : Lacaml_float64.Types.Vec.binop
pow ?n ?ofsz ?incz ?z ?ofsx ?incx x ?ofsy ?incy y
computes pow(a, b)
of n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively. If z
is given, the result will be stored in there using increments of incz
, otherwise a fresh vector will be used. The resulting vector is returned.
val atan2 : Lacaml_float64.Types.Vec.binop
atan2 ?n ?ofsz ?incz ?z ?ofsx ?incx x ?ofsy ?incy y
computes atan2(a, b)
of n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively. If z
is given, the result will be stored in there using increments of incz
, otherwise a fresh vector will be used. The resulting vector is returned.
val hypot : Lacaml_float64.Types.Vec.binop
hypot ?n ?ofsz ?incz ?z ?ofsx ?incx x ?ofsy ?incy y
computes sqrt(x*x + y*y)
of n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively. If z
is given, the result will be stored in there using increments of incz
, otherwise a fresh vector will be used. The resulting vector is returned.
val min2 : Lacaml_float64.Types.Vec.binop
min2 ?n ?ofsz ?incz ?z ?ofsx ?incx x ?ofsy ?incy y
computes the minimum of n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively. If z
is given, the result will be stored in there using increments of incz
, otherwise a fresh vector will be used. The resulting vector is returned.
val max2 : Lacaml_float64.Types.Vec.binop
max2 ?n ?ofsz ?incz ?z ?ofsx ?incx x ?ofsy ?incy y
computes the maximum of n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively. If z
is given, the result will be stored in there using increments of incz
, otherwise a fresh vector will be used. The resulting vector is returned.
val log_sum_exp :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
Lacaml_float64.num_type
log_sum_exp ?n ?ofsx ?incx x
computes the logarithm of the sum of exponentials of the n
elements in vector x
, separated by incx
incremental steps.
val create : int -> Lacaml_float64.vec
create n
val make : int -> Lacaml_float64.num_type -> Lacaml_float64.vec
make n x
val make0 : int -> Lacaml_float64.vec
make0 n x
val init : int -> (int -> Lacaml_float64.num_type) -> Lacaml_float64.vec
init n f
val of_array : Lacaml_float64.num_type array -> Lacaml_float64.vec
of_array ar
val to_array : Lacaml_float64.vec -> Lacaml_float64.num_type array
to_array v
val of_list : Lacaml_float64.num_type list -> Lacaml_float64.vec
of_list l
val to_list : Lacaml_float64.vec -> Lacaml_float64.num_type list
to_list v
val append : Lacaml_float64.vec -> Lacaml_float64.vec -> Lacaml_float64.vec
append v1 v2
val concat : Lacaml_float64.vec list -> Lacaml_float64.vec
concat vs
val empty : Lacaml_float64.vec
empty
, the empty vector.
val linspace :
?y:Lacaml_float64.vec ->
Lacaml_float64.num_type ->
Lacaml_float64.num_type ->
int ->
Lacaml_float64.vec
linspace ?z a b n
val logspace :
?y:Lacaml_float64.vec ->
Lacaml_float64.num_type ->
Lacaml_float64.num_type ->
?base:float ->
int ->
Lacaml_float64.vec
logspace ?z a b base n
val dim : Lacaml_float64.vec -> int
dim x
val map :
(Lacaml_float64.num_type -> Lacaml_float64.num_type) ->
?n:int ->
?ofsy:int ->
?incy:int ->
?y:Lacaml_float64.vec ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
Lacaml_float64.vec
map f ?n ?ofsx ?incx x
val iter :
(Lacaml_float64.num_type -> unit) ->
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
unit
iter ?n ?ofsx ?incx f x
applies function f
in turn to all elements of vector x
.
val iteri :
(int -> Lacaml_float64.num_type -> unit) ->
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
unit
iteri ?n ?ofsx ?incx f x
same as iter
but additionally passes the index of the element as first argument and the element itself as second argument.
val fold :
('a -> Lacaml_float64.num_type -> 'a) ->
'a ->
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
'a
fold f a ?n ?ofsx ?incx x
is f (... (f (f a x.{ofsx}) x.{ofsx + incx}) ...) x.{ofsx + (n-1)*incx}
if incx > 0
and the same in the reverse order of appearance of the x
values if incx < 0
.
val rev : Lacaml_float64.vec -> Lacaml_float64.vec
rev x
reverses vector x
(non-destructive).
val max :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
Lacaml_float64.num_type
max ?n ?ofsx ?incx x
computes the greater of the n
elements in vector x
(2-norm), separated by incx
incremental steps. NaNs are ignored. If only NaNs are encountered, the negative infinity
value will be returned.
val min :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
Lacaml_float64.num_type
min ?n ?ofsx ?incx x
computes the smaller of the n
elements in vector x
(2-norm), separated by incx
incremental steps. NaNs are ignored. If only NaNs are encountered, the infinity
value will be returned.
val sort :
?cmp:(Lacaml_float64.num_type -> Lacaml_float64.num_type -> int) ->
?decr:bool ->
?n:int ->
?ofsp:int ->
?incp:int ->
?p:Lacaml_common.int_vec ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
unit
sort ?cmp ?n ?ofsx ?incx x
sorts the array x
in increasing order according to the comparison function cmp
.
val fill :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
Lacaml_float64.num_type ->
unit
fill ?n ?ofsx ?incx x a
fills vector x
with value a
in the designated range.
val sum :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
Lacaml_float64.num_type
sum ?n ?ofsx ?incx x
computes the sum of the n
elements in vector x
, separated by incx
incremental steps.
val prod :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
Lacaml_float64.num_type
prod ?n ?ofsx ?incx x
computes the product of the n
elements in vector x
, separated by incx
incremental steps.
val add_const : Lacaml_float64.num_type -> Lacaml_float64.Types.Vec.unop
add_const c ?n ?ofsy ?incy ?y ?ofsx ?incx x
adds constant c
to the n
elements of vector x
and stores the result in y
, using incx
and incy
as incremental steps respectively. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val sqr_nrm2 :
?stable:bool ->
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
float
sqr_nrm2 ?stable ?n ?c ?ofsx ?incx x
computes the square of the 2-norm (Euclidean norm) of vector x
separated by incx
incremental steps. If stable
is true, this is equivalent to squaring the result of calling the BLAS-function nrm2
, which avoids over- and underflow if possible. If stable
is false (default), dot
will be called instead for greatly improved performance.
val ssqr :
?n:int ->
?c:Lacaml_float64.num_type ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
Lacaml_float64.num_type
ssqr ?n ?c ?ofsx ?incx x
computes the sum of squared differences of the n
elements in vector x
from constant c
, separated by incx
incremental steps. Please do not confuse with sqr_nrm2
! The current function behaves differently with complex numbers when zero is passed in for c
. It computes the square for each entry then, whereas sqr_nrm2
uses the conjugate transpose in the product. The latter will therefore always return a real number.
val neg : Lacaml_float64.Types.Vec.unop
neg ?n ?ofsy ?incy ?y ?ofsx ?incx x
negates n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val reci : Lacaml_float64.Types.Vec.unop
reci ?n ?ofsy ?incy ?y ?ofsx ?incx x
computes the reciprocal value of n
elements of the vector x
using incx
as incremental steps. If y
is given, the result will be stored in there using increments of incy
, otherwise a fresh vector will be used. The resulting vector is returned.
val add : Lacaml_float64.Types.Vec.binop
add ?n ?ofsz ?incz ?z ?ofsx ?incx x ?ofsy ?incy y
adds n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively. If z
is given, the result will be stored in there using increments of incz
, otherwise a fresh vector will be used. The resulting vector is returned.
val sub : Lacaml_float64.Types.Vec.binop
sub ?n ?ofsz ?incz ?z ?ofsx ?incx x ?ofsy ?incy y
subtracts n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively. If z
is given, the result will be stored in there using increments of incz
, otherwise a fresh vector will be used. The resulting vector is returned.
val mul : Lacaml_float64.Types.Vec.binop
mul ?n ?ofsz ?incz ?z ?ofsx ?incx x ?ofsy ?incy y
multiplies n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively. If z
is given, the result will be stored in there using increments of incz
, otherwise a fresh vector will be used. The resulting vector is returned.
val div : Lacaml_float64.Types.Vec.binop
div ?n ?ofsz ?incz ?z ?ofsx ?incx x ?ofsy ?incy y
divides n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively. If z
is given, the result will be stored in there using increments of incz
, otherwise a fresh vector will be used. The resulting vector is returned.
val zpxy :
?n:int ->
?ofsz:int ->
?incz:int ->
Lacaml_float64.vec ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
?ofsy:int ->
?incy:int ->
Lacaml_float64.vec ->
unit
zpxy ?n ?ofsz ?incz z ?ofsx ?incx x ?ofsy ?incy y
multiplies n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively, and adds the result to and stores it in the specified range in z
. This function is useful for convolutions.
val zmxy :
?n:int ->
?ofsz:int ->
?incz:int ->
Lacaml_float64.vec ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
?ofsy:int ->
?incy:int ->
Lacaml_float64.vec ->
unit
zmxy ?n ?ofsz ?incz z ?ofsx ?incx x ?ofsy ?incy y
multiplies n
elements of vectors x
and y
elementwise, using incx
and incy
as incremental steps respectively, and substracts the result from and stores it in the specified range in z
. This function is useful for convolutions.
val ssqr_diff :
?n:int ->
?ofsx:int ->
?incx:int ->
Lacaml_float64.vec ->
?ofsy:int ->
?incy:int ->
Lacaml_float64.vec ->
Lacaml_float64.num_type
ssqr_diff ?n ?ofsx ?incx x ?ofsy ?incy y
returns the sum of squared differences of n
elements of vectors x
and y
, using incx
and incy
as incremental steps respectively.