public override Vector UMult(Vector x, bool UseDiagonal)
{
if (x.Size != n)
throw new Exception("Несовпадение длин у операндов при UMult");
else
{
int i, j;
Vector v = new Vector(n);
if (UseDiagonal == true)// если умножение с диагональю
{
for (i = 0; i < n; i++)
{
v[i] = di[i] * x[i];
for (j = ia[i]; j < ia[i + 1]; j++)
v[ja[j]] += au[j] * x[i];
}
return v;
}
else// если без диагонали
{
for (i = 0; i < n; i++)
for (j = ia[i]; j < ia[i + 1]; j++)
v[ja[j]] += au[j] * x[i];
return v;
}
}
}