Browse Source

Native Pull: Updated provider and bug fixes

mathnet-numerics-native a6e5c948049bda46cb3b5625fa41accebaa4bdb3:
1. Updated the native provider to MKL V11 update 2, which fixes the lange bug.
2. Re-enabled native matrix norms.
3. Fixed complex Frobenius norm bug in managed code (we weren't taking the conjugative transpose).
4. Fixed the return type on the double matix norm in the managed side of the native provider.
pull/78/merge
Christoph Ruegg 14 years ago
parent
commit
d65354f4b8
  1. 10
      src/NativeWrappers/Common/resource.rc
  2. 118
      src/NativeWrappers/Windows/ATLASWrapperTests/ATLASWrapperTests.csproj
  3. 14
      src/NativeWrappers/Windows/ATLASWrapperTests/LinearAlgebra/Double/AtlasLinearAlgebraProviderTests.cs
  4. 36
      src/NativeWrappers/Windows/ATLASWrapperTests/Properties/AssemblyInfo.cs
  5. 31
      src/NativeWrappers/Windows/MKL/MKLWrapper.vcxproj
  6. 15
      src/NativeWrappers/Windows/MKLWrapperTests/App.config
  7. 565
      src/NativeWrappers/Windows/MKLWrapperTests/MKLWrapperTests.csproj
  8. 114
      src/NativeWrappers/Windows/NativeWrappers.sln
  9. 2
      src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex.cs
  10. 2
      src/Numerics/Algorithms/LinearAlgebra/ManagedLinearAlgebraProvider.Complex32.cs
  11. 5
      src/Numerics/Algorithms/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Common.cs
  12. 4
      src/Numerics/Algorithms/LinearAlgebra/Mkl/SafeNativeMethods.cs
  13. 2
      src/Numerics/LinearAlgebra/Complex/Matrix.cs
  14. 2
      src/Numerics/LinearAlgebra/Complex/SparseMatrix.cs
  15. 2
      src/Numerics/LinearAlgebra/Complex32/Matrix.cs
  16. 2
      src/Numerics/LinearAlgebra/Complex32/SparseMatrix.cs
  17. 6
      src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs
  18. 6
      src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs
  19. 4
      src/UnitTests/LinearAlgebraTests/Double/IO/MatlabReaderTests.cs

10
src/NativeWrappers/Common/resource.rc

@ -51,8 +51,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,2,0,0
PRODUCTVERSION 1,2,0,0
FILEVERSION 1,2,1,0
PRODUCTVERSION 1,2,1,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -70,12 +70,12 @@ BEGIN
VALUE "Comments", "http://numerics.mathdotnet.com/"
VALUE "CompanyName", "Math.NET"
VALUE "FileDescription", "MathNET Numerics Native Wrapper"
VALUE "FileVersion", "1.2.0.0"
VALUE "FileVersion", "1.2.1.0"
VALUE "InternalName", "Math.NET"
VALUE "LegalCopyright", "Copyright (C) Math.NET 2009-2013"
VALUE "OriginalFilename", "MathNET.Numerics"
VALUE "OriginalFilename", "MathNet.Numerics"
VALUE "ProductName", "Math.NET Numerics"
VALUE "ProductVersion", "1.2.0.0"
VALUE "ProductVersion", "1.2.1.0"
END
END
BLOCK "VarFileInfo"

118
src/NativeWrappers/Windows/ATLASWrapperTests/ATLASWrapperTests.csproj

@ -1,118 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{0EFC01B9-1F75-4BFD-ADB6-3FF18B2B9B5E}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MathNet.Numerics.ATLASWrapperTests</RootNamespace>
<AssemblyName>MathNet.Numerics.ATLASWrapperTests</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Gallio, Version=3.0.6.0, Culture=neutral, PublicKeyToken=eb9cfa67ee6ab36e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\UnitTests\bin\Debug\Gallio.dll</HintPath>
</Reference>
<Reference Include="MathNet.Numerics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd8b63ad3d691a37, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\UnitTests\bin\Debug\MathNet.Numerics.dll</HintPath>
</Reference>
<Reference Include="MathNet.Numerics.UnitTests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd8b63ad3d691a37, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\UnitTests\bin\Debug\MathNet.Numerics.UnitTests.dll</HintPath>
</Reference>
<Reference Include="MbUnit, Version=3.0.6.0, Culture=neutral, PublicKeyToken=eb9cfa67ee6ab36e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\UnitTests\bin\Debug\MbUnit.dll</HintPath>
</Reference>
<Reference Include="MbUnit35, Version=3.0.6.0, Culture=neutral, PublicKeyToken=eb9cfa67ee6ab36e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\UnitTests\bin\Debug\MbUnit35.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="LinearAlgebra\Double\AtlasLinearAlgebraProviderTests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- 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.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

14
src/NativeWrappers/Windows/ATLASWrapperTests/LinearAlgebra/Double/AtlasLinearAlgebraProviderTests.cs

@ -1,14 +0,0 @@
namespace MathNet.Numerics.ATLASWrapperTests.LinearAlgebra.Double
{
using MbUnit.Framework;
using UnitTests.LinearAlgebraTests.Double;
public class AtlasLinearAlgebraProviderTests : LinearAlgebraProviderTests
{
[FixtureSetUp]
public void SetUpProvider()
{
Provider = new Algorithms.LinearAlgebra.Atlas.AtlasLinearAlgebraProvider();
}
}
}

36
src/NativeWrappers/Windows/ATLASWrapperTests/Properties/AssemblyInfo.cs

@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ATLASWrapperTests")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("ATLASWrapperTests")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2009")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("c3d8a88c-97b6-4b25-8d63-e30ffeaf503c")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

31
src/NativeWrappers/Windows/MKL/MKLWrapper.vcxproj

@ -95,32 +95,32 @@
<_ProjectFileVersion>11.0.50727.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)..\..\..\lib\Windows\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\..\..\MKL\Windows\x86\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>MathNet.Numerics.MKL</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Intel_SSA|Win32'">
<OutDir>$(SolutionDir)..\..\..\lib\Windows\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\..\..\MKL\Windows\x86\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>MathNet.Numerics.MKL</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)..\..\..\lib\Windows\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\..\..\MKL\Windows\x64\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>MathNet.Numerics.MKL</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Intel_SSA|x64'">
<OutDir>$(SolutionDir)..\..\..\lib\Windows\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\..\..\MKL\Windows\x64\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>MathNet.Numerics.MKL</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)..\..\..\lib\Windows\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\..\..\MKL\Windows\x86\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>MathNet.Numerics.MKL</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)..\..\..\lib\Windows\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\..\..\MKL\Windows\x64\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>MathNet.Numerics.MKL</TargetName>
</PropertyGroup>
@ -145,8 +145,7 @@
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
</Link>
<PostBuildEvent>
<Command>
</Command>
<Command>copy "$(CompilerPathForVC)\libiomp5md.dll" $(OutputPath)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Intel_SSA|Win32'">
@ -172,8 +171,7 @@
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
</Link>
<PostBuildEvent>
<Command>
</Command>
<Command>copy "$(CompilerPathForVC)\libiomp5md.dll" $(OutputPath)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@ -200,8 +198,7 @@
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
</Link>
<PostBuildEvent>
<Command>
</Command>
<Command>copy "$(CompilerPathForVC)\libiomp5md.dll" $(OutputPath)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Intel_SSA|x64'">
@ -230,8 +227,7 @@
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
</Link>
<PostBuildEvent>
<Command>
</Command>
<Command>copy "$(CompilerPathForVC)\libiomp5md.dll" $(OutputPath)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@ -256,9 +252,9 @@
<TargetMachine>MachineX86</TargetMachine>
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
</Link>
<PostBuildEvent />
<PostBuildEvent>
<Command>
</Command>
<Command>copy "$(CompilerPathForVC)\libiomp5md.dll" $(OutputPath)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -287,8 +283,7 @@
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
</Link>
<PostBuildEvent>
<Command>
</Command>
<Command>copy "$(CompilerPathForVC)\libiomp5md.dll" $(OutputPath)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>

15
src/NativeWrappers/Windows/MKLWrapperTests/App.config

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MathNet.Numerics.UnitTests.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<MathNet.Numerics.UnitTests.Properties.Settings>
<setting name="LinearAlgebraProvider" serializeAs="String">
<value>MKL</value>
</setting>
</MathNet.Numerics.UnitTests.Properties.Settings>
</applicationSettings>
</configuration>

565
src/NativeWrappers/Windows/MKLWrapperTests/MKLWrapperTests.csproj

@ -1,565 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MathNet.Numerics.MKLWrapperTests</RootNamespace>
<AssemblyName>MathNet.Numerics.MKLWrapperTests</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.5.9.10348, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\packages\NUnit.2.6.2\lib\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\..\UnitTests\AssertHelpers.cs">
<Link>AssertHelpers.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraProviderTests\Complex32\LinearAlgebraProviderTests.cs">
<Link>LinearAlgebraProviderTests\Complex32\LinearAlgebraProviderTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraProviderTests\Complex\LinearAlgebraProviderTests.cs">
<Link>LinearAlgebraProviderTests\Complex\LinearAlgebraProviderTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraProviderTests\Double\LinearAlgebraProviderTests.cs">
<Link>LinearAlgebraProviderTests\Double\LinearAlgebraProviderTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraProviderTests\Single\LinearAlgebraProviderTests.cs">
<Link>LinearAlgebraProviderTests\Single\LinearAlgebraProviderTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\DenseMatrixTests.cs">
<Link>LinearAlgebraTests\Complex32\DenseMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\DenseVectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Complex32\DenseVectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\DenseVectorTest.TextHandling.cs">
<Link>LinearAlgebraTests\Complex32\DenseVectorTest.TextHandling.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\DenseVectorTests.cs">
<Link>LinearAlgebraTests\Complex32\DenseVectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\DiagonalMatrixTests.cs">
<Link>LinearAlgebraTests\Complex32\DiagonalMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\CholeskyTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\CholeskyTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\EvdTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\EvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\GramSchmidtTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\GramSchmidtTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\LUTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\LUTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\QRTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\QRTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\SvdTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\SvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\UserCholeskyTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\UserCholeskyTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\UserEvdTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\UserEvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\UserGramSchmidtTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\UserGramSchmidtTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\UserLUTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\UserLUTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\UserQRTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\UserQRTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\Factorization\UserSvdTests.cs">
<Link>LinearAlgebraTests\Complex32\Factorization\UserSvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\MatrixLoader.cs">
<Link>LinearAlgebraTests\Complex32\MatrixLoader.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\MatrixStructureTheory.cs">
<Link>LinearAlgebraTests\Complex32\MatrixStructureTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\MatrixTests.Arithmetic.cs">
<Link>LinearAlgebraTests\Complex32\MatrixTests.Arithmetic.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\MatrixTests.cs">
<Link>LinearAlgebraTests\Complex32\MatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\SparseMatrixTests.cs">
<Link>LinearAlgebraTests\Complex32\SparseMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\SparseVectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Complex32\SparseVectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\SparseVectorTest.cs">
<Link>LinearAlgebraTests\Complex32\SparseVectorTest.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\SparseVectorTest.TextHandling.cs">
<Link>LinearAlgebraTests\Complex32\SparseVectorTest.TextHandling.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\UserDefinedMatrix.cs">
<Link>LinearAlgebraTests\Complex32\UserDefinedMatrix.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\UserDefinedMatrixTests.cs">
<Link>LinearAlgebraTests\Complex32\UserDefinedMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\UserDefinedVector.cs">
<Link>LinearAlgebraTests\Complex32\UserDefinedVector.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\UserDefinedVectorTests.cs">
<Link>LinearAlgebraTests\Complex32\UserDefinedVectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\VectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Complex32\VectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\VectorTests.Arithmetic.cs">
<Link>LinearAlgebraTests\Complex32\VectorTests.Arithmetic.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\VectorTests.cs">
<Link>LinearAlgebraTests\Complex32\VectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex32\VectorTests.Norm.cs">
<Link>LinearAlgebraTests\Complex32\VectorTests.Norm.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\DenseMatrixTests.cs">
<Link>LinearAlgebraTests\Complex\DenseMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\DenseVectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Complex\DenseVectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\DenseVectorTest.TextHandling.cs">
<Link>LinearAlgebraTests\Complex\DenseVectorTest.TextHandling.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\DenseVectorTests.cs">
<Link>LinearAlgebraTests\Complex\DenseVectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\DiagonalMatrixTests.cs">
<Link>LinearAlgebraTests\Complex\DiagonalMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\CholeskyTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\CholeskyTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\EvdTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\EvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\GramSchmidtTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\GramSchmidtTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\LUTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\LUTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\QRTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\QRTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\SvdTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\SvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\UserCholeskyTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\UserCholeskyTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\UserEvdTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\UserEvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\UserGramSchmidtTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\UserGramSchmidtTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\UserLUTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\UserLUTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\UserQRTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\UserQRTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\Factorization\UserSvdTests.cs">
<Link>LinearAlgebraTests\Complex\Factorization\UserSvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\MatrixLoader.cs">
<Link>LinearAlgebraTests\Complex\MatrixLoader.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\MatrixStructureTheory.cs">
<Link>LinearAlgebraTests\Complex\MatrixStructureTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\MatrixTests.Arithmetic.cs">
<Link>LinearAlgebraTests\Complex\MatrixTests.Arithmetic.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\MatrixTests.cs">
<Link>LinearAlgebraTests\Complex\MatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\SparseMatrixTests.cs">
<Link>LinearAlgebraTests\Complex\SparseMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\SparseVectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Complex\SparseVectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\SparseVectorTest.cs">
<Link>LinearAlgebraTests\Complex\SparseVectorTest.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\SparseVectorTest.TextHandling.cs">
<Link>LinearAlgebraTests\Complex\SparseVectorTest.TextHandling.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\UserDefinedMatrix.cs">
<Link>LinearAlgebraTests\Complex\UserDefinedMatrix.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\UserDefinedMatrixTests.cs">
<Link>LinearAlgebraTests\Complex\UserDefinedMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\UserDefinedVector.cs">
<Link>LinearAlgebraTests\Complex\UserDefinedVector.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\UserDefinedVectorTests.cs">
<Link>LinearAlgebraTests\Complex\UserDefinedVectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\VectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Complex\VectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\VectorTests.Arithmetic.cs">
<Link>LinearAlgebraTests\Complex\VectorTests.Arithmetic.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\VectorTests.cs">
<Link>LinearAlgebraTests\Complex\VectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Complex\VectorTests.Norm.cs">
<Link>LinearAlgebraTests\Complex\VectorTests.Norm.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\DenseMatrixTests.cs">
<Link>LinearAlgebraTests\Double\DenseMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\DenseVectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Double\DenseVectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\DenseVectorTest.TextHandling.cs">
<Link>LinearAlgebraTests\Double\DenseVectorTest.TextHandling.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\DenseVectorTests.cs">
<Link>LinearAlgebraTests\Double\DenseVectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\DiagonalMatrixTests.cs">
<Link>LinearAlgebraTests\Double\DiagonalMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\CholeskyTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\CholeskyTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\EvdTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\EvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\GramSchmidtTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\GramSchmidtTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\LUTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\LUTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\QRTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\QRTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\SvdTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\SvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\UserCholeskyTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\UserCholeskyTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\UserEvdTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\UserEvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\UserGramSchmidtTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\UserGramSchmidtTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\UserLUTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\UserLUTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\UserQRTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\UserQRTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\Factorization\UserSvdTests.cs">
<Link>LinearAlgebraTests\Double\Factorization\UserSvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\MatrixLoader.cs">
<Link>LinearAlgebraTests\Double\MatrixLoader.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\MatrixStructureTheory.cs">
<Link>LinearAlgebraTests\Double\MatrixStructureTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\MatrixTests.Arithmetic.cs">
<Link>LinearAlgebraTests\Double\MatrixTests.Arithmetic.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\MatrixTests.cs">
<Link>LinearAlgebraTests\Double\MatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\SparseMatrixTests.cs">
<Link>LinearAlgebraTests\Double\SparseMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\SparseVectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Double\SparseVectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\SparseVectorTest.cs">
<Link>LinearAlgebraTests\Double\SparseVectorTest.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\SparseVectorTest.TextHandling.cs">
<Link>LinearAlgebraTests\Double\SparseVectorTest.TextHandling.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\UserDefinedMatrix.cs">
<Link>LinearAlgebraTests\Double\UserDefinedMatrix.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\UserDefinedMatrixTests.cs">
<Link>LinearAlgebraTests\Double\UserDefinedMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\UserDefinedVector.cs">
<Link>LinearAlgebraTests\Double\UserDefinedVector.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\UserDefinedVectorTests.cs">
<Link>LinearAlgebraTests\Double\UserDefinedVectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\VectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Double\VectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\VectorTests.Arithmetic.cs">
<Link>LinearAlgebraTests\Double\VectorTests.Arithmetic.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\VectorTests.cs">
<Link>LinearAlgebraTests\Double\VectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Double\VectorTests.Norm.cs">
<Link>LinearAlgebraTests\Double\VectorTests.Norm.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\MatrixStructureTheory.Access.cs">
<Link>LinearAlgebraTests\MatrixStructureTheory.Access.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\MatrixStructureTheory.cs">
<Link>LinearAlgebraTests\MatrixStructureTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\MatrixStructureTheory.Reform.cs">
<Link>LinearAlgebraTests\MatrixStructureTheory.Reform.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\DenseMatrixTests.cs">
<Link>LinearAlgebraTests\Single\DenseMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\DenseVectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Single\DenseVectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\DenseVectorTest.TextHandling.cs">
<Link>LinearAlgebraTests\Single\DenseVectorTest.TextHandling.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\DenseVectorTests.cs">
<Link>LinearAlgebraTests\Single\DenseVectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\DiagonalMatrixTests.cs">
<Link>LinearAlgebraTests\Single\DiagonalMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\CholeskyTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\CholeskyTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\EvdTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\EvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\GramSchmidtTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\GramSchmidtTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\LUTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\LUTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\QRTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\QRTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\SvdTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\SvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\UserCholeskyTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\UserCholeskyTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\UserEvdTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\UserEvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\UserGramSchmidtTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\UserGramSchmidtTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\UserLUTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\UserLUTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\UserQRTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\UserQRTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\Factorization\UserSvdTests.cs">
<Link>LinearAlgebraTests\Single\Factorization\UserSvdTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\MatrixLoader.cs">
<Link>LinearAlgebraTests\Single\MatrixLoader.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\MatrixStructureTheory.cs">
<Link>LinearAlgebraTests\Single\MatrixStructureTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\MatrixTests.Arithmetic.cs">
<Link>LinearAlgebraTests\Single\MatrixTests.Arithmetic.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\MatrixTests.cs">
<Link>LinearAlgebraTests\Single\MatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\SparseMatrixTests.cs">
<Link>LinearAlgebraTests\Single\SparseMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\SparseVectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Single\SparseVectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\SparseVectorTest.cs">
<Link>LinearAlgebraTests\Single\SparseVectorTest.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\SparseVectorTest.TextHandling.cs">
<Link>LinearAlgebraTests\Single\SparseVectorTest.TextHandling.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\UserDefinedMatrix.cs">
<Link>LinearAlgebraTests\Single\UserDefinedMatrix.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\UserDefinedMatrixTests.cs">
<Link>LinearAlgebraTests\Single\UserDefinedMatrixTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\UserDefinedVector.cs">
<Link>LinearAlgebraTests\Single\UserDefinedVector.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\UserDefinedVectorTests.cs">
<Link>LinearAlgebraTests\Single\UserDefinedVectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\VectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\Single\VectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\VectorTests.Arithmetic.cs">
<Link>LinearAlgebraTests\Single\VectorTests.Arithmetic.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\VectorTests.cs">
<Link>LinearAlgebraTests\Single\VectorTests.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\Single\VectorTests.Norm.cs">
<Link>LinearAlgebraTests\Single\VectorTests.Norm.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\LinearAlgebraTests\VectorArithmeticTheory.cs">
<Link>LinearAlgebraTests\VectorArithmeticTheory.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\MatrixHelpers.cs">
<Link>MatrixHelpers.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\Properties\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\Properties\Settings.Designer.cs">
<Link>Properties\Settings.Designer.cs</Link>
</Compile>
<Compile Include="..\..\..\UnitTests\UseLinearAlgebraProvider.cs">
<Link>UseLinearAlgebraProvider.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\..\data\Matlab\sparse-small.mat">
<Link>data\Matlab\sparse-small.mat</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="..\..\..\UnitTests\Properties\Settings.settings">
<Link>Properties\Settings.settings</Link>
</None>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Numerics.IO\Numerics.IO.csproj">
<Project>{eb1a5d32-f264-4bce-beb7-0b97085075be}</Project>
<Name>Numerics.IO</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Numerics\Numerics.csproj">
<Project>{b7cae5f4-a23f-4438-b5be-41226618b695}</Project>
<Name>Numerics</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="..\..\..\..\lib\Windows\Win32\MathNET.Numerics.MKL.dll">
<Link>MathNET.Numerics.MKL.dll</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- 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.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

114
src/NativeWrappers/Windows/NativeWrappers.sln

@ -12,132 +12,22 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{5A0892
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MKLWrapper", "MKL\MKLWrapper.vcxproj", "{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MKLWrapperTests", "MKLWrapperTests\MKLWrapperTests.csproj", "{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Numerics", "..\..\Numerics\Numerics.csproj", "{B7CAE5F4-A23F-4438-B5BE-41226618B695}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Numerics.IO", "..\..\Numerics.IO\Numerics.IO.csproj", "{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Intel_SSA|Any CPU = Intel_SSA|Any CPU
Intel_SSA|Mixed Platforms = Intel_SSA|Mixed Platforms
Intel_SSA|Win32 = Intel_SSA|Win32
Intel_SSA|x64 = Intel_SSA|x64
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Release|x64 = Release|x64
Release-Signed|Any CPU = Release-Signed|Any CPU
Release-Signed|Mixed Platforms = Release-Signed|Mixed Platforms
Release-Signed|Win32 = Release-Signed|Win32
Release-Signed|x64 = Release-Signed|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|Any CPU.ActiveCfg = Debug|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|Mixed Platforms.ActiveCfg = Release|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|Mixed Platforms.Build.0 = Release|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|Win32.ActiveCfg = Debug|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|Win32.Build.0 = Debug|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|x64.ActiveCfg = Debug|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Debug|x64.Build.0 = Debug|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Intel_SSA|Any CPU.ActiveCfg = Intel_SSA|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Intel_SSA|Mixed Platforms.ActiveCfg = Intel_SSA|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Intel_SSA|Mixed Platforms.Build.0 = Intel_SSA|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Intel_SSA|Win32.ActiveCfg = Intel_SSA|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Intel_SSA|Win32.Build.0 = Intel_SSA|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Intel_SSA|x64.ActiveCfg = Intel_SSA|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Intel_SSA|x64.Build.0 = Intel_SSA|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Any CPU.ActiveCfg = Release|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Mixed Platforms.ActiveCfg = Release|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Mixed Platforms.Build.0 = Release|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Win32.ActiveCfg = Release|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|Win32.Build.0 = Release|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|x64.ActiveCfg = Release|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|x64.Build.0 = Release|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Any CPU.ActiveCfg = Release|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Mixed Platforms.Build.0 = Release|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Win32.ActiveCfg = Release|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|Win32.Build.0 = Release|Win32
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|x64.ActiveCfg = Release|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release-Signed|x64.Build.0 = Release|x64
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Debug|Win32.ActiveCfg = Debug|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Debug|x64.ActiveCfg = Debug|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Intel_SSA|Any CPU.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Intel_SSA|Any CPU.Build.0 = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Intel_SSA|Mixed Platforms.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Intel_SSA|Mixed Platforms.Build.0 = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Intel_SSA|Win32.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Intel_SSA|x64.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release|Any CPU.Build.0 = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release|Win32.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release|x64.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release-Signed|Any CPU.Build.0 = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release-Signed|Mixed Platforms.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release-Signed|Mixed Platforms.Build.0 = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release-Signed|Win32.ActiveCfg = Release|Any CPU
{D0AD591B-0CE6-4A6D-8DEA-01777EE09BC3}.Release-Signed|x64.ActiveCfg = Release|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Win32.ActiveCfg = Debug|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|x64.ActiveCfg = Debug|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Intel_SSA|Any CPU.ActiveCfg = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Intel_SSA|Any CPU.Build.0 = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Intel_SSA|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Intel_SSA|Mixed Platforms.Build.0 = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Intel_SSA|Win32.ActiveCfg = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Intel_SSA|x64.ActiveCfg = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Any CPU.Build.0 = Release|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Win32.ActiveCfg = Release|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|x64.ActiveCfg = Release|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Mixed Platforms.Build.0 = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Win32.ActiveCfg = Release-Signed|Any CPU
{B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|x64.ActiveCfg = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Debug|Win32.ActiveCfg = Debug|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Debug|x64.ActiveCfg = Debug|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Intel_SSA|Any CPU.ActiveCfg = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Intel_SSA|Any CPU.Build.0 = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Intel_SSA|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Intel_SSA|Mixed Platforms.Build.0 = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Intel_SSA|Win32.ActiveCfg = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Intel_SSA|x64.ActiveCfg = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release|Any CPU.Build.0 = Release|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release|Win32.ActiveCfg = Release|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release|x64.ActiveCfg = Release|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release-Signed|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release-Signed|Mixed Platforms.Build.0 = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release-Signed|Win32.ActiveCfg = Release-Signed|Any CPU
{EB1A5D32-F264-4BCE-BEB7-0B97085075BE}.Release-Signed|x64.ActiveCfg = Release-Signed|Any CPU
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|x64.ActiveCfg = Release|x64
{C0B0DBA9-7FB0-4C87-BDB1-3EED19DC2B8F}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

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

@ -407,7 +407,7 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra
break;
case Norm.FrobeniusNorm:
var aat = new Complex[rows * rows];
MatrixMultiplyWithUpdate(Transpose.DontTranspose, Transpose.Transpose, 1.0, matrix, rows, columns, matrix, rows, columns, 0.0, aat);
MatrixMultiplyWithUpdate(Transpose.DontTranspose, Transpose.ConjugateTranspose, 1.0, matrix, rows, columns, matrix, rows, columns, 0.0, aat);
for (var i = 0; i < rows; i++)
{

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

@ -404,7 +404,7 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra
break;
case Norm.FrobeniusNorm:
var aat = new Complex32[rows * rows];
MatrixMultiplyWithUpdate(Transpose.DontTranspose, Transpose.Transpose, 1.0f, matrix, rows, columns, matrix, rows, columns, 0.0f, aat);
MatrixMultiplyWithUpdate(Transpose.DontTranspose, Transpose.ConjugateTranspose, 1.0f, matrix, rows, columns, matrix, rows, columns, 0.0f, aat);
for (var i = 0; i < rows; i++)
{

5
src/Numerics/Algorithms/LinearAlgebra/Mkl/MklLinearAlgebraProvider.Common.cs

@ -4,7 +4,7 @@
// http://github.com/mathnet/mathnet-numerics
// http://mathnetnumerics.codeplex.com
//
// Copyright (c) 2009-2011 Math.NET
// Copyright (c) 2009-2013 Math.NET
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
@ -200,7 +200,6 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Mkl
return SafeNativeMethods.d_matrix_norm((byte)norm, rows, columns, matrix, work);
}
/* BUG in MKL'S ZLANGE routine. Using managed code until it is fixed.
/// <summary>
/// Computes the requested <see cref="Norm"/> of the matrix.
/// </summary>
@ -359,6 +358,6 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Mkl
}
return SafeNativeMethods.z_matrix_norm((byte)norm, rows, columns, matrix, work);
}*/
}
}
}

4
src/Numerics/Algorithms/LinearAlgebra/Mkl/SafeNativeMethods.cs

@ -42,7 +42,7 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Mkl
/// <summary>
/// Name of the native DLL.
/// </summary>
private const string DllName = "MathNET.Numerics.MKL.dll";
private const string DllName = "MathNet.Numerics.MKL.dll";
#region BLAS
@ -102,7 +102,7 @@ namespace MathNet.Numerics.Algorithms.LinearAlgebra.Mkl
internal static extern float s_matrix_norm(byte norm, int rows, int columns, [In] float[] a, [In, Out] float[] work);
[DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
internal static extern float d_matrix_norm(byte norm, int rows, int columns, [In] double[] a, [In, Out] double[] work);
internal static extern double d_matrix_norm(byte norm, int rows, int columns, [In] double[] a, [In, Out] double[] work);
[DllImport(DllName, ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
internal static extern float c_matrix_norm(byte norm, int rows, int columns, [In] Complex32[] a, [In, Out] float[] work);

2
src/Numerics/LinearAlgebra/Complex/Matrix.cs

@ -93,7 +93,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
/// <returns>The Frobenius norm of this matrix.</returns>
public override Complex FrobeniusNorm()
{
var transpose = Transpose();
var transpose = ConjugateTranspose();
var aat = this * transpose;
var norm = 0.0;

2
src/Numerics/LinearAlgebra/Complex/SparseMatrix.cs

@ -527,7 +527,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex
/// <returns>The Frobenius norm of this matrix.</returns>
public override Complex FrobeniusNorm()
{
var aat = (SparseCompressedRowMatrixStorage<Complex>) (this*Transpose()).Storage;
var aat = (SparseCompressedRowMatrixStorage<Complex>) (this*ConjugateTranspose()).Storage;
var norm = 0d;
for (var i = 0; i < aat.RowPointers.Length; i++)

2
src/Numerics/LinearAlgebra/Complex32/Matrix.cs

@ -87,7 +87,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
/// <returns>The Frobenius norm of this matrix.</returns>
public override Complex32 FrobeniusNorm()
{
var transpose = Transpose();
var transpose = ConjugateTranspose();
var aat = this * transpose;
var norm = 0.0f;

2
src/Numerics/LinearAlgebra/Complex32/SparseMatrix.cs

@ -527,7 +527,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
/// <returns>The Frobenius norm of this matrix.</returns>
public override Complex32 FrobeniusNorm()
{
var aat = (SparseCompressedRowMatrixStorage<Complex32>) (this*Transpose()).Storage;
var aat = (SparseCompressedRowMatrixStorage<Complex32>) (this*ConjugateTranspose()).Storage;
var norm = 0f;
for (var i = 0; i < aat.RowPointers.Length; i++)

6
src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs

@ -93,13 +93,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
public virtual void CanComputeFrobeniusNorm()
{
var matrix = TestMatrices["Square3x3"];
AssertHelpers.AlmostEqual(10.8819655930903, matrix.FrobeniusNorm(), 14);
AssertHelpers.AlmostEqual(11.1427106217473, matrix.FrobeniusNorm(), 14);
matrix = TestMatrices["Wide2x3"];
AssertHelpers.AlmostEqual(5.19052560084774, matrix.FrobeniusNorm(), 14);
AssertHelpers.AlmostEqual(5.29055762656452, matrix.FrobeniusNorm(), 14);
matrix = TestMatrices["Tall3x2"];
AssertHelpers.AlmostEqual(7.59041159967795, matrix.FrobeniusNorm(), 14);
AssertHelpers.AlmostEqual(7.86574853399217, matrix.FrobeniusNorm(), 14);
}
/// <summary>

6
src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs

@ -92,13 +92,13 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
public virtual void CanComputeFrobeniusNorm()
{
var matrix = TestMatrices["Square3x3"];
AssertHelpers.AlmostEqual(10.8819655f, matrix.FrobeniusNorm().Real, 7);
AssertHelpers.AlmostEqual(11.1427106217473f, matrix.FrobeniusNorm().Real, 7);
matrix = TestMatrices["Wide2x3"];
AssertHelpers.AlmostEqual(5.1905256f, matrix.FrobeniusNorm().Real, 7);
AssertHelpers.AlmostEqual(5.29055762656452f, matrix.FrobeniusNorm().Real, 6);
matrix = TestMatrices["Tall3x2"];
AssertHelpers.AlmostEqual(7.5904115f, matrix.FrobeniusNorm().Real, 7);
AssertHelpers.AlmostEqual(7.86574853399217, matrix.FrobeniusNorm().Real, 7);
}
/// <summary>

4
src/UnitTests/LinearAlgebraTests/Double/IO/MatlabReaderTests.cs

@ -62,7 +62,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.IO
Assert.AreEqual(100, matrix.RowCount);
Assert.AreEqual(100, matrix.ColumnCount);
Assert.AreEqual(typeof(DenseMatrix), matrix.GetType());
AssertHelpers.AlmostEqual(100.108979553704, matrix.FrobeniusNorm(), 13);
AssertHelpers.AlmostEqual(100.108979553704, matrix.FrobeniusNorm(), 5);
}
/// <summary>
@ -92,7 +92,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.IO
var ad = matrices["Ad"];
Assert.AreEqual(100, ad.RowCount);
Assert.AreEqual(100, ad.ColumnCount);
AssertHelpers.AlmostEqual(100.431635988639, ad.FrobeniusNorm(), 13);
AssertHelpers.AlmostEqual(100.431635988639, ad.FrobeniusNorm(), 5);
Assert.AreEqual(typeof(DenseMatrix), ad.GetType());
}

Loading…
Cancel
Save