Browse Source

norm test with work arrays now actually pass a work array

v2
Marcus Cuda 14 years ago
parent
commit
5d923d0e99
  1. 4
      src/NativeWrappers/Windows/MKLWrapperTests/MKLWrapperTests.csproj
  2. 9
      src/UnitTests/LinearAlgebraProviderTests/Complex/LinearAlgebraProviderTests.cs
  3. 7
      src/UnitTests/LinearAlgebraProviderTests/Complex32/LinearAlgebraProviderTests.cs
  4. 9
      src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs
  5. 9
      src/UnitTests/LinearAlgebraProviderTests/Single/LinearAlgebraProviderTests.cs

4
src/NativeWrappers/Windows/MKLWrapperTests/MKLWrapperTests.csproj

@ -525,6 +525,9 @@
</BootstrapperPackage> </BootstrapperPackage>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="..\..\..\..\data\Matlab\sparse-small.mat">
<Link>data\Matlab\sparse-small.mat</Link>
</None>
<None Include="..\..\..\UnitTests\Properties\Settings.settings"> <None Include="..\..\..\UnitTests\Properties\Settings.settings">
<Link>Properties\Settings.settings</Link> <Link>Properties\Settings.settings</Link>
</None> </None>
@ -550,6 +553,7 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.

9
src/UnitTests/LinearAlgebraProviderTests/Complex/LinearAlgebraProviderTests.cs

@ -224,7 +224,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex
public void CanComputeMatrixL1NormWithWorkArray() public void CanComputeMatrixL1NormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.OneNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new double[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.OneNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
AssertHelpers.AlmostEqual(12.1, norm, 6); AssertHelpers.AlmostEqual(12.1, norm, 6);
} }
@ -235,7 +236,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex
public void CanComputeMatrixFrobeniusNormWithWorkArray() public void CanComputeMatrixFrobeniusNormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.FrobeniusNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new double[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.FrobeniusNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
AssertHelpers.AlmostEqual(10.777754868246, norm, 8); AssertHelpers.AlmostEqual(10.777754868246, norm, 8);
} }
@ -246,7 +248,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex
public void CanComputeMatrixInfinityNormWithWorkArray() public void CanComputeMatrixInfinityNormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new double[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
Assert.AreEqual(16.5, norm.Real); Assert.AreEqual(16.5, norm.Real);
} }

7
src/UnitTests/LinearAlgebraProviderTests/Complex32/LinearAlgebraProviderTests.cs

@ -225,7 +225,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32
public void CanComputeMatrixL1NormWithWorkArray() public void CanComputeMatrixL1NormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.OneNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new float[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.OneNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
AssertHelpers.AlmostEqual(12.1f, norm, 6); AssertHelpers.AlmostEqual(12.1f, norm, 6);
} }
@ -236,7 +237,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32
public void CanComputeMatrixFrobeniusNormWithWorkArray() public void CanComputeMatrixFrobeniusNormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.FrobeniusNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new float[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.FrobeniusNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
AssertHelpers.AlmostEqual(10.777754868246f, norm, 8); AssertHelpers.AlmostEqual(10.777754868246f, norm, 8);
} }
@ -247,6 +249,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32
public void CanComputeMatrixInfinityNormWithWorkArray() public void CanComputeMatrixInfinityNormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var work = new float[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values);
Assert.AreEqual(16.5, norm.Real); Assert.AreEqual(16.5, norm.Real);
} }

9
src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs

@ -224,7 +224,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double
public void CanComputeMatrixL1NormWithWorkArray() public void CanComputeMatrixL1NormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.OneNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new double[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.OneNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
AssertHelpers.AlmostEqual(12.1, norm, 6); AssertHelpers.AlmostEqual(12.1, norm, 6);
} }
@ -235,7 +236,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double
public void CanComputeMatrixFrobeniusNormWithWorkArray() public void CanComputeMatrixFrobeniusNormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.FrobeniusNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new double[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.FrobeniusNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
AssertHelpers.AlmostEqual(10.777754868246, norm, 8); AssertHelpers.AlmostEqual(10.777754868246, norm, 8);
} }
@ -246,7 +248,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double
public void CanComputeMatrixInfinityNormWithWorkArray() public void CanComputeMatrixInfinityNormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new double[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
Assert.AreEqual(16.5, norm); Assert.AreEqual(16.5, norm);
} }

9
src/UnitTests/LinearAlgebraProviderTests/Single/LinearAlgebraProviderTests.cs

@ -224,7 +224,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Single
public void CanComputeMatrixL1NormWithWorkArray() public void CanComputeMatrixL1NormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.OneNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new float[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.OneNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
AssertHelpers.AlmostEqual(12.1, norm, 6); AssertHelpers.AlmostEqual(12.1, norm, 6);
} }
@ -235,7 +236,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Single
public void CanComputeMatrixFrobeniusNormWithWorkArray() public void CanComputeMatrixFrobeniusNormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.FrobeniusNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new float[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.FrobeniusNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
AssertHelpers.AlmostEqual(10.777754868246, norm, 8); AssertHelpers.AlmostEqual(10.777754868246, norm, 8);
} }
@ -246,7 +248,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Single
public void CanComputeMatrixInfinityNormWithWorkArray() public void CanComputeMatrixInfinityNormWithWorkArray()
{ {
var matrix = _matrices["Square3x3"]; var matrix = _matrices["Square3x3"];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values); var work = new float[18];
var norm = Control.LinearAlgebraProvider.MatrixNorm(Norm.InfinityNorm, matrix.RowCount, matrix.ColumnCount, matrix.Values, work);
Assert.AreEqual(16.5, norm); Assert.AreEqual(16.5, norm);
} }

Loading…
Cancel
Save