| 400 | } /* iladlc_ */ |
| 401 | |
| 402 | integer iladlr_(integer *m, integer *n, doublereal *a, integer *lda) |
| 403 | { |
| 404 | /* System generated locals */ |
| 405 | integer a_dim1, a_offset, ret_val, i__1; |
| 406 | |
| 407 | /* Local variables */ |
| 408 | static integer i__, j; |
| 409 | |
| 410 | |
| 411 | /* |
| 412 | -- LAPACK auxiliary routine (version 3.2.2) -- |
| 413 | |
| 414 | -- June 2010 -- |
| 415 | |
| 416 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 417 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 418 | |
| 419 | |
| 420 | Purpose |
| 421 | ======= |
| 422 | |
| 423 | ILADLR scans A for its last non-zero row. |
| 424 | |
| 425 | Arguments |
| 426 | ========= |
| 427 | |
| 428 | M (input) INTEGER |
| 429 | The number of rows of the matrix A. |
| 430 | |
| 431 | N (input) INTEGER |
| 432 | The number of columns of the matrix A. |
| 433 | |
| 434 | A (input) DOUBLE PRECISION array, dimension (LDA,N) |
| 435 | The m by n matrix A. |
| 436 | |
| 437 | LDA (input) INTEGER |
| 438 | The leading dimension of the array A. LDA >= max(1,M). |
| 439 | |
| 440 | ===================================================================== |
| 441 | |
| 442 | |
| 443 | Quick test for the common case where one corner is non-zero. |
| 444 | */ |
| 445 | /* Parameter adjustments */ |
| 446 | a_dim1 = *lda; |
| 447 | a_offset = 1 + a_dim1; |
| 448 | a -= a_offset; |
| 449 | |
| 450 | /* Function Body */ |
| 451 | if (*m == 0) { |
| 452 | ret_val = *m; |
| 453 | } else if (a[*m + a_dim1] != 0. || a[*m + *n * a_dim1] != 0.) { |
| 454 | ret_val = *m; |
| 455 | } else { |
| 456 | /* Scan up each column tracking the last zero row seen. */ |
| 457 | ret_val = 0; |
| 458 | i__1 = *n; |
| 459 | for (j = 1; j <= i__1; ++j) { |