Function

cblas_strsm(_:_:_:_:_:_:_:_:_:_:_:_:)

Solves a triangular system of equations with multiple values for the right side.

Declaration

func cblas_strsm(_ __Order: CBLAS_ORDER, _ __Side: CBLAS_SIDE, _ __Uplo: CBLAS_UPLO, _ __TransA: CBLAS_TRANSPOSE, _ __Diag: CBLAS_DIAG, _ __M: Int32, _ __N: Int32, _ __alpha: Float, _ __A: UnsafePointer<Float>!, _ __lda: Int32, _ __B: UnsafeMutablePointer<Float>!, _ __ldb: Int32)

Parameters

Order

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

Side

Determines the order in which the matrix and vector should be multiplied.

Uplo

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

TransA

Specifies whether to use matrix A ('N' or 'n') or the transpose of A ('T', 't', 'C', or 'c').

Diag

Specifies whether the matrix is unit triangular. Possible values are 'U' (unit triangular) or 'N' (not unit triangular).

M

The number of rows in matrix B.

N

The number of columns in matrix B.

alpha

Scaling factor for matrix A.

A

Triangular matrix A.

lda

The leading dimension of matrix A.

B

On entry, matrix B. Overwritten on return by matrix X.

ldb

The leading dimension of matrix B.

Discussion

If Side is 'L', solves A*X=alpha*B or A'*X=alpha*B, depending on TransA.

If Side is 'R', solves X*A=alpha*B or X*A'=alpha*B, depending on TransA.

In either case, the results overwrite the values of matrix B in X.

See Also

Single-Precision Float Matrix Functions

func cblas_sasum(Int32, UnsafePointer<Float>!, Int32) -> Float

Computes the sum of the absolute values of elements in a vector (single-precision).

func cblas_saxpy(Int32, Float, UnsafePointer<Float>!, Int32, UnsafeMutablePointer<Float>!, Int32)

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

func cblas_snrm2(Int32, UnsafePointer<Float>!, Int32) -> Float

Computes the L2 norm (Euclidian length) of a vector (single precision).

func cblas_sscal(Int32, Float, UnsafeMutablePointer<Float>!, Int32)

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

func cblas_sspmv(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafePointer<Float>!, UnsafePointer<Float>!, Int32, Float, UnsafeMutablePointer<Float>!, Int32)

Scales a packed symmetric matrix, then multiplies by a vector, then scales and adds another vector (single precision).

func cblas_sspr(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafePointer<Float>!, Int32, UnsafeMutablePointer<Float>!)

Rank one update: adds a packed symmetric matrix to the product of a scaling factor, a vector, and its transpose (single precision).

func cblas_ssymv(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafePointer<Float>!, Int32, UnsafePointer<Float>!, Int32, Float, UnsafeMutablePointer<Float>!, Int32)

Scales a symmetric matrix, multiplies by a vector, then scales and adds another vector (single precision).

func cblas_ssyr(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafePointer<Float>!, Int32, UnsafeMutablePointer<Float>!, Int32)

Rank one update: adds a symmetric matrix to the product of a scaling factor, a vector, and its transpose (single precision).

func cblas_ssyrk(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, Int32, Int32, Float, UnsafePointer<Float>!, Int32, Float, UnsafeMutablePointer<Float>!, Int32)

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