Function

# cblas_dtrsm(_:_:_:_:_:_:_:_:_:_:_:_:)

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

## 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`.

### Double-Precision Float Matrix Functions

`func cblas_dasum(Int32, UnsafePointer<Double>!, Int32) -> Double`

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

`func cblas_dnrm2(Int32, UnsafePointer<Double>!, Int32) -> Double`

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

`func cblas_dscal(Int32, Double, UnsafeMutablePointer<Double>!, Int32)`

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

`func cblas_dspmv(CBLAS_ORDER, CBLAS_UPLO, Int32, Double, UnsafePointer<Double>!, UnsafePointer<Double>!, Int32, Double, UnsafeMutablePointer<Double>!, Int32)`

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

`func cblas_dspr(CBLAS_ORDER, CBLAS_UPLO, Int32, Double, UnsafePointer<Double>!, Int32, UnsafeMutablePointer<Double>!)`

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

`func cblas_dsyr(CBLAS_ORDER, CBLAS_UPLO, Int32, Double, UnsafePointer<Double>!, Int32, UnsafeMutablePointer<Double>!, Int32)`

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