diff --git a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs index 2176bafd..f0606a3c 100644 --- a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs +++ b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs @@ -67,7 +67,7 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra if (alpha.IsZero()) { - CommonParallel.ElementFor(0, y.Length, y.Length, index => result[index] = y[index]); + Array.Copy(y, result, y.Length); } else if (alpha.IsOne()) { @@ -95,11 +95,11 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra if (alpha.IsZero()) { - CommonParallel.ElementFor(0, x.Length, x.Length, index => result[index] = Complex.Zero); + Array.Clear(result, 0, result.Length); } else if (alpha.IsOne()) { - CommonParallel.ElementFor(0, x.Length, x.Length, index => result[index] = x[index]); + Array.Copy(x, result, x.Length); } else { diff --git a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs index 4e733e21..91d1e80e 100644 --- a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs +++ b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs @@ -61,7 +61,7 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra if (alpha.IsZero()) { - CommonParallel.ElementFor(0, y.Length, y.Length, index => result[index] = y[index]); + Array.Copy(y, result, y.Length); } else if (alpha.IsOne()) { @@ -89,11 +89,11 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra if (alpha.IsZero()) { - CommonParallel.ElementFor(0, x.Length, x.Length, index => result[index] = Complex32.Zero); + Array.Clear(result, 0, result.Length); } else if (alpha.IsOne()) { - CommonParallel.ElementFor(0, x.Length, x.Length, index => result[index] = x[index]); + Array.Copy(x, result, x.Length); } else { diff --git a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Double.cs b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Double.cs index b1bcceb8..3b250953 100644 --- a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Double.cs +++ b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Double.cs @@ -61,7 +61,7 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra if (alpha == 0.0) { - CommonParallel.ElementFor(0, y.Length, y.Length, index => result[index] = y[index]); + Buffer.BlockCopy(y, 0, result, 0, y.Length * Constants.SizeOfDouble); } else if (alpha == 1.0) { @@ -89,11 +89,11 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra if (alpha == 0.0) { - CommonParallel.ElementFor(0, x.Length, x.Length, index => result[index] = 0.0); + Array.Clear(result, 0, result.Length); } else if (alpha == 1.0) { - CommonParallel.ElementFor(0, x.Length, x.Length, index => result[index] = x[index]); + Buffer.BlockCopy(x, 0, result, 0, x.Length * Constants.SizeOfDouble); } else { diff --git a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Single.cs b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Single.cs index 369c491a..ebb6d96a 100644 --- a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Single.cs +++ b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Single.cs @@ -61,7 +61,7 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra if (alpha == 0.0) { - CommonParallel.ElementFor(0, y.Length, y.Length, index => result[index] = y[index]); + Buffer.BlockCopy(y, 0, result, 0, y.Length * Constants.SizeOfFloat); } else if (alpha == 1.0) { @@ -89,11 +89,11 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra if (alpha == 0.0) { - CommonParallel.ElementFor(0, x.Length, x.Length, index => result[index] = 0.0f); + Array.Clear(result, 0, result.Length); } else if (alpha == 1.0) { - CommonParallel.ElementFor(0, x.Length, x.Length, index => result[index] = x[index]); + Buffer.BlockCopy(x, 0, result, 0, x.Length * Constants.SizeOfFloat); } else {