MAGMA  2.0.2
Matrix Algebra for GPU and Multicore Architectures
single precision

Functions

float magma_cblas_sasum (magma_int_t n, const float *x, magma_int_t incx)
 Returns the sum of absolute values of vector x; i.e., one norm. More...
 
float magma_cblas_sdot (magma_int_t n, const float *x, magma_int_t incx, const float *y, magma_int_t incy)
 Returns dot product of vectors x and y; \( x^H y \). More...
 
magma_int_t magma_isamax (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx)
 Returns index of element of vector x having max. More...
 
magma_int_t magma_isamin (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx)
 Returns index of element of vector x having min. More...
 
float magma_sasum (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx)
 Returns the sum of absolute values of vector x; i.e., one norm. More...
 
void magma_saxpy (magma_int_t n, float alpha, magmaFloat_const_ptr dx, magma_int_t incx, magmaFloat_ptr dy, magma_int_t incy)
 Constant times a vector plus a vector; \( y = \alpha x + y \). More...
 
void magma_scopy (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx, magmaFloat_ptr dy, magma_int_t incy)
 Copy vector x to vector y; \( y = x \). More...
 
float magma_sdot (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx, magmaFloat_const_ptr dy, magma_int_t incy)
 Returns dot product of vectors x and y; \( x^H y \). More...
 
float magma_snrm2 (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx)
 Returns 2-norm of vector x. More...
 
void magma_srot (magma_int_t n, magmaFloat_ptr dx, magma_int_t incx, magmaFloat_ptr dy, magma_int_t incy, float c, float s)
 Apply Givens plane rotation, where cos (c) is real and sin (s) is real. More...
 
void magma_srotm (magma_int_t n, float *dx, magma_int_t incx, float *dy, magma_int_t incy, const float *param)
 Apply modified plane rotation.
 
void magma_srotmg (float *d1, float *d2, float *x1, const float *y1, float *param)
 Generate modified plane rotation.
 
void magma_sscal (magma_int_t n, float alpha, magmaFloat_ptr dx, magma_int_t incx)
 Scales a vector by a constant; \( x = \alpha x \). More...
 
void magma_sswap (magma_int_t n, magmaFloat_ptr dx, magma_int_t incx, magmaFloat_ptr dy, magma_int_t incy)
 Swap vector x and y; \( x <-> y \). More...
 
magma_int_t magma_isamax_q (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx, magma_queue_t queue)
 Returns index of element of vector x having max. More...
 
magma_int_t magma_isamin_q (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx, magma_queue_t queue)
 Returns index of element of vector x having min. More...
 
float magma_sasum_q (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx, magma_queue_t queue)
 Returns the sum of absolute values of vector x; i.e., one norm. More...
 
void magma_saxpy_q (magma_int_t n, float alpha, magmaFloat_const_ptr dx, magma_int_t incx, magmaFloat_ptr dy, magma_int_t incy, magma_queue_t queue)
 Constant times a vector plus a vector; \( y = \alpha x + y \). More...
 
void magma_scopy_q (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx, magmaFloat_ptr dy, magma_int_t incy, magma_queue_t queue)
 Copy vector x to vector y; \( y = x \). More...
 
float magma_sdot (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx, magmaFloat_const_ptr dy, magma_int_t incy, magma_queue_t queue)
 Returns dot product of vectors x and y; \( x^H y \). More...
 
float magma_snrm2_q (magma_int_t n, magmaFloat_const_ptr dx, magma_int_t incx, magma_queue_t queue)
 Returns 2-norm of vector x. More...
 
void magma_srot_q (magma_int_t n, magmaFloat_ptr dx, magma_int_t incx, magmaFloat_ptr dy, magma_int_t incy, float c, float s, magma_queue_t queue)
 Apply Givens plane rotation, where cos (c) is real and sin (s) is real. More...
 
void magma_srotm_q (magma_int_t n, float *dx, magma_int_t incx, float *dy, magma_int_t incy, const float *param, magma_queue_t queue)
 Apply modified plane rotation.
 
void magma_srotmg_q (float *d1, float *d2, float *x1, const float *y1, float *param, magma_queue_t queue)
 Generate modified plane rotation.
 
void magma_sscal_q (magma_int_t n, float alpha, magmaFloat_ptr dx, magma_int_t incx, magma_queue_t queue)
 Scales a vector by a constant; \( x = \alpha x \). More...
 
void magma_sswap_q (magma_int_t n, magmaFloat_ptr dx, magma_int_t incx, magmaFloat_ptr dy, magma_int_t incy, magma_queue_t queue)
 Swap vector x and y; \( x <-> y \). More...
 
void magmablas_saxpycp (magma_int_t m, magmaFloat_ptr r, magmaFloat_ptr x, magmaFloat_const_ptr b)
 
void magmablas_ssetmatrix_transpose (magma_int_t m, magma_int_t n, const float *hA, magma_int_t lda, magmaFloat_ptr dAT, magma_int_t ldda, magmaFloat_ptr dwork, magma_int_t lddwork, magma_int_t nb)
 
void magmablas_sswap (magma_int_t n, magmaFloat_ptr dx, magma_int_t incx, magmaFloat_ptr dy, magma_int_t incy)
 

Detailed Description

Function Documentation

float magma_cblas_sasum ( magma_int_t  n,
const float *  x,
magma_int_t  incx 
)

Returns the sum of absolute values of vector x; i.e., one norm.

To avoid dependence on CBLAS and incompatability issues between BLAS libraries, MAGMA uses its own implementation, following BLAS reference.

Parameters
[in]nNumber of elements in vector x. n >= 0.
[in]xREAL array on CPU host. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of x. incx > 0.
float magma_cblas_sdot ( magma_int_t  n,
const float *  x,
magma_int_t  incx,
const float *  y,
magma_int_t  incy 
)

Returns dot product of vectors x and y; \( x^H y \).

To avoid dependence on CBLAS and incompatability issues between BLAS libraries, MAGMA uses its own implementation, following BLAS reference.

Parameters
[in]nNumber of elements in vector x and y. n >= 0.
[in]xREAL array on CPU host. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of x. incx > 0.
[in]yREAL array on CPU host. The n element vector y of dimension (1 + (n-1)*incy).
[in]incyStride between consecutive elements of dy. incy > 0.
magma_int_t magma_isamax ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx 
)

Returns index of element of vector x having max.

absolute value; i.e., max (infinity) norm.

Parameters
[in]nNumber of elements in vector x. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx > 0.
magma_int_t magma_isamax_q ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx,
magma_queue_t  queue 
)

Returns index of element of vector x having max.

absolute value; i.e., max (infinity) norm.

Parameters
[in]nNumber of elements in vector x. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx > 0.
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_isamin ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx 
)

Returns index of element of vector x having min.

absolute value.

Parameters
[in]nNumber of elements in vector x. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx > 0.
magma_int_t magma_isamin_q ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx,
magma_queue_t  queue 
)

Returns index of element of vector x having min.

absolute value.

Parameters
[in]nNumber of elements in vector x. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx > 0.
[in]queuemagma_queue_t Queue to execute in.
float magma_sasum ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx 
)

Returns the sum of absolute values of vector x; i.e., one norm.

Parameters
[in]nNumber of elements in vector x. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx > 0.
float magma_sasum_q ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx,
magma_queue_t  queue 
)

Returns the sum of absolute values of vector x; i.e., one norm.

Parameters
[in]nNumber of elements in vector x. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx > 0.
[in]queuemagma_queue_t Queue to execute in.
void magma_saxpy ( magma_int_t  n,
float  alpha,
magmaFloat_const_ptr  dx,
magma_int_t  incx,
magmaFloat_ptr  dy,
magma_int_t  incy 
)

Constant times a vector plus a vector; \( y = \alpha x + y \).

Parameters
[in]nNumber of elements in vectors x and y. n >= 0.
[in]alphaScalar \( \alpha \)
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx != 0.
[in,out]dyREAL array on GPU device. The n element vector y of dimension (1 + (n-1)*incy).
[in]incyStride between consecutive elements of dy. incy != 0.
void magma_saxpy_q ( magma_int_t  n,
float  alpha,
magmaFloat_const_ptr  dx,
magma_int_t  incx,
magmaFloat_ptr  dy,
magma_int_t  incy,
magma_queue_t  queue 
)

Constant times a vector plus a vector; \( y = \alpha x + y \).

Parameters
[in]nNumber of elements in vectors x and y. n >= 0.
[in]alphaScalar \( \alpha \)
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx != 0.
[in,out]dyREAL array on GPU device. The n element vector y of dimension (1 + (n-1)*incy).
[in]incyStride between consecutive elements of dy. incy != 0.
[in]queuemagma_queue_t Queue to execute in.
void magma_scopy ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx,
magmaFloat_ptr  dy,
magma_int_t  incy 
)

Copy vector x to vector y; \( y = x \).

Parameters
[in]nNumber of elements in vectors x and y. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx != 0.
[out]dyREAL array on GPU device. The n element vector y of dimension (1 + (n-1)*incy).
[in]incyStride between consecutive elements of dy. incy != 0.
void magma_scopy_q ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx,
magmaFloat_ptr  dy,
magma_int_t  incy,
magma_queue_t  queue 
)

Copy vector x to vector y; \( y = x \).

Parameters
[in]nNumber of elements in vectors x and y. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx != 0.
[out]dyREAL array on GPU device. The n element vector y of dimension (1 + (n-1)*incy).
[in]incyStride between consecutive elements of dy. incy != 0.
[in]queuemagma_queue_t Queue to execute in.
float magma_sdot ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx,
magmaFloat_const_ptr  dy,
magma_int_t  incy 
)

Returns dot product of vectors x and y; \( x^H y \).

Parameters
[in]nNumber of elements in vector x and y. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx != 0.
[in]dyREAL array on GPU device. The n element vector y of dimension (1 + (n-1)*incy).
[in]incyStride between consecutive elements of dy. incy != 0.
float magma_sdot ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx,
magmaFloat_const_ptr  dy,
magma_int_t  incy,
magma_queue_t  queue 
)

Returns dot product of vectors x and y; \( x^H y \).

Parameters
[in]nNumber of elements in vector x and y. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx != 0.
[in]dyREAL array on GPU device. The n element vector y of dimension (1 + (n-1)*incy).
[in]incyStride between consecutive elements of dy. incy != 0.
[in]queuemagma_queue_t Queue to execute in.
float magma_snrm2 ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx 
)

Returns 2-norm of vector x.

Avoids unnecesary over/underflow.

Parameters
[in]nNumber of elements in vector x and y. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx > 0.
float magma_snrm2_q ( magma_int_t  n,
magmaFloat_const_ptr  dx,
magma_int_t  incx,
magma_queue_t  queue 
)

Returns 2-norm of vector x.

Avoids unnecesary over/underflow.

Parameters
[in]nNumber of elements in vector x and y. n >= 0.
[in]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx > 0.
[in]queuemagma_queue_t Queue to execute in.
void magma_srot ( magma_int_t  n,
magmaFloat_ptr  dx,
magma_int_t  incx,
magmaFloat_ptr  dy,
magma_int_t  incy,
float  c,
float  s 
)

Apply Givens plane rotation, where cos (c) is real and sin (s) is real.

Parameters
[in]nNumber of elements in vector x and y. n >= 0.
[in,out]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx). On output, overwritten with c*x + s*y.
[in]incxStride between consecutive elements of dx. incx != 0.
[in,out]dyREAL array on GPU device. The n element vector y of dimension (1 + (n-1)*incy). On output, overwritten with -conj(s)*x + c*y.
[in]incyStride between consecutive elements of dy. incy != 0.
[in]cfloat. cosine.
[in]sREAL. sine. c and s define a rotation [ c s ] where c*c + s*conj(s) = 1. [ -conj(s) c ]
void magma_srot_q ( magma_int_t  n,
magmaFloat_ptr  dx,
magma_int_t  incx,
magmaFloat_ptr  dy,
magma_int_t  incy,
float  c,
float  s,
magma_queue_t  queue 
)

Apply Givens plane rotation, where cos (c) is real and sin (s) is real.

Parameters
[in]nNumber of elements in vector x and y. n >= 0.
[in,out]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx). On output, overwritten with c*x + s*y.
[in]incxStride between consecutive elements of dx. incx != 0.
[in,out]dyREAL array on GPU device. The n element vector y of dimension (1 + (n-1)*incy). On output, overwritten with -conj(s)*x + c*y.
[in]incyStride between consecutive elements of dy. incy != 0.
[in]cfloat. cosine.
[in]sREAL. sine. c and s define a rotation [ c s ] where c*c + s*conj(s) = 1. [ -conj(s) c ]
[in]queuemagma_queue_t Queue to execute in.
void magma_sscal ( magma_int_t  n,
float  alpha,
magmaFloat_ptr  dx,
magma_int_t  incx 
)

Scales a vector by a constant; \( x = \alpha x \).

Parameters
[in]nNumber of elements in vector x. n >= 0.
[in]alphaScalar \( \alpha \)
[in,out]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx > 0.
void magma_sscal_q ( magma_int_t  n,
float  alpha,
magmaFloat_ptr  dx,
magma_int_t  incx,
magma_queue_t  queue 
)

Scales a vector by a constant; \( x = \alpha x \).

Parameters
[in]nNumber of elements in vector x. n >= 0.
[in]alphaScalar \( \alpha \)
[in,out]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx > 0.
[in]queuemagma_queue_t Queue to execute in.
void magma_sswap ( magma_int_t  n,
magmaFloat_ptr  dx,
magma_int_t  incx,
magmaFloat_ptr  dy,
magma_int_t  incy 
)

Swap vector x and y; \( x <-> y \).

Parameters
[in]nNumber of elements in vector x and y. n >= 0.
[in,out]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx != 0.
[in,out]dyREAL array on GPU device. The n element vector y of dimension (1 + (n-1)*incy).
[in]incyStride between consecutive elements of dy. incy != 0.
void magma_sswap_q ( magma_int_t  n,
magmaFloat_ptr  dx,
magma_int_t  incx,
magmaFloat_ptr  dy,
magma_int_t  incy,
magma_queue_t  queue 
)

Swap vector x and y; \( x <-> y \).

Parameters
[in]nNumber of elements in vector x and y. n >= 0.
[in,out]dxREAL array on GPU device. The n element vector x of dimension (1 + (n-1)*incx).
[in]incxStride between consecutive elements of dx. incx != 0.
[in,out]dyREAL array on GPU device. The n element vector y of dimension (1 + (n-1)*incy).
[in]incyStride between consecutive elements of dy. incy != 0.
[in]queuemagma_queue_t Queue to execute in.
void magmablas_saxpycp ( magma_int_t  m,
magmaFloat_ptr  r,
magmaFloat_ptr  x,
magmaFloat_const_ptr  b 
)
See also
magmablas_saxpycp_q
void magmablas_ssetmatrix_transpose ( magma_int_t  m,
magma_int_t  n,
const float *  hA,
magma_int_t  lda,
magmaFloat_ptr  dAT,
magma_int_t  ldda,
magmaFloat_ptr  dwork,
magma_int_t  lddwork,
magma_int_t  nb 
)
See also
magmablas_ssetmatrix_transpose_q
void magmablas_sswap ( magma_int_t  n,
magmaFloat_ptr  dx,
magma_int_t  incx,
magmaFloat_ptr  dy,
magma_int_t  incy 
)
See also
magmablas_sswap_q