protected override void DoModulus(double divisor, Matrix<double> result) { var denseResult = result as DenseMatrix; if (denseResult == null) { base.DoModulus(divisor, result); return; } if (!ReferenceEquals(this, result)) { CopyTo(result); } CommonParallel.For(0, _values.Length, (a, b) => { var v = denseResult._values; for (int i = a; i < b; i++) { v[i] = Euclid.Modulus(v[i], divisor); } }); }