Function

cblas_csymm(_:_:_:_:_:_:_:_:_:_:_:_:_:)

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

Declaration

func cblas_csymm(_ __Order: CBLAS_ORDER, _ __Side: CBLAS_SIDE, _ __Uplo: CBLAS_UPLO, _ __M: Int32, _ __N: Int32, _ __alpha: UnsafeRawPointer!, _ __A: UnsafeRawPointer!, _ __lda: Int32, _ __B: UnsafeRawPointer!, _ __ldb: Int32, _ __beta: UnsafeRawPointer!, _ __C: UnsafeMutableRawPointer!, _ __ldc: Int32)

Parameters

Order

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

Side

Determines the order in which the matrices should be multiplied.

Uplo

Specifies whether to use the upper or lower triangle from the matrix. Valid values are 'U' or 'L'.

M

Number of rows in matrices A and C.

N

Number of columns in matrices B and C.

alpha

Scaling factor for the product of matrices A and B.

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.

B

Matrix B.

ldb

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

beta

Scaling factor for matrix C.

C

Matrix C.

ldc

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

Discussion

This function multiplies A * B or B * A (depending on the value of Side) and multiplies the resulting matrix by alpha. It then multiplies matrix C by beta. It stores the sum of these two products in matrix C.

Thus, it calculates either

C←αAB + βC

or

C←αBA + βC

where

A = AT

See Also

Single-Precision Complex Matrix Functions

func cblas_caxpy(Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)

Computes a constant times a vector plus a vector (single-precision complex).

func cblas_ccopy(Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)

Copies a vector to another vector (single-precision complex).

func cblas_cgerc(CBLAS_ORDER, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)

Multiplies vector X by the conjugate transpose of vector Y, then adds matrix A (single-precision complex).

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_cswap(Int32, UnsafeMutableRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)

Exchanges the elements of two vectors (single-precision complex).

func cblas_csyrk(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)

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

func cblas_ctpmv(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)

Multiplies a triangular matrix by a vector, then adds a vector (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).