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

Function dormtr_

numpy/linalg/lapack_lite/f2c_d_lapack.c:36537–36801  ·  view source on GitHub ↗

Subroutine */

Source from the content-addressed store, hash-verified

36535} /* dormqr_ */
36536
36537/* Subroutine */ int dormtr_(char *side, char *uplo, char *trans, integer *m,
36538 integer *n, doublereal *a, integer *lda, doublereal *tau, doublereal *
36539 c__, integer *ldc, doublereal *work, integer *lwork, integer *info)
36540{
36541 /* System generated locals */
36542 address a__1[2];
36543 integer a_dim1, a_offset, c_dim1, c_offset, i__1[2], i__2, i__3;
36544 char ch__1[2];
36545
36546 /* Local variables */
36547 static integer i1, i2, nb, mi, ni, nq, nw;
36548 static logical left;
36549 extern logical lsame_(char *, char *);
36550 static integer iinfo;
36551 static logical upper;
36552 extern /* Subroutine */ int xerbla_(char *, integer *);
36553 extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
36554 integer *, integer *, ftnlen, ftnlen);
36555 extern /* Subroutine */ int dormql_(char *, char *, integer *, integer *,
36556 integer *, doublereal *, integer *, doublereal *, doublereal *,
36557 integer *, doublereal *, integer *, integer *),
36558 dormqr_(char *, char *, integer *, integer *, integer *,
36559 doublereal *, integer *, doublereal *, doublereal *, integer *,
36560 doublereal *, integer *, integer *);
36561 static integer lwkopt;
36562 static logical lquery;
36563
36564
36565/*
36566 -- LAPACK routine (version 3.2) --
36567 -- LAPACK is a software package provided by Univ. of Tennessee, --
36568 -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
36569 November 2006
36570
36571
36572 Purpose
36573 =======
36574
36575 DORMTR overwrites the general real M-by-N matrix C with
36576
36577 SIDE = 'L' SIDE = 'R'
36578 TRANS = 'N': Q * C C * Q
36579 TRANS = 'T': Q**T * C C * Q**T
36580
36581 where Q is a real orthogonal matrix of order nq, with nq = m if
36582 SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of
36583 nq-1 elementary reflectors, as returned by DSYTRD:
36584
36585 if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
36586
36587 if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).
36588
36589 Arguments
36590 =========
36591
36592 SIDE (input) CHARACTER*1
36593 = 'L': apply Q or Q**T from the Left;
36594 = 'R': apply Q or Q**T from the Right.

Callers 1

dsyevd_Function · 0.85

Calls 5

lsame_Function · 0.85
ilaenv_Function · 0.85
dormql_Function · 0.85
dormqr_Function · 0.85
maxFunction · 0.50

Tested by

no test coverage detected