diff --git a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs index 03657b8f..2beb3952 100644 --- a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs +++ b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs @@ -2062,13 +2062,7 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra for (var j = 0; j < columnsB; j++) { var jm = j*rowsA; - CommonParallel.For(0, rowsA, (u, v) => - { - for (int k = u; k < v; k++) - { - column[k] = sol[jm + k]; - } - }); + Array.Copy(sol, jm, column, 0, rowsA); CommonParallel.For(0, columnsA, (u, v) => { for (int i = u; i < v; i++) diff --git a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs index abdfd52c..9add9980 100644 --- a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs +++ b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs @@ -2058,14 +2058,8 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra var column = new Complex32[rowsA]; for (var j = 0; j < columnsB; j++) { - var jm = j*rowsA; - CommonParallel.For(0, rowsA, (u, v) => - { - for (int k = u; k < v; k++) - { - column[k] = sol[jm + k]; - } - }); + var jm = j * rowsA; + Array.Copy(sol, jm, column, 0, rowsA); CommonParallel.For(0, columnsA, (u, v) => { for (int i = u; i < v; i++) diff --git a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Double.cs b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Double.cs index 8e920154..b18e700f 100644 --- a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Double.cs +++ b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Double.cs @@ -1946,14 +1946,8 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra var column = new double[rowsA]; for (var j = 0; j < columnsB; j++) { - var jm = j*rowsA; - CommonParallel.For(0, rowsA, (u, v) => - { - for (int k = u; k < v; k++) - { - column[k] = sol[jm + k]; - } - }); + var jm = j * rowsA; + Array.Copy(sol, jm, column, 0, rowsA); CommonParallel.For(0, columnsA, (u, v) => { for (int i = u; i < v; i++) diff --git a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Single.cs b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Single.cs index 4fe5a27a..0e32efa7 100644 --- a/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Single.cs +++ b/src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Single.cs @@ -1948,14 +1948,8 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra var column = new float[rowsA]; for (var j = 0; j < columnsB; j++) { - var jm = j*rowsA; - CommonParallel.For(0, rowsA, (u, v) => - { - for (int k = u; k < v; k++) - { - column[k] = sol[jm + k]; - } - }); + var jm = j * rowsA; + Array.Copy(sol, jm, column, 0, rowsA); CommonParallel.For(0, columnsA, (u, v) => { for (int i = u; i < v; i++)