/********************************************************************/
/* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno          */
/* All rights reserved.                                             */
/********************************************************************/
//b1bfac_ executes the LU-factorization without pivoting of the banded matrix A
//of order NROW with (NBANDL + 1 + NBANDU) bands of diagonals in W.
//  GAUSS Elimination  W I T H O U T  pivoting is used. The routine is
//  intended for use with matrices A which do not require row 
//  interchanges durnig factorzation, especially for the TOTALLY POSITIVE 
//  matrices which occur in spline calculations. 
//  The routine should not be used for arbitrary banded matrix.
//  Function's return value is:
//              =0:SUCCESS, =1:FAILURE.
//
// ******  I N P U T  ****** 
//  W.....ARRAY OF SIZE  (NROWW,NROW)  CONTAINING THE INTERESTING 
//      PART OF A BANDED MATRIX  A , WITH THE DIAGONALS OR BANDS OF  A 
//      STORED IN THE ROWS OF  W , WHILE COLUMNS OF  A  CORRESPOND TO 
//      COLUMNS OF  W . THIS IS THE STORAGE MODE USED IN  LINPACK  AND 
//      RESULTS IN EFFICIENT INNERMOST LOOPS. 
//         EXPLICITLY,  A  HAS  NBANDL  BANDS BELOW THE DIAGONAL 
//                          +     1     (MAIN) DIAGONAL 
//                          +   NBANDU  BANDS ABOVE THE DIAGONAL 
//      AND THUS, WITH    MIDDLE = NBANDU + 1, 
//        A(I+J,J)  IS IN  W(I+MIDDLE,J)  FOR I=-NBANDU,...,NBANDL 
//                                            J=1,...,NROW . 
//      FOR EXAMPLE, THE INTERESTING ENTRIES OF A (1,2)-BANDED MATRIX 
//      OF ORDER  9  WOULD APPEAR IN THE FIRST  1+1+2 = 4  ROWS OF  W 
//      AS FOLLOWS. 
//                        13 24 35 46 57 68 79   
//                     12 23 34 45 56 67 78 89   
//                  11 22 33 44 55 66 77 88 99   
//                  21 32 43 54 65 76 87 98      
//
//      ALL OTHER ENTRIES OF W  NOT IDENTIFIED IN THIS WAY WITH AN EN- 
//      TRY OF  A  ARE NEVER REFERENCED . 
//  NROWW.....ROW DIMENSION OF THE WORK ARRAY  W . 
//        MUST BE  .GE.  NBANDL + 1 + NBANDU  . 
//  NBANDL.....NUMBER OF BANDS OF  A  BELOW THE MAIN DIAGONAL 
//  NBANDU.....NUMBER OF BANDS OF  A  ABOVE THE MAIN DIAGONAL . 
//
// ******  O U T P U T  ****** 
//  W....CONTAINS THE LU-FACTORIZATION OF A INTO A UNIT LOWER TRIANGU- 
//       LAR MATRIX  L  AND AN UPPER TRIANGULAR MATRIX  U (BOTH BANDED) 
//       AND STORED IN CUSTOMARY FASHION OVER THE CORRESPONDING ENTRIES 
//       OF  A . THIS MAKES IT POSSIBLE TO SOLVE ANY PARTICULAR LINEAR 
//       SYSTEM  A*X = B  FOR  X  BY A 
//             CALL B1BSLV ( W, NROWW, NROW, NBANDL, NBANDU, B ) 
//       WITH THE SOLUTION X  CONTAINED IN  B  ON RETURN . 
//    IF function's return value is 1, then
//       ONE OF NROW-1, NBANDL,NBANDU FAILED TO BE NONNEGATIVE, OR ELSE 
//       ON OF THE POTENTIAL PIVOTS WAS FOUND TO BE ZERO INDICATING 
//       THAT  A  DOES NOT HAVE AN LU-FACTORIZATION. THIS IMPLIES THAT 
//       A  IS SINGULAR IN CASE IT IS TOTALLY POSITIVE . 
 int b1bfac_(double *w, int nroww, int nrow, int nbandl, int nbandu);
