/* ## class FTDiag ## ## This class holds the routines for a tridiagonal matrix. The storage ## is the same as banded matrices. ## */ package edu.rice.linpack.Matrix.NMatrix; import edu.rice.linpack.util.*; import edu.rice.linpack.LNumber.*; public class NTDiag extends NMatrix { public NTDiag() { super(); } public NTDiag(int i, int j) { cons(3,j); } public NTDiag(LNumber[][] f) { cols = f.length; rows = 3; int cm = cols - 1; Mat = new LNumber[3][cols]; Mat[1][0] = f[0][0]; Mat[0][0] = f[0][1]; Mat[2][0] = Mat[0][0].Clone(); Mat[2][0].setZero(); for(int i=1;i 0) { Mat[1][0] = Mat[0][0].Clone(); Mat[0][0].setZero(); Mat[0][nm].setZero(); for(int k=0;k 0) { B[nm2] = (B[nm2].sub(Mat[1][nm2].mult(B[nm]))).div(Mat[2][nm2]); if(nm2 > 0) { for(int k=nm2-1;k>=0;k--) { B[k] = ((B[k].sub(Mat[1][k].mult(B[k+1]))) .sub(Mat[0][k].mult(B[k+2]))).div(Mat[2][k]); } } } } } }