{{alias}}( order, uplo, N, α, x, sx, y, sy, A, lda ) Performs the symmetric rank 2 operation `A = α*x*y^T + α*y*x^T + A` where `α` is a scalar, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` symmetric matrix. Indexing is relative to the first index. To introduce an offset, use typed array views. If `N` is equal to `0` or `α` is equal to `0`, the function returns `A` unchanged. Parameters ---------- order: string Row-major (C-style) or column-major (Fortran-style) order. Must be either 'row-major' or 'column-major'. uplo: string Specifies whether to reference the upper or lower triangular part of `A`. Must be either 'upper' or 'lower'. N: integer Number of elements along each dimension of `A`. α: number Scalar constant. x: Float64Array First input vector. sx: integer Index increment for `x`. y: Float64Array Second input vector. sy: integer Index increment for `y`. A: Float64Array Matrix. lda: integer Stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`). Returns ------- A: Float64Array Input matrix. Examples -------- > var x = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > var y = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > var A = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 0.0, 2.0 ] ); > {{alias}}( 'row-major', 'upper', 2, 1.0, x, 1, y, 1, A, 2 ) [ 3.0, 4.0, 0.0, 4.0 ] {{alias}}.ndarray( uplo, N, α, x, sx, ox, y, sy, oy, A, sa1, sa2, oa ) Performs the symmetric rank 2 operation `A = α*x*y^T + α*y*x^T + A`, using alternative indexing semantics and where `α` is a scalar, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` symmetric matrix. While typed array views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. Parameters ---------- uplo: string Specifies whether to reference the upper or lower triangular part of `A`. Must be either 'upper' or 'lower'. N: integer Number of elements along each dimension of `A`. α: number Scalar constant. x: Float64Array First input vector. sx: integer Index increment for `x`. ox: integer Starting index for `x`. y: Float64Array Second input vector. sy: integer Index increment for `y`. oy: integer Starting index for `y`. A: Float64Array Matrix. sa1: integer Stride of the first dimension of `A`. sa2: integer Stride of the second dimension of `A`. oa: integer Starting index for `A`. Returns ------- A: Float64Array Input matrix. Examples -------- > var x = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > var y = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0 ] ); > var A = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 0.0, 2.0 ] ); > {{alias}}.ndarray( 'upper', 2, 1.0, x, 1, 0, y, 1, 0, A, 2, 1, 0 ) [ 3.0, 4.0, 0.0, 4.0 ] See Also --------