| 505 | /******************************************************************************/ |
| 506 | |
| 507 | int dgefa ( double a[], int lda, int n, int ipvt[] ) |
| 508 | |
| 509 | /******************************************************************************/ |
| 510 | /* |
| 511 | Purpose: |
| 512 | |
| 513 | DGEFA factors a real general matrix. |
| 514 | |
| 515 | Modified: |
| 516 | |
| 517 | 16 May 2005 |
| 518 | |
| 519 | Author: |
| 520 | |
| 521 | C version by John Burkardt. |
| 522 | |
| 523 | Reference: |
| 524 | |
| 525 | Jack Dongarra, Cleve Moler, Jim Bunch and Pete Stewart, |
| 526 | LINPACK User's Guide, |
| 527 | SIAM, (Society for Industrial and Applied Mathematics), |
| 528 | 3600 University City Science Center, |
| 529 | Philadelphia, PA, 19104-2688. |
| 530 | ISBN 0-89871-172-X |
| 531 | |
| 532 | Parameters: |
| 533 | |
| 534 | Input/output, double A[LDA*N]. |
| 535 | On intput, the matrix to be factored. |
| 536 | On output, an upper triangular matrix and the multipliers used to obtain |
| 537 | it. The factorization can be written A=L*U, where L is a product of |
| 538 | permutation and unit lower triangular matrices, and U is upper triangular. |
| 539 | |
| 540 | Input, int LDA, the leading dimension of A. |
| 541 | |
| 542 | Input, int N, the order of the matrix A. |
| 543 | |
| 544 | Output, int IPVT[N], the pivot indices. |
| 545 | |
| 546 | Output, int DGEFA, singularity indicator. |
| 547 | 0, normal value. |
| 548 | K, if U(K,K) == 0. This is not an error condition for this subroutine, |
| 549 | but it does indicate that DGESL or DGEDI will divide by zero if called. |
| 550 | Use RCOND in DGECO for a reliable indication of singularity. |
| 551 | */ |
| 552 | { |
| 553 | int info; |
| 554 | int j; |
| 555 | int k; |
| 556 | int l; |
| 557 | double t; |
| 558 | /* |
| 559 | Gaussian elimination with partial pivoting. |
| 560 | */ |
| 561 | info = 0; |
| 562 | |
| 563 | for ( k = 1; k <= n-1; k++ ) |
| 564 | { |