public override void Run(Action<int, int, double> fun)
{
// Нижний треугольник
for (int j = 0; j < shift_l.Length; j++)
for (int i = shift_l[j]; i < di.Length; i++)
fun(i, i - shift_l[j], al[i][j]);
// Диагональ
for (int i = 0; i < di.Length; i++)
fun(i, i, di[i]);
//Верхний треугольник
for (int j = 0; j < shift_u.Length; j++)
for (int i = shift_u[j]; i < di.Length; i++)
fun(i - shift_u[j], i, au[i][j]);
}