Function

# cblas_cgemv(_:_:_:_:_:_:_:_:_:_:_:_:)

Multiplies a matrix by a vector (single-precision complex).

## Parameters

`Order`

Specifies row-major (C) or column-major (Fortran) data ordering.

`TransA`

Specifies whether to transpose matrix `A`.

`M`

Number of rows in matrix `A`.

`N`

Number of columns in matrix `A`.

`alpha`

Scaling factor for the product of matrix `A` and vector `X`.

`A`

Matrix A.

`lda`

The size of the first dimention of matrix `A`; if you are passing a matrix `A[m][n]`, the value should be `m`.

`X`

Vector X.

`incX`

Stride within `X`. For example, if `incX` is 7, every 7th element is used.

`beta`

Scaling factor for vector `Y`.

`Y`

Vector Y

`incY`

Stride within Y. For example, if incY is 7, every 7th element is used.

## Discussion

This function multiplies `A * X` (after transposing `A`, if needed) and multiplies the resulting matrix by `alpha`. It then multiplies vector `Y` by `beta`. It stores the sum of these two products in vector `Y`.

Thus, it calculates either

`Y←αAX + βY`

with optional use of the transposed form of `A`.

### Single-Precision Complex Matrix Functions

`func cblas_cher(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)`

Hermitian rank 1 update: adds the product of a scaling factor, vector `X`, and the conjugate transpose of `X` to matrix `A`.

`func cblas_cher2(CBLAS_ORDER, CBLAS_UPLO, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)`

Hermitian rank 2 update: adds the product of a scaling factor, vector `X`, and the conjugate transpose of vector `Y` to the product of the conjugate of the scaling factor, vector `Y`, and the conjugate transpose of vector `X`, and adds the result to matrix `A`.

`func cblas_cherk(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, Int32, Int32, Float, UnsafeRawPointer!, Int32, Float, UnsafeMutableRawPointer!, Int32)`

Rank-k update—multiplies a Hermitian matrix by its transpose and adds a second matrix (single precision).

`func cblas_chpr(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!)`

Scales and multiplies a vector times its conjugate transpose, then adds a matrix.

`func cblas_chpr2(CBLAS_ORDER, CBLAS_UPLO, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!)`

Multiplies a vector times the conjugate transpose of a second vector and vice-versa, sums the results, and adds a matrix.

`func cblas_cscal(Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)`

Multiplies each element of a vector by a constant (single-precision complex).

`func cblas_csscal(Int32, Float, UnsafeMutableRawPointer!, Int32)`

Multiplies each element of a vector by a constant (single-precision complex).

`func cblas_scasum(Int32, UnsafeRawPointer!, Int32) -> Float`

Computes the sum of the absolute values of real and imaginary parts of elements in a vector (single-precision complex).

`func cblas_scnrm2(Int32, UnsafeRawPointer!, Int32) -> Float`

Computes the unitary norm of a vector (single-precision complex).