@@ -41,6 +41,7 @@ import scopy = require( '@stdlib/blas/base/scopy' );
4141import sdot = require( '@stdlib/blas/base/sdot' ) ;
4242import snrm2 = require( '@stdlib/blas/base/snrm2' ) ;
4343import srot = require( '@stdlib/blas/base/srot' ) ;
44+ import srotm = require( '@stdlib/blas/base/srotm' ) ;
4445import sscal = require( '@stdlib/blas/base/sscal' ) ;
4546import zcopy = require( '@stdlib/blas/base/zcopy' ) ;
4647import zdrot = require( '@stdlib/blas/base/zdrot' ) ;
@@ -677,6 +678,41 @@ interface Namespace {
677678 */
678679 srot : typeof srot ;
679680
681+ /**
682+ * Applies a modified Givens plane rotation.
683+ *
684+ * @param N - number of indexed elements
685+ * @param x - first input array
686+ * @param strideX - `x` stride length
687+ * @param y - second input array
688+ * @param strideY - `y` stride length
689+ * @param param - parameters for the modified Givens transformation
690+ * @returns `y`
691+ *
692+ * @example
693+ * var Float32Array = require( '@stdlib/array/float32' );
694+ *
695+ * var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
696+ * var y = new Float32Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
697+ * var param = new Float32Array( [ 0.0, 0.0, 2.0, -3.0, 0.0 ] );
698+ *
699+ * ns.srotm( 2, x, 2, y, 1, param );
700+ * // x => <Float32Array>[ ~-17.0, 2.0, ~-18.0, 4.0, 5.0 ]
701+ * // y => <Float32Array>[ ~8.0, ~13.0, 8.0, 9.0, 10.0 ]
702+ *
703+ * @example
704+ * var Float32Array = require( '@stdlib/array/float32' );
705+ *
706+ * var x = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
707+ * var y = new Float32Array( [ 6.0, 7.0, 8.0, 9.0, 10.0 ] );
708+ * var param = new Float32Array( [ 0.0, 0.0, 2.0, -3.0, 0.0 ] );
709+ *
710+ * ns.srotm.ndarray( 2, x, 1, 0, y, 2, 1, param );
711+ * // x => <Float32Array>[ ~-20.0, ~-25.0, 3.0, 4.0, 5.0 ]
712+ * // y => <Float32Array>[ 6.0, ~9.0, 8.0, ~13.0, 10.0 ]
713+ */
714+ srotm : typeof srotm ;
715+
680716 /**
681717 * Multiplies a single-precision floating-point vector `x` by a constant `alpha`.
682718 *
0 commit comments