public LMult ( Vector x, bool UseDiagonal ) : Vector | ||
x | Vector | |
UseDiagonal | bool | |
return | Vector |
public override Vector LMult(Vector x, bool UseDiagonal)
{
if (x.Size != n)
throw new Exception("Несовпадение длин у операндов LMult");
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[i] += al[j] * x[ja[j]];
}
return v;
}
else// если без диагонали
{
for (i = 0; i < n; i++)
for (j = ia[i]; j < ia[i + 1]; j++)
v[i] += al[j] * x[ja[j]];
return v;
}
}
}