- generate a consistent right-hand side 97#97 such that 98#98 is in
the range space of 67#67, compute a matrix 98#98 using SGELS, and compute
the ratio

99#99

- If 67#67 has more rows than columns (i.e. we are solving a
least-squares problem), form 100#100, and check whether
74#74 is orthogonal to the column space of 16#16 by computing

101#101

- If 67#67 has more columns than rows (i.e. we are solving an
overdetermined system), check whether the solution 98#98 is
in the row space of 67#67 by scaling both 98#98 and 67#67 to have
norm one, and forming the QR factorization
of 102#102 if 96#96, and the LQ factorization of
103#103 if 95#95. Letting
104#104 in the
first case, and
105#105 in the latter,
we compute

106#106

The SGELSX, SGELSY, SGELSS and SGELSD drivers solve a possibly rank-deficient system 93#93 using a complete orthogonal factorization (SGELSX or SGELSY) or singular value decomposition (SGELSS or SGELSD), respectively. We generate matrices 16#16 that have rank 107#107 or rank 108#108 and are scaled to be near underflow, of moderate norm, or near overflow. We also generate the null matrix (which has rank 109#109). Given such a matrix, we then generate a right-hand side 97#97 which is in the range space of 16#16.

In the process of determining 98#98, SGELSX (or SGELSY) computes a complete orthogonal factorization 110#110, whereas SGELSS (or SGELSD) computes the singular value decomposition 111#111.

- If 52#52 are the true singular values of 16#16, and 78#78 are
the
singular values of 85#85, we compute

112#112

for SGELSX (or SGELSY), and

113#113

for SGELSS (or SGELSD). - Compute the ratio

99#99

- If 114#114, form
100#100, and check whether
74#74 is orthogonal to the column space of 16#16 by computing

115#115

- If 116#116, check if 98#98 is in the row space of 16#16 by forming
the LQ factorization of
103#103.
Letting
105#105, we return

106#106