Browse Source

LA Perf: replace parallel copy loops with native copy II

v2
Christoph Ruegg 14 years ago
parent
commit
b4a0cc97ed
  1. 14
      src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs
  2. 14
      src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs
  3. 14
      src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Double.cs
  4. 14
      src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Single.cs

14
src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs

@ -2100,16 +2100,10 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra
}
// Fill result matrix
CommonParallel.For(0, columnsR, (u, v) =>
{
for (int row = u; row < v; row++)
{
for (var col = 0; col < columnsB; col++)
{
x[(col*columnsA) + row] = sol[row + (col*rowsA)];
}
}
});
for (var col = 0; col < columnsB; col++)
{
Array.Copy(sol, col * rowsA, x, col * columnsA, columnsR);
}
}
/// <summary>

14
src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs

@ -2097,16 +2097,10 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra
}
// Fill result matrix
CommonParallel.For(0, columnsR, (u, v) =>
{
for (int row = u; row < v; row++)
{
for (var col = 0; col < columnsB; col++)
{
x[(col*columnsA) + row] = sol[row + (col*rowsA)];
}
}
});
for (var col = 0; col < columnsB; col++)
{
Array.Copy(sol, col * rowsA, x, col * columnsA, columnsR);
}
}
/// <summary>

14
src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Double.cs

@ -1985,16 +1985,10 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra
}
// Fill result matrix
CommonParallel.For(0, columnsR, (u, v) =>
{
for (int row = u; row < v; row++)
{
for (var col = 0; col < columnsB; col++)
{
x[(col*columnsA) + row] = sol[row + (col*rowsA)];
}
}
});
for (var col = 0; col < columnsB; col++)
{
Array.Copy(sol, col*rowsA, x, col*columnsA, columnsR);
}
}
/// <summary>

14
src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Single.cs

@ -1987,16 +1987,10 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra
}
// Fill result matrix
CommonParallel.For(0, columnsR, (u, v) =>
{
for (int row = u; row < v; row++)
{
for (var col = 0; col < columnsB; col++)
{
x[(col*columnsA) + row] = sol[row + (col*rowsA)];
}
}
});
for (var col = 0; col < columnsB; col++)
{
Array.Copy(sol, col * rowsA, x, col * columnsA, columnsR);
}
}
/// <summary>

Loading…
Cancel
Save