| 1166 | } /* ilaslc_ */ |
| 1167 | |
| 1168 | integer ilaslr_(integer *m, integer *n, real *a, integer *lda) |
| 1169 | { |
| 1170 | /* System generated locals */ |
| 1171 | integer a_dim1, a_offset, ret_val, i__1; |
| 1172 | |
| 1173 | /* Local variables */ |
| 1174 | static integer i__, j; |
| 1175 | |
| 1176 | |
| 1177 | /* |
| 1178 | -- LAPACK auxiliary routine (version 3.2.2) -- |
| 1179 | |
| 1180 | -- June 2010 -- |
| 1181 | |
| 1182 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 1183 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 1184 | |
| 1185 | |
| 1186 | Purpose |
| 1187 | ======= |
| 1188 | |
| 1189 | ILASLR scans A for its last non-zero row. |
| 1190 | |
| 1191 | Arguments |
| 1192 | ========= |
| 1193 | |
| 1194 | M (input) INTEGER |
| 1195 | The number of rows of the matrix A. |
| 1196 | |
| 1197 | N (input) INTEGER |
| 1198 | The number of columns of the matrix A. |
| 1199 | |
| 1200 | A (input) REAL array, dimension (LDA,N) |
| 1201 | The m by n matrix A. |
| 1202 | |
| 1203 | LDA (input) INTEGER |
| 1204 | The leading dimension of the array A. LDA >= max(1,M). |
| 1205 | |
| 1206 | ===================================================================== |
| 1207 | |
| 1208 | |
| 1209 | Quick test for the common case where one corner is non-zero. |
| 1210 | */ |
| 1211 | /* Parameter adjustments */ |
| 1212 | a_dim1 = *lda; |
| 1213 | a_offset = 1 + a_dim1; |
| 1214 | a -= a_offset; |
| 1215 | |
| 1216 | /* Function Body */ |
| 1217 | if (*m == 0) { |
| 1218 | ret_val = *m; |
| 1219 | } else if (a[*m + a_dim1] != 0.f || a[*m + *n * a_dim1] != 0.f) { |
| 1220 | ret_val = *m; |
| 1221 | } else { |
| 1222 | /* Scan up each column tracking the last zero row seen. */ |
| 1223 | ret_val = 0; |
| 1224 | i__1 = *n; |
| 1225 | for (j = 1; j <= i__1; ++j) { |