Browse Source

trimmed result array so that result._nonZeroValues only contains NonZeroCount elements instead of _nonZeroValues.Length

la-knuth
Marcus Cuda 14 years ago
committed by Christoph Ruegg
parent
commit
ad97f31b72
  1. 7
      src/Numerics/LinearAlgebra/Complex/SparseVector.cs
  2. 5
      src/Numerics/LinearAlgebra/Complex32/SparseVector.cs
  3. 5
      src/Numerics/LinearAlgebra/Double/SparseVector.cs
  4. 5
      src/Numerics/LinearAlgebra/Single/SparseVector.cs

7
src/Numerics/LinearAlgebra/Complex/SparseVector.cs

@ -749,10 +749,11 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
sparseResult.NonZerosCount = NonZerosCount;
sparseResult._nonZeroIndices = new int[NonZerosCount];
Buffer.BlockCopy(_nonZeroIndices, 0, sparseResult._nonZeroIndices, 0, NonZerosCount * Constants.SizeOfInt);
sparseResult._nonZeroValues = new Complex[_nonZeroValues.Length];
sparseResult._nonZeroValues = new Complex[NonZerosCount];
Array.Copy(_nonZeroValues, sparseResult._nonZeroValues, NonZerosCount);
}
Control.LinearAlgebraProvider.ScaleArray(scalar, _nonZeroValues, sparseResult._nonZeroValues);
Control.LinearAlgebraProvider.ScaleArray(scalar, sparseResult._nonZeroValues, sparseResult._nonZeroValues);
}
}

5
src/Numerics/LinearAlgebra/Complex32/SparseVector.cs

@ -779,10 +779,11 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
sparseResult.NonZerosCount = NonZerosCount;
sparseResult._nonZeroIndices = new int[NonZerosCount];
Buffer.BlockCopy(_nonZeroIndices, 0, sparseResult._nonZeroIndices, 0, NonZerosCount * Constants.SizeOfInt);
sparseResult._nonZeroValues = new Complex32[_nonZeroValues.Length];
sparseResult._nonZeroValues = new Complex32[NonZerosCount];
Array.Copy(_nonZeroValues, sparseResult._nonZeroValues, NonZerosCount);
}
Control.LinearAlgebraProvider.ScaleArray(scalar, _nonZeroValues, sparseResult._nonZeroValues);
Control.LinearAlgebraProvider.ScaleArray(scalar, sparseResult._nonZeroValues, sparseResult._nonZeroValues);
}
}

5
src/Numerics/LinearAlgebra/Double/SparseVector.cs

@ -723,10 +723,11 @@ namespace MathNet.Numerics.LinearAlgebra.Double
sparseResult.NonZerosCount = NonZerosCount;
sparseResult._nonZeroIndices = new int[NonZerosCount];
Buffer.BlockCopy(_nonZeroIndices, 0, sparseResult._nonZeroIndices, 0, NonZerosCount * Constants.SizeOfInt);
sparseResult._nonZeroValues = new double[_nonZeroValues.Length];
sparseResult._nonZeroValues = new double[NonZerosCount];
Buffer.BlockCopy(_nonZeroValues, 0, sparseResult._nonZeroValues, 0, NonZerosCount * Constants.SizeOfDouble);
}
Control.LinearAlgebraProvider.ScaleArray(scalar, _nonZeroValues, sparseResult._nonZeroValues);
Control.LinearAlgebraProvider.ScaleArray(scalar, sparseResult._nonZeroValues, sparseResult._nonZeroValues);
}
}

5
src/Numerics/LinearAlgebra/Single/SparseVector.cs

@ -731,10 +731,11 @@ namespace MathNet.Numerics.LinearAlgebra.Single
sparseResult.NonZerosCount = NonZerosCount;
sparseResult._nonZeroIndices = new int[NonZerosCount];
Buffer.BlockCopy(_nonZeroIndices, 0, sparseResult._nonZeroIndices, 0, NonZerosCount * Constants.SizeOfInt);
sparseResult._nonZeroValues = new float[_nonZeroValues.Length];
sparseResult._nonZeroValues = new float[NonZerosCount];
Buffer.BlockCopy(_nonZeroValues, 0, sparseResult._nonZeroValues, 0, NonZerosCount * Constants.SizeOfFloat);
}
Control.LinearAlgebraProvider.ScaleArray(scalar, _nonZeroValues, sparseResult._nonZeroValues);
Control.LinearAlgebraProvider.ScaleArray(scalar, sparseResult._nonZeroValues, sparseResult._nonZeroValues);
}
}

Loading…
Cancel
Save