Sub Ex_Dgttrf()
Const N = 3
Dim Dl(N - 2) As Double, D(N - 1) As Double, Du(N - 2) As Double
Dim Du2(N - 3) As Double, IPiv(N - 1) As Long
Dim B(N - 1) As Double, ANorm As Double, RCond As Double, Info As Long
Dl(0) = -1.56: Dl(1) = 0.24
D(0) = -0.58: D(1) = 2.21: D(2) = 0.25
Du(0) = 1.14: Du(1) = 0.16
B(0) = -0.596: B(1) = -0.6798: B(2) = -0.0406
ANorm = Dlangt("1", N, Dl(), D(), Du())
Call Dgttrf(N, Dl(), D(), Du(), Du2(), IPiv(), Info)
If Info = 0 Then Call Dgttrs("N", N, Dl(), D(), Du(), Du2(), IPiv(), B(), Info)
If Info = 0 Then Call Dgtcon("1", N, Dl(), D(), Du(), Du2(), IPiv(), ANorm, RCond, Info)
Debug.Print "X =", B(0), B(1), B(2)
Debug.Print "RCond =", RCond
Debug.Print "Info =", Info
End Sub