### 14.18 Triangular Systems

Function: int gsl_linalg_tri_upper_invert (gsl_matrix * T)
Function: int gsl_linalg_tri_lower_invert (gsl_matrix * T)
Function: int gsl_linalg_tri_upper_unit_invert (gsl_matrix * T)
Function: int gsl_linalg_tri_lower_unit_invert (gsl_matrix * T)

  These functions calculate the in-place inverse of the triangular matrix T. When the `upper` prefix is specified, then the upper triangle of T is used, and when the `lower` prefix is specified, the lower triangle is used. If the `unit` prefix is specified, then the diagonal elements of the matrix T are taken as unity and are not referenced. Otherwise the diagonal elements are used in the inversion.

Function: int gsl_linalg_tri_upper_rcond (const gsl_matrix * T, double * rcond, gsl_vector * work)
Function: int gsl_linalg_tri_lower_rcond (const gsl_matrix * T, double * rcond, gsl_vector * work)

  These functions estimate the reciprocal condition number, in the 1-norm, of the upper or lower N-by-N triangular matrix T. The reciprocal condition number is stored in rcond on output, and is defined by 1 / (||T||_1 \cdot ||T^{-1}||_1). Additional workspace of size 3 N is required in work.