Function

# cblas_zrotg(_:_:_:_:)

Constructs a complex Givens rotation.

SDKs

- iOS 4.0+
- macOS 10.2+
- Mac Catalyst 13.0+
- tvOS 9.0+
- watchOS 2.0+

## Parameters

`a`

Complex value `a`

. Overwritten on return with result `r`

.

`b`

Complex value `a`

. Overwritten on return with result `z`

(zero).

`c`

Real value `c`

. Unused on entry. Overwritten on return with the value `cos(θ)`

.

`s`

Complex value `s`

. Unused on entry. Overwritten on return with the value `sin(θ)`

.

## Discussion

Given a vertical matrix containing `a`

and `b`

, computes the values of `cos θ`

and `sin θ`

that zero the lower value (`b`

). Returns the value of `sin θ`

in `s`

, the value of `cos θ`

in `c`

, and the upper value (`r`

) in `a`

.

## See Also

### Double-Precision Complex Matrix Functions

`func cblas_zgbmv(CBLAS_ORDER, CBLAS_TRANSPOSE, Int32, Int32, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)`

Scales a general band matrix, then multiplies by a vector, then adds a vector (double-precision complex).

`func cblas_zgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, Int32, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)`

Multiplies two matrices (double-precision complex).

`func cblas_zgemv(CBLAS_ORDER, CBLAS_TRANSPOSE, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)`

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

`func cblas_zgerc(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 (double-precision complex).

`func cblas_zgeru(CBLAS_ORDER, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)`

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

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

Scales a Hermitian band matrix, then multiplies by a vector, then adds a vector (double-precision complex).

`func cblas_zhemm(CBLAS_ORDER, CBLAS_SIDE, CBLAS_UPLO, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)`

Multiplies two Hermitian matrices (double-precision complex).

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

Scales and multiplies a Hermitian matrix by a vector, then adds a second (scaled) vector.

`func cblas_zher2(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_zher2k(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, Double, UnsafeMutableRawPointer!, Int32)`

Performs a rank-2k update of a complex Hermitian matrix (double-precision complex).

`func cblas_zherk(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, Int32, Int32, Double, UnsafeRawPointer!, Int32, Double, UnsafeMutableRawPointer!, Int32)`

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

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

Scales a packed hermitian matrix, multiplies it by a vector, and adds a scaled vector.

`func cblas_zhpr2(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_zsymm(CBLAS_ORDER, CBLAS_SIDE, CBLAS_UPLO, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)`

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

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

Performs a rank-2k update of a symmetric matrix (double-precision complex).

`func cblas_zsyrk(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 (double-precision complex).

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

Scales a triangular band matrix, then multiplies by a vector (double-precision complex).

`func cblas_ztrmm(CBLAS_ORDER, CBLAS_SIDE, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)`

Scales a triangular matrix and multiplies it by a matrix.

`func cblas_ztrsm(CBLAS_ORDER, CBLAS_SIDE, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!, Int32)`

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