(* File: impl_SDCZ.mli
Copyright (C) 2001-
Markus Mottl
email: markus.mottl@gmail.com
WWW: http://www.ocaml.info
Liam Stewart
email: liam@cs.toronto.edu
WWW: http://www.cs.toronto.edu/~liam
Christophe Troestler
email: Christophe.Troestler@umh.ac.be
WWW: http://math.umh.ac.be/an/
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*)
(** Interface to BLAS/LAPACK *)
open Bigarray
open Common
open Numberxx
(** {6 BLAS-1 interface} *)
val swap :
?n : int ->
?ofsx : int ->
?incx : int ->
x : vec ->
?ofsy : int ->
?incy : int ->
vec
-> unit
(** [swap ?n ?ofsx ?incx ~x ?ofsy ?incy y] see BLAS documentation!
@param n default = 1
@param ofsx default = 1
@param incx default = 1
@param ofsy default = 1
@param incy default = 1 *)
val scal : ?n : int -> num_type -> ?ofsx : int -> ?incx : int -> vec -> unit
(** [scal ?n alpha ?ofsx ?incx x] see BLAS documentation!
@param n default = greater n s.t. [ofsx+(n-1)(abs incx) <= dim x]
@param ofsx default = 1
@param incx default = 1 *)
val copy :
?n : int ->
?ofsy : int ->
?incy : int ->
?y : vec ->
?ofsx : int ->
?incx : int ->
vec
-> vec
(** [copy ?n ?ofsy ?incy ?y ?ofsx ?incx x] see BLAS documentation!
@return vector [y], which is overwritten.
@param n default = greater n s.t. [ofsx+(n-1)(abs incx) <= dim x]
@param ofsy default = 1
@param incy default = 1
@param y default = new vector with [ofsy+(n-1)(abs incy)] rows
@param ofsx default = 1
@param incx default = 1 *)
val axpy :
?n : int ->
?alpha : num_type ->
?ofsx : int ->
?incx : int ->
x : vec ->
?ofsy : int ->
?incy : int ->
vec
-> unit
(** [axpy ?n ?alpha ?ofsx ?incx ~x ?ofsy ?incy y] see BLAS documentation!
@param n default = greater n s.t. [ofsx+(n-1)(abs incx) <= dim x]
@param alpha default = 1.0
@param ofsx default = 1
@param incx default = 1
@param ofsy default = 1
@param incy default = 1 *)
val iamax : ?n : int -> ?ofsx : int -> ?incx : int -> vec -> int
(** [iamax ?n ?ofsx ?incx x] see BLAS documentation!
@param n default = greater n s.t. [ofsx+(n-1)(abs incx) <= dim x]
@param ofsx default = 1
@param incx default = 1 *)
val amax :
?n : int ->
?ofsx : int ->
?incx : int ->
vec
-> num_type
(** [amax ?n ?ofsx ?incx x] @return the greater of the absolute
values of the elements of the vector [x].
@param n default = greater n s.t. [ofsx+(n-1)(abs incx) <= dim x]
@param ofsx default = 1
@param incx default = 1 *)
(** {6 BLAS-2 interface} *)
val gemv :
?m : int ->
?n : int ->
?beta : float ->
?ofsy : int ->
?incy : int ->
?y : vec ->
?trans : trans3 ->
?alpha : float ->
?ar : int ->
?ac : int ->
mat ->
?ofsx : int ->
?incx : int ->
vec
-> vec
(** [gemv ?m ?n ?beta ?ofsy ?incy ?y ?trans ?alpha ?ar ?ac a ?ofsx ?incx x]
see BLAS documentation!
@return vector [y], which is overwritten.
@param m default = number of available rows in matrix [a]
@param n default = available columns in matrix [a]
@param beta default = 0.0
@param ofsy default = 1
@param incy default = 1
@param y default = vec with minimal required length (see BLAS)
@param trans default = `N
@param alpha default = 1.0
@param ar default = 1
@param ac default = 1
@param ofsx default = 1
@param incx default = 1 *)
val gbmv :
?m : int ->
?n : int ->
?beta : float ->
?ofsy : int ->
?incy : int ->
?y : vec ->
?trans : trans3 ->
?alpha : float ->
?ar : int ->
?ac : int ->
mat ->
int ->
int ->
?ofsx : int ->
?incx : int ->
vec
-> vec
(** [gbmv
?m ?n ?beta ?ofsy ?incy ?y ?trans ?alpha ?ar ?ac a kl ku ?ofsx ?incx x]
see BLAS documentation!
@return vector [y], which is overwritten.
@param m default = same as [n] (i.e., [a] is a square matrix)
@param n default = available number of columns in matrix [a]
@param beta default = 0.0
@param ofsy default = 1
@param incy default = 1
@param y default = vector with minimal required length (see BLAS)
@param trans default = `N
@param alpha default = 1.0
@param ar default = 1
@param ac default = 1
@param ofsx default = 1
@param incx default = 1 *)
val symv :
?n : int ->
?beta : float ->
?ofsy : int ->
?incy : int ->
?y : vec ->
?up : bool ->
?alpha : float ->
?ar : int ->
?ac : int ->
mat ->
?ofsx : int ->
?incx : int ->
vec
-> vec
(** [symv ?n ?beta ?ofsy ?incy ?y ?up ?alpha ?ar ?ac a ?ofsx ?incx x]
see BLAS documentation!
@return vector [y], which is overwritten.
@param n default = dimension of symmetric matrix [a]
@param beta default = 0.0
@param ofsy default = 1
@param incy default = 1
@param y default = vector with minimal required length (see BLAS)
@param up default = true (upper triangular portion of [a] is accessed)
@param alpha default = 1.0
@param ar default = 1
@param ac default = 1
@param ofsx default = 1
@param incx default = 1 *)
val trmv :
?n : int ->
?trans : trans3 ->
?diag : diag ->
?up : bool ->
?ar : int ->
?ac : int ->
mat ->
?ofsx : int ->
?incx : int ->
vec
-> unit
(** [trmv ?n ?trans ?diag ?up ?ar ?ac a ?ofsx ?incx x]
see BLAS documentation!
@param n default = dimension of triangular matrix [a]
@param trans default = `N
@param diag default = false (not a unit triangular matrix)
@param up default = true (upper triangular portion of [a] is accessed)
@param ar default = 1
@param ac default = 1
@param ofsx default = 1
@param incx default = 1 *)
val trsv :
?n : int ->
?trans : trans3 ->
?diag : diag ->
?up : bool ->
?ar : int ->
?ac : int ->
mat ->
?ofsx : int ->
?incx : int ->
vec
-> unit
(** [trsv ?n ?trans ?diag ?up ?ar ?ac a ?ofsx ?incx x]
see BLAS documentation!
@param n default = dimension of triangular matrix [a]
@param trans default = `N
@param diag default = false (not a unit triangular matrix)
@param up default = true (upper triangular portion of [a] is accessed)
@param ar default = 1
@param ac default = 1
@param ofsx default = 1
@param incx default = 1 *)
val tpmv :
?n : int ->
?trans : trans3 ->
?diag : diag ->
?up : bool ->
?ofsap : int ->
vec ->
?ofsx : int ->
?incx : int ->
vec
-> unit
(** [tpmv ?n ?trans ?diag ?up ?ofsap ap ?ofsx ?incx x]
see BLAS documentation!
@param n default = dimension of packed triangular matrix [ap]
@param trans default = `N
@param diag default = false (not a unit triangular matrix)
@param up default = true (upper triangular portion of [ap] is accessed)
@param ofsap default = 1
@param ofsx default = 1
@param incx default = 1 *)
val tpsv :
?n : int ->
?trans : trans3 ->
?diag : diag ->
?up : bool ->
?ofsap : int ->
vec ->
?ofsx : int ->
?incx : int ->
vec
-> unit
(** [tpsv ?n ?trans ?diag ?up ?ofsap ap ?ofsx ?incx x]
see BLAS documentation!
@param n default = dimension of packed triangular matrix [ap]
@param trans default = `N
@param diag default = false (not a unit triangular matrix)
@param up default = true (upper triangular portion of [ap] is accessed)
@param ofsap default = 1
@param ofsx default = 1
@param incx def