Tridiagonal Systems

Function: int gsl_linalg_solve_symm_tridiag (const gsl_vector * diag, const gsl_vector * e, const gsl_vector * b, gsl_vector * x)
This function solves the general N-by-N system A x = b where A is symmetric tridiagonal. The form of A for the 4-by-4 case is shown below,

A = ( d_0 e_0         )
    ( e_0 d_1 e_1     )
    (     e_1 d_2 e_2 )
    (         e_2 d_3 )

Function: int gsl_linalg_solve_symm_cyc_tridiag (const gsl_vector * diag, const gsl_vector * e, const gsl_vector * b, gsl_vector * x)
This function solves the general N-by-N system A x = b where A is symmetric cyclic tridiagonal. The form of A for the 4-by-4 case is shown below,

A = ( d_0 e_0     e_3 )
    ( e_0 d_1 e_1     )
    (     e_1 d_2 e_2 )
    ( e_3     e_2 d_3 )