Skip to content

Commit 76c03cb

Browse files
committed
Use Buffer.BlockCopy for array shift.
1 parent efb7c70 commit 76c03cb

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

CSparse.Tests/Double/SparseMatrixTest.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -525,13 +525,18 @@ public void TestOfIndexed_Coo_InPlace()
525525

526526
coo = new CoordinateStorage<double>(5, 10, 3);
527527

528-
coo.At(0, 0, 1.0);
529-
coo.At(1, 1, 1.0);
530528
coo.At(4, 4, 1.0);
529+
coo.At(1, 1, 1.0);
530+
coo.At(0, 0, 1.0);
531+
coo.At(4, 4, -1.0); // Results in one explicit zero entry.
531532

532533
A = SparseMatrix.OfIndexed(coo, true);
533534

534535
Assert.AreEqual(3, A.NonZerosCount);
536+
537+
A.DropZeros();
538+
539+
Assert.AreEqual(2, A.NonZerosCount);
535540
}
536541

537542
[Test]

CSparse/Converter.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,7 @@ private static void ConvertInPlace<T>(int columns, int nz, T[] values, int[] row
183183
}
184184

185185
// Fix column pointers.
186-
for (i = columns - 1; i > 0; i--)
187-
{
188-
work[i] = work[i - 1];
189-
}
186+
Buffer.BlockCopy(work, 0, work, Constants.SizeOfInt, columns * Constants.SizeOfInt);
190187

191188
work[0] = 0;
192189
}

0 commit comments

Comments
 (0)