MCPcopy Create free account
hub / github.com/numpy/numpy / sormtr_

Function sormtr_

numpy/linalg/lapack_lite/f2c_s_lapack.c:36402–36666  ·  view source on GitHub ↗

Subroutine */

Source from the content-addressed store, hash-verified

36400} /* sormqr_ */
36401
36402/* Subroutine */ int sormtr_(char *side, char *uplo, char *trans, integer *m,
36403 integer *n, real *a, integer *lda, real *tau, real *c__, integer *ldc,
36404 real *work, integer *lwork, integer *info)
36405{
36406 /* System generated locals */
36407 address a__1[2];
36408 integer a_dim1, a_offset, c_dim1, c_offset, i__1[2], i__2, i__3;
36409 char ch__1[2];
36410
36411 /* Local variables */
36412 static integer i1, i2, nb, mi, ni, nq, nw;
36413 static logical left;
36414 extern logical lsame_(char *, char *);
36415 static integer iinfo;
36416 static logical upper;
36417 extern /* Subroutine */ int xerbla_(char *, integer *);
36418 extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
36419 integer *, integer *, ftnlen, ftnlen);
36420 extern /* Subroutine */ int sormql_(char *, char *, integer *, integer *,
36421 integer *, real *, integer *, real *, real *, integer *, real *,
36422 integer *, integer *);
36423 static integer lwkopt;
36424 static logical lquery;
36425 extern /* Subroutine */ int sormqr_(char *, char *, integer *, integer *,
36426 integer *, real *, integer *, real *, real *, integer *, real *,
36427 integer *, integer *);
36428
36429
36430/*
36431 -- LAPACK routine (version 3.2) --
36432 -- LAPACK is a software package provided by Univ. of Tennessee, --
36433 -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
36434 November 2006
36435
36436
36437 Purpose
36438 =======
36439
36440 SORMTR overwrites the general real M-by-N matrix C with
36441
36442 SIDE = 'L' SIDE = 'R'
36443 TRANS = 'N': Q * C C * Q
36444 TRANS = 'T': Q**T * C C * Q**T
36445
36446 where Q is a real orthogonal matrix of order nq, with nq = m if
36447 SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of
36448 nq-1 elementary reflectors, as returned by SSYTRD:
36449
36450 if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
36451
36452 if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).
36453
36454 Arguments
36455 =========
36456
36457 SIDE (input) CHARACTER*1
36458 = 'L': apply Q or Q**T from the Left;
36459 = 'R': apply Q or Q**T from the Right.

Callers 1

ssyevd_Function · 0.85

Calls 5

lsame_Function · 0.85
ilaenv_Function · 0.85
sormql_Function · 0.85
sormqr_Function · 0.85
maxFunction · 0.50

Tested by

no test coverage detected