Thomas algorithm