Browse Source

Build: rework and simplify compiler constants, bring native provider tests back

spatial
Christoph Ruegg 9 years ago
parent
commit
8ba423a8a6
  1. 24
      MathNet.Numerics.sln
  2. 3
      src/FSharp/AssemblyInfo.fs
  3. 7
      src/FSharp/BigIntegerExtensions.fs
  4. 5
      src/FSharp/BigRational.fs
  5. 5
      src/FSharp/BigRational.fsi
  6. 59
      src/FSharp/Compatibility.fs
  7. 6
      src/FSharp/Complex.fs
  8. 9
      src/FSharp/FSharp.fsproj
  9. 2
      src/FSharp/Fit.fs
  10. 16
      src/FSharp/LinearAlgebra.Matrix.fs
  11. 12
      src/FSharp/LinearAlgebra.Vector.fs
  12. 3
      src/FSharp/Random.fs
  13. 5
      src/FSharp/RandomVariable.fs
  14. 3
      src/FSharpUnitTests/AssemblyInfo.fs
  15. 5
      src/FSharpUnitTests/BigRationalTests.fs
  16. 3
      src/FSharpUnitTests/FSharpUnitTests.fsproj
  17. 5
      src/FSharpUnitTests/RandomVariableTests.fs
  18. 4
      src/FSharpUnitTests/VectorTests.fs
  19. 6
      src/Numerics/ArrayExtensions.cs
  20. 182
      src/Numerics/Compatibility.cs
  21. 19
      src/Numerics/Complex32.cs
  22. 1275
      src/Numerics/Complex64.cs
  23. 19
      src/Numerics/ComplexExtensions.cs
  24. 8
      src/Numerics/Differentiation/FiniteDifferenceCoefficients.cs
  25. 11
      src/Numerics/Euclid.cs
  26. 2
      src/Numerics/ExcelFunctions.cs
  27. 12
      src/Numerics/Exceptions.cs
  28. 5
      src/Numerics/FindRoots.cs
  29. 9
      src/Numerics/Generate.cs
  30. 2
      src/Numerics/GlobalizationHelper.cs
  31. 5
      src/Numerics/IntegralTransforms/Fourier.Bluestein.cs
  32. 5
      src/Numerics/IntegralTransforms/Fourier.Naive.cs
  33. 5
      src/Numerics/IntegralTransforms/Fourier.RadixN.cs
  34. 17
      src/Numerics/IntegralTransforms/Fourier.cs
  35. 18
      src/Numerics/LinearAlgebra/Builder.cs
  36. 5
      src/Numerics/LinearAlgebra/Complex/DenseMatrix.cs
  37. 7
      src/Numerics/LinearAlgebra/Complex/DenseVector.cs
  38. 7
      src/Numerics/LinearAlgebra/Complex/DiagonalMatrix.cs
  39. 5
      src/Numerics/LinearAlgebra/Complex/Factorization/Cholesky.cs
  40. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/DenseCholesky.cs
  41. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/DenseEvd.cs
  42. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/DenseGramSchmidt.cs
  43. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/DenseLU.cs
  44. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/DenseQR.cs
  45. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/DenseSvd.cs
  46. 5
      src/Numerics/LinearAlgebra/Complex/Factorization/Evd.cs
  47. 5
      src/Numerics/LinearAlgebra/Complex/Factorization/GramSchmidt.cs
  48. 5
      src/Numerics/LinearAlgebra/Complex/Factorization/LU.cs
  49. 5
      src/Numerics/LinearAlgebra/Complex/Factorization/QR.cs
  50. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/Svd.cs
  51. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/UserCholesky.cs
  52. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/UserEvd.cs
  53. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/UserGramSchmidt.cs
  54. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/UserLU.cs
  55. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/UserQR.cs
  56. 7
      src/Numerics/LinearAlgebra/Complex/Factorization/UserSvd.cs
  57. 5
      src/Numerics/LinearAlgebra/Complex/Matrix.cs
  58. 5
      src/Numerics/LinearAlgebra/Complex/Solvers/BiCgStab.cs
  59. 7
      src/Numerics/LinearAlgebra/Complex/Solvers/CompositeSolver.cs
  60. 5
      src/Numerics/LinearAlgebra/Complex/Solvers/DiagonalPreconditioner.cs
  61. 5
      src/Numerics/LinearAlgebra/Complex/Solvers/GpBiCg.cs
  62. 5
      src/Numerics/LinearAlgebra/Complex/Solvers/ILU0Preconditioner.cs
  63. 5
      src/Numerics/LinearAlgebra/Complex/Solvers/ILUTPPreconditioner.cs
  64. 5
      src/Numerics/LinearAlgebra/Complex/Solvers/MILU0Preconditioner.cs
  65. 5
      src/Numerics/LinearAlgebra/Complex/Solvers/MlkBiCgStab.cs
  66. 6
      src/Numerics/LinearAlgebra/Complex/Solvers/TFQMR.cs
  67. 7
      src/Numerics/LinearAlgebra/Complex/SparseMatrix.cs
  68. 7
      src/Numerics/LinearAlgebra/Complex/SparseVector.cs
  69. 5
      src/Numerics/LinearAlgebra/Complex/Vector.cs
  70. 5
      src/Numerics/LinearAlgebra/Complex32/Factorization/DenseEvd.cs
  71. 5
      src/Numerics/LinearAlgebra/Complex32/Factorization/Evd.cs
  72. 5
      src/Numerics/LinearAlgebra/Complex32/Factorization/UserEvd.cs
  73. 7
      src/Numerics/LinearAlgebra/Double/Factorization/DenseEvd.cs
  74. 5
      src/Numerics/LinearAlgebra/Double/Factorization/Evd.cs
  75. 7
      src/Numerics/LinearAlgebra/Double/Factorization/UserEvd.cs
  76. 5
      src/Numerics/LinearAlgebra/Factorization/Evd.cs
  77. 4
      src/Numerics/LinearAlgebra/Matrix.BCL.cs
  78. 2
      src/Numerics/LinearAlgebra/Matrix.cs
  79. 4
      src/Numerics/LinearAlgebra/MatrixExtensions.cs
  80. 7
      src/Numerics/LinearAlgebra/Single/Factorization/DenseEvd.cs
  81. 7
      src/Numerics/LinearAlgebra/Single/Factorization/Evd.cs
  82. 5
      src/Numerics/LinearAlgebra/Single/Factorization/UserEvd.cs
  83. 8
      src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs
  84. 2
      src/Numerics/LinearAlgebra/Storage/DenseColumnMajorMatrixStorage.cs
  85. 2
      src/Numerics/LinearAlgebra/Storage/MatrixStorage.cs
  86. 2
      src/Numerics/LinearAlgebra/Vector.BCL.cs
  87. 2
      src/Numerics/LinearAlgebra/Vector.cs
  88. 4
      src/Numerics/LinearAlgebra/VectorExtensions.cs
  89. 104
      src/Numerics/Numerics.csproj
  90. 14
      src/Numerics/Permutation.cs
  91. 52
      src/Numerics/Precision.Equality.cs
  92. 4
      src/Numerics/Precision.cs
  93. 30
      src/Numerics/Properties/AssemblyInfo.cs
  94. 236
      src/Numerics/Properties/Resources.Designer.cs
  95. 5
      src/Numerics/Providers/Common/Cuda/SafeNativeMethods.cs
  96. 5
      src/Numerics/Providers/Common/Mkl/SafeNativeMethods.cs
  97. 5
      src/Numerics/Providers/Common/NativeProviderLoader.cs
  98. 5
      src/Numerics/Providers/Common/OpenBlas/SafeNativeMethods.cs
  99. 11
      src/Numerics/Providers/FourierTransform/IFourierTransformProvider.cs
  100. 5
      src/Numerics/Providers/FourierTransform/ManagedFourierTransformProvider.cs

24
MathNet.Numerics.sln

@ -35,6 +35,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{B54A0B40
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestData", "src/TestData/TestData.csproj", "{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests-MKL", "src/UnitTests/UnitTests-MKL.csproj", "{0F171596-CDE9-4197-A8B2-07C406814CE3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests-OpenBLAS", "src/UnitTests/UnitTests-OpenBLAS.csproj", "{9C4A3651-3C4D-405A-8D25-503E04A1B459}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests-CUDA", "src/UnitTests/UnitTests-CUDA.csproj", "{E184F219-F9F9-4396-AE0A-B431375CF06F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -72,6 +78,24 @@ Global
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release|Any CPU.Build.0 = Release|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Any CPU.Build.0 = Release|Any CPU
{0F171596-CDE9-4197-A8B2-07C406814CE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0F171596-CDE9-4197-A8B2-07C406814CE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0F171596-CDE9-4197-A8B2-07C406814CE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0F171596-CDE9-4197-A8B2-07C406814CE3}.Release|Any CPU.Build.0 = Release|Any CPU
{0F171596-CDE9-4197-A8B2-07C406814CE3}.Release-Signed|Any CPU.ActiveCfg = Debug|Any CPU
{0F171596-CDE9-4197-A8B2-07C406814CE3}.Release-Signed|Any CPU.Build.0 = Debug|Any CPU
{9C4A3651-3C4D-405A-8D25-503E04A1B459}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C4A3651-3C4D-405A-8D25-503E04A1B459}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C4A3651-3C4D-405A-8D25-503E04A1B459}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C4A3651-3C4D-405A-8D25-503E04A1B459}.Release|Any CPU.Build.0 = Release|Any CPU
{9C4A3651-3C4D-405A-8D25-503E04A1B459}.Release-Signed|Any CPU.ActiveCfg = Debug|Any CPU
{9C4A3651-3C4D-405A-8D25-503E04A1B459}.Release-Signed|Any CPU.Build.0 = Debug|Any CPU
{E184F219-F9F9-4396-AE0A-B431375CF06F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E184F219-F9F9-4396-AE0A-B431375CF06F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E184F219-F9F9-4396-AE0A-B431375CF06F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E184F219-F9F9-4396-AE0A-B431375CF06F}.Release|Any CPU.Build.0 = Release|Any CPU
{E184F219-F9F9-4396-AE0A-B431375CF06F}.Release-Signed|Any CPU.ActiveCfg = Debug|Any CPU
{E184F219-F9F9-4396-AE0A-B431375CF06F}.Release-Signed|Any CPU.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

3
src/FSharp/AssemblyInfo.fs

@ -48,10 +48,7 @@ open System.Runtime.InteropServices
[<assembly: AssemblyFileVersion("4.0.0.0")>]
[<assembly: AssemblyInformationalVersion("4.0.0-beta05")>]
#if PORTABLE || NETSTANDARD
#else
[<assembly: ComVisible(false)>]
[<assembly: Guid("048BC4EB-CE2B-4040-9967-4784F5405B0F")>]
#endif
()

7
src/FSharp/BigIntegerExtensions.fs

@ -1,9 +1,5 @@
namespace System.Numerics
#if PORTABLE || NETSTANDARD
#if NOSYSNUMERICS
#else
open System
[<AutoOpen>]
@ -30,6 +26,3 @@ module BigIntegerExtensions =
-(parseImpl str len 0I 1)
else
parseImpl str len 0I 0
#endif
#endif

5
src/FSharp/BigRational.fs

@ -7,9 +7,6 @@
namespace MathNet.Numerics
#if NOSYSNUMERICS
#else
open System
open System.Numerics
open System.Globalization
@ -499,5 +496,3 @@ module NumericLiteralN =
type BigNum = BigRational
//
type bignum = BigRational
#endif

5
src/FSharp/BigRational.fsi

@ -6,9 +6,6 @@
namespace MathNet.Numerics
#if NOSYSNUMERICS
#else
open System
open System.Numerics
@ -79,5 +76,3 @@ module NumericLiteralN =
type BigNum = BigRational
type bignum = BigRational
#endif

59
src/FSharp/Compatibility.fs

@ -1,59 +0,0 @@
// <copyright file="Compatibility.fs" company="Math.NET">
// Math.NET Numerics, part of the Math.NET Project
// http://numerics.mathdotnet.com
// http://github.com/mathnet/mathnet-numerics
//
// Copyright (c) 2009-2014 Math.NET
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
namespace MathNet.Numerics
[<AutoOpen>]
module internal Compatibility =
#if NET35
let inline internal properTuple2 (tuple: MathNet.Numerics.Tuple<'a,'b>) = tuple.Item1, tuple.Item2
let inline internal properTuple3 (tuple: MathNet.Numerics.Tuple<'a,'b,'c>) = tuple.Item1, tuple.Item2, tuple.Item3
let inline internal internalTuple2 ((a,b): ('a * 'b)) = MathNet.Numerics.Tuple<'a,'b>(a, b)
let inline internal internalTuple3 ((a,b,c): ('a * 'b * 'c)) = MathNet.Numerics.Tuple<'a,'b,'c>(a, b, c)
let inline internal properTuple2Seq x = x |> Seq.map properTuple2
let inline internal properTuple3Seq x = x |> Seq.map properTuple3
let inline internal internalTuple2Seq x = x |> Seq.map internalTuple2
let inline internal internalTuple3Seq x = x |> Seq.map internalTuple3
#else
let inline internal properTuple2 x = x
let inline internal properTuple3 x = x
let inline internal internalTuple2 x = x
let inline internal internalTuple3 x = x
let inline internal properTuple2Seq x = x
let inline internal properTuple3Seq x = x
let inline internal internalTuple2Seq x = x
let inline internal internalTuple3Seq x = x
#endif

6
src/FSharp/Complex.fs

@ -6,12 +6,8 @@ namespace MathNet.Numerics
open Microsoft.FSharp.Math
open System
open System.Globalization
#if NOSYSNUMERICS
#else
open System.Numerics
#endif
open System.Globalization
//
type complex = Complex

9
src/FSharp/FSharp.fsproj

@ -40,18 +40,11 @@ All: code quality fixes ~Jonas Nyrup</PackageReleaseNotes>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
<NoWarn>2003</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='netstandard1.6'">
<DefineConstants>NETSTANDARD</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='netstandard2.0'">
<DefineConstants>NETSTANDARD</DefineConstants>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Numerics\Numerics.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.fs" />
<Compile Include="Compatibility.fs" />
<Compile Include="Statistics.fs" />
<Compile Include="Random.fs" />
<Compile Include="Distributions.fs" />
@ -71,4 +64,4 @@ All: code quality fixes ~Jonas Nyrup</PackageReleaseNotes>
<None Include="MathNet.Numerics.IfSharp.fsx" />
</ItemGroup>
<Import Project="..\..\.paket\Paket.Restore.targets" />
</Project>
</Project>

2
src/FSharp/Fit.fs

@ -41,7 +41,7 @@ module Fit =
/// Least-Squares fitting the points (x,y) to a line y : x -> a+b*x,
/// returning its best fitting parameters as (a, b) tuple.
let line x y = Fit.Line(x,y) |> properTuple2
let line x y = Fit.Line(x,y)
/// Least-Squares fitting the points (x,y) to a line y : x -> a+b*x,
/// returning a function y' for the best fitting line.

16
src/FSharp/LinearAlgebra.Matrix.fs

@ -52,25 +52,25 @@ module Matrix =
let inline toSeq (m: #Matrix<_>) = m.Enumerate(Zeros.Include)
/// Transform a matrix into an indexed sequence.
let inline toSeqi (m: #Matrix<_>) = m.EnumerateIndexed(Zeros.Include) |> properTuple3Seq
let inline toSeqi (m: #Matrix<_>) = m.EnumerateIndexed(Zeros.Include)
/// Transform a matrix into a sequence where zero-values are skipped. Skipping zeros is efficient on sparse data.
let inline toSeqSkipZeros (m: #Matrix<_>) = m.Enumerate(Zeros.AllowSkip)
/// Transform a matrix into an indexed sequence where zero-values are skipped. Skipping zeros is efficient on sparse data.
let inline toSeqiSkipZeros (m: #Matrix<_>) = m.EnumerateIndexed(Zeros.AllowSkip) |> properTuple3Seq
let inline toSeqiSkipZeros (m: #Matrix<_>) = m.EnumerateIndexed(Zeros.AllowSkip)
/// Transform a matrix into a column sequence.
let inline toColSeq (m: #Matrix<_>) = m.EnumerateColumns()
/// Transform a matrix into an indexed column sequence.
let inline toColSeqi (m: #Matrix<_>) = m.EnumerateColumnsIndexed() |> properTuple2Seq
let inline toColSeqi (m: #Matrix<_>) = m.EnumerateColumnsIndexed()
/// Transform a matrix into a row sequence.
let inline toRowSeq (m: #Matrix<_>) = m.EnumerateRows()
/// Transform a matrix into an indexed row sequence.
let inline toRowSeqi (m: #Matrix<_>) = m.EnumerateRowsIndexed() |> properTuple2Seq
let inline toRowSeqi (m: #Matrix<_>) = m.EnumerateRowsIndexed()
/// Applies a function to all elements of the matrix.
@ -475,10 +475,10 @@ module DenseMatrix =
let inline ofColumnSeq2 (rows: int) (cols: int) (seqOfCols: #seq<seq<'T>>) = Matrix<'T>.Build.DenseOfColumns(rows, cols, seqOfCols)
/// Create a matrix with a given dimension from an indexed list of row, column, value tuples.
let inline ofListi (rows: int) (cols: int) (indexed: list<int * int * 'T>) = Matrix<'T>.Build.DenseOfIndexed(rows, cols, Seq.ofList indexed |> internalTuple3Seq)
let inline ofListi (rows: int) (cols: int) (indexed: list<int * int * 'T>) = Matrix<'T>.Build.DenseOfIndexed(rows, cols, Seq.ofList indexed)
/// Create a matrix with a given dimension from an indexed sequences of row, column, value tuples.
let inline ofSeqi (rows: int) (cols: int) (indexed: #seq<int * int * 'T>) = Matrix<'T>.Build.DenseOfIndexed(rows, cols, indexed |> internalTuple3Seq)
let inline ofSeqi (rows: int) (cols: int) (indexed: #seq<int * int * 'T>) = Matrix<'T>.Build.DenseOfIndexed(rows, cols, indexed)
/// Create a square matrix with the vector elements on the diagonal.
let inline ofDiag (v: Vector<'T>) = Matrix<'T>.Build.DenseOfDiagonalVector(v)
@ -579,10 +579,10 @@ module SparseMatrix =
let inline ofColumnSeq2 (rows: int) (cols: int) (seqOfCols: #seq<seq<'T>>) = Matrix<'T>.Build.SparseOfColumns(rows, cols, seqOfCols)
/// Create a matrix with a given dimension from an indexed list of row, column, value tuples.
let inline ofListi (rows: int) (cols: int) (indexed: list<int * int * 'T>) = Matrix<'T>.Build.SparseOfIndexed(rows, cols, Seq.ofList indexed |> internalTuple3Seq)
let inline ofListi (rows: int) (cols: int) (indexed: list<int * int * 'T>) = Matrix<'T>.Build.SparseOfIndexed(rows, cols, Seq.ofList indexed)
/// Create a matrix with a given dimension from an indexed sequences of row, column, value tuples.
let inline ofSeqi (rows: int) (cols: int) (indexed: #seq<int * int * 'T>) = Matrix<'T>.Build.SparseOfIndexed(rows, cols, indexed |> internalTuple3Seq)
let inline ofSeqi (rows: int) (cols: int) (indexed: #seq<int * int * 'T>) = Matrix<'T>.Build.SparseOfIndexed(rows, cols, indexed)
/// Create a square matrix with the vector elements on the diagonal.
let inline ofDiag (v: Vector<'T>) = Matrix<'T>.Build.SparseOfDiagonalVector(v)

12
src/FSharp/LinearAlgebra.Vector.fs

@ -49,13 +49,13 @@ module Vector =
let inline toSeq (v: #Vector<_>) = v.Enumerate(Zeros.Include)
/// Transform a vector into an indexed sequence.
let inline toSeqi (v: #Vector<_>) = v.EnumerateIndexed(Zeros.Include) |> properTuple2Seq
let inline toSeqi (v: #Vector<_>) = v.EnumerateIndexed(Zeros.Include)
/// Transform a vector into a sequence where zero-values are skipped. Skipping zeros is efficient on sparse data.
let inline toSeqSkipZeros (v: #Vector<_>) = v.Enumerate(Zeros.AllowSkip)
/// Transform a vector into an indexed sequence where zero-values are skipped. Skipping zeros is efficient on sparse data.
let inline toSeqiSkipZeros (v: #Vector<_>) = v.EnumerateIndexed(Zeros.AllowSkip) |> properTuple2Seq
let inline toSeqiSkipZeros (v: #Vector<_>) = v.EnumerateIndexed(Zeros.AllowSkip)
/// Applies a function to all elements of the vector.
@ -279,10 +279,10 @@ module DenseVector =
let inline ofSeq (fs: #seq<'T>) = Vector<'T>.Build.DenseOfEnumerable(fs)
/// Create a vector with a given dimension from an indexed list of index, value pairs.
let inline ofListi (n: int) (fl: list<int * 'T>) = Vector<'T>.Build.DenseOfIndexed(n, Seq.ofList fl |> internalTuple2Seq)
let inline ofListi (n: int) (fl: list<int * 'T>) = Vector<'T>.Build.DenseOfIndexed(n, Seq.ofList fl)
/// Create a vector with a given dimension from an indexed sequences of index, value pairs.
let inline ofSeqi (n: int) (fs: #seq<int * 'T>) = Vector<'T>.Build.DenseOfIndexed(n, fs |> internalTuple2Seq)
let inline ofSeqi (n: int) (fs: #seq<int * 'T>) = Vector<'T>.Build.DenseOfIndexed(n, fs)
/// Create a vector with integer entries in the given range.
let inline range (start: int) (step: int) (stop: int) = raw [| for i in start..step..stop -> float i |]
@ -318,10 +318,10 @@ module SparseVector =
let inline ofSeq (fs: #seq<'T>) = Vector<'T>.Build.SparseOfEnumerable(fs)
/// Create a sparse vector with a given dimension from an indexed list of index, value pairs.
let inline ofListi (n: int) (fl: list<int * 'T>) = Vector<'T>.Build.SparseOfIndexed(n, Seq.ofList fl |> internalTuple2Seq)
let inline ofListi (n: int) (fl: list<int * 'T>) = Vector<'T>.Build.SparseOfIndexed(n, Seq.ofList fl)
/// Create a sparse vector with a given dimension from an indexed sequence of index, value pairs.
let inline ofSeqi (n: int) (fs: #seq<int * 'T>) = Vector<'T>.Build.SparseOfIndexed(n, fs |> internalTuple2Seq)
let inline ofSeqi (n: int) (fs: #seq<int * 'T>) = Vector<'T>.Build.SparseOfIndexed(n, fs)
/// Module that contains implementation of useful F#-specific extension members for generic vectors

3
src/FSharp/Random.fs

@ -49,14 +49,11 @@ module Random =
let inline system () = SystemRandomSource() :> System.Random
let inline systemSeed (seed:int) = SystemRandomSource(seed) :> System.Random
#if PORTABLE || NETSTANDARD
#else
/// Creates a default .Net cryptographic system pRNG
let inline crypto () = new CryptoRandomSource() :> System.Random
let inline cryptoWith (threadSafe:bool) = new CryptoRandomSource(threadSafe) :> System.Random
let inline cryptoDoubles (length:int) = CryptoRandomSource.Doubles(length)
let inline cryptoDoubleSeq () = CryptoRandomSource.DoubleSequence()
#endif
/// Creates a Mersenne Twister 19937 pRNG with a robust seed
let mersenneTwisterShared = MersenneTwister.Default :> System.Random

5
src/FSharp/RandomVariable.fs

@ -2,9 +2,6 @@
#nowarn "40"
#if NOSYSNUMERICS
#else
open System
open System.Collections
open System.Collections.Generic
@ -96,5 +93,3 @@ module RandomVariable =
|> map (fst >> List.rev)
let remove items = Seq.filter (fun v -> Seq.forall ((<>) v) items)
#endif

3
src/FSharpUnitTests/AssemblyInfo.fs

@ -14,10 +14,7 @@ open System.Runtime.InteropServices
[<assembly: AssemblyFileVersion("4.0.0.0")>]
[<assembly: AssemblyInformationalVersion("4.0.0-beta05")>]
#if PORTABLE || NETSTANDARD
#else
[<assembly: ComVisible(false)>]
[<assembly: Guid("C9AA6156-F799-42E4-B50D-2E88AD7D1750")>]
#endif
()

5
src/FSharpUnitTests/BigRationalTests.fs

@ -3,9 +3,6 @@
namespace MathNet.Numerics.Tests
#if NOSYSNUMERICS
#else
open MathNet.Numerics
open NUnit.Framework
open System
@ -648,5 +645,3 @@ type BigNumType() =
Assert.AreEqual(g_positive1.Numerator, g_bigintpositive)
Assert.AreEqual(g_negative1.Numerator, g_bigintnegative)
Assert.AreEqual(0N.Numerator, 0I)
#endif

3
src/FSharpUnitTests/FSharpUnitTests.fsproj

@ -9,9 +9,6 @@
<IsPackable>false</IsPackable>
<NoWarn>44;2003</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.Contains('netcoreapp')) OR $(TargetFramework.Contains('netstandard'))">
<DefineConstants>NETSTANDARD</DefineConstants>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\FSharp\FSharp.fsproj" />
<ProjectReference Include="..\TestData\TestData.csproj" />

5
src/FSharpUnitTests/RandomVariableTests.fs

@ -1,8 +1,5 @@
module MathNet.Numerics.Tests.RandomVariableTests
#if NOSYSNUMERICS
#else
open NUnit.Framework
open FsUnitTyped
@ -81,5 +78,3 @@ let ``When switching in a MontyHall situation, the chances to win should be 2/3`
|> RandomVariable.filter ((=) Car)
|> RandomVariable.probability
|> shouldEqual (2N/3N)
#endif

4
src/FSharpUnitTests/VectorTests.fs

@ -28,9 +28,6 @@ module VectorTests =
largev.[97..] |> shouldEqual (DenseVector.raw [|0.97;0.98;0.99|])
largev.[..4] |> shouldEqual (DenseVector.raw [|0.00;0.01;0.02;0.03;0.04|])
#if NOFSSLICESET1D
#else
// Vector SetSlice does not work properly in VisualStudio 2013 RTM
[<Test>]
let ``Vector.SetSlice`` () =
let v = smallv.Clone() in
@ -48,7 +45,6 @@ module VectorTests =
let v = smallv.Clone() in
v.[..2] <- vector [7.0;8.0;9.0];
v |> shouldEqual (DenseVector.raw [|7.0;8.0;9.0;0.3;0.3|])
#endif
[<Test>]
let ``Vector.toArray`` () =

6
src/Numerics/ArrayExtensions.cs

@ -28,14 +28,10 @@
// </copyright>
using System;
using System.Numerics;
namespace MathNet.Numerics
{
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// Useful extension methods for Arrays.
/// </summary>

182
src/Numerics/Compatibility.cs

@ -1,4 +1,4 @@
#if PORTABLE || NETSTANDARD
#if NETSTANDARD1_3
namespace MathNet.Numerics
{
using System;
@ -139,7 +139,7 @@ namespace MathNet.Numerics
}
#endif
#if (PORTABLE || NET35 || NETSTANDARD)
#if NETSTANDARD1_3
namespace MathNet.Numerics
{
using System;
@ -156,181 +156,3 @@ namespace MathNet.Numerics
}
}
#endif
#if NET35
namespace MathNet.Numerics
{
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
internal static class ObjectComparer
{
internal static int Compare<T>(T a, T b)
{
if (ReferenceEquals(a, null)) return -1;
if (ReferenceEquals(b, null)) return 1;
if (Equals(a, b)) return 0;
return Comparer<T>.Default.Compare(a, b);
}
}
public class Tuple<T1, T2> : IComparable, IComparable<Tuple<T1, T2>>
{
public T1 Item1 { get; set; }
public T2 Item2 { get; set; }
public Tuple(T1 item1, T2 item2)
{
Item1 = item1;
Item2 = item2;
}
public int CompareTo(object obj)
{
if (obj == null) return 1;
var other = obj as Tuple<T1, T2>;
if (other == null) throw new ArgumentException();
return CompareTo(other);
}
public int CompareTo(Tuple<T1, T2> other)
{
if (other == null) return 1;
int a = ObjectComparer.Compare(Item1, other.Item1);
return a != 0 ? a : ObjectComparer.Compare(Item2, other.Item2);
}
}
public class Tuple<T1, T2, T3> : IComparable, IComparable<Tuple<T1, T2, T3>>
{
public T1 Item1 { get; set; }
public T2 Item2 { get; set; }
public T3 Item3 { get; set; }
public Tuple(T1 item1, T2 item2, T3 item3)
{
Item1 = item1;
Item2 = item2;
Item3 = item3;
}
public int CompareTo(object obj)
{
if (obj == null) return 1;
var other = obj as Tuple<T1, T2, T3>;
if (other == null) throw new ArgumentException();
return CompareTo(other);
}
public int CompareTo(Tuple<T1, T2, T3> other)
{
if (other == null) return 1;
int a = ObjectComparer.Compare(Item1, other.Item1);
if (a != 0) return a;
int b = ObjectComparer.Compare(Item2, other.Item2);
return b != 0 ? b : ObjectComparer.Compare(Item3, other.Item3);
}
}
public class Tuple<T1, T2, T3, T4> : IComparable, IComparable<Tuple<T1, T2, T3, T4>>
{
public T1 Item1 { get; set; }
public T2 Item2 { get; set; }
public T3 Item3 { get; set; }
public T4 Item4 { get; set; }
public Tuple(T1 item1, T2 item2, T3 item3, T4 item4)
{
Item1 = item1;
Item2 = item2;
Item3 = item3;
Item4 = item4;
}
public int CompareTo(object obj)
{
if (obj == null) return 1;
var other = obj as Tuple<T1, T2, T3, T4>;
if (other == null) throw new ArgumentException();
return CompareTo(other);
}
public int CompareTo(Tuple<T1, T2, T3, T4> other)
{
if (other == null) return 1;
int a = ObjectComparer.Compare(Item1, other.Item1);
if (a != 0) return a;
int b = ObjectComparer.Compare(Item2, other.Item2);
if (b != 0) return b;
int c = ObjectComparer.Compare(Item3, other.Item3);
return c != 0 ? c : ObjectComparer.Compare(Item4, other.Item4);
}
}
public static class EnumerableExtensions
{
public static IEnumerable<T> Zip<TA, TB, T>(this IEnumerable<TA> seqA, IEnumerable<TB> seqB, Func<TA, TB, T> func)
{
if (seqA == null) throw new ArgumentNullException("seqA");
if (seqB == null) throw new ArgumentNullException("seqB");
return Zip35Deferred(seqA, seqB, func);
}
private static IEnumerable<T> Zip35Deferred<A, B, T>(IEnumerable<A> seqA, IEnumerable<B> seqB, Func<A, B, T> func)
{
using (var iteratorA = seqA.GetEnumerator())
using (var iteratorB = seqB.GetEnumerator())
{
while (iteratorA.MoveNext() && iteratorB.MoveNext())
{
yield return func(iteratorA.Current, iteratorB.Current);
}
}
}
}
internal static class Partitioner
{
public static OrderablePartitioner<Tuple<int, int>> Create(int fromInclusive, int toExclusive)
{
var rangeSize = Math.Max(1, (toExclusive - fromInclusive) / Control.MaxDegreeOfParallelism);
return Create(fromInclusive, toExclusive, rangeSize);
}
public static OrderablePartitioner<Tuple<int, int>> Create(int fromInclusive, int toExclusive, int rangeSize)
{
if (toExclusive <= fromInclusive) throw new ArgumentOutOfRangeException("toExclusive");
if (rangeSize <= 0) throw new ArgumentOutOfRangeException("rangeSize");
return System.Collections.Concurrent.Partitioner.Create(CreateRanges(fromInclusive, toExclusive, rangeSize));
}
private static IEnumerable<Tuple<int, int>> CreateRanges(int fromInclusive, int toExclusive, int rangeSize)
{
bool flag = false;
int num = fromInclusive;
while (num < toExclusive && !flag)
{
int item = num;
int num2;
try
{
num2 = checked(num + rangeSize);
}
catch (OverflowException)
{
num2 = toExclusive;
flag = true;
}
if (num2 > toExclusive)
{
num2 = toExclusive;
}
yield return new Tuple<int, int>(item, num2);
num += rangeSize;
}
}
}
}
#endif

19
src/Numerics/Complex32.cs

@ -32,17 +32,14 @@ using System.Collections.Generic;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Numerics;
namespace MathNet.Numerics
{
#if !PORTABLE
using System.Runtime;
#endif
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
using BigInteger = System.Numerics.BigInteger;
#if !NETSTANDARD1_3
using System.Runtime;
#endif
namespace MathNet.Numerics
{
/// <summary>
/// 32-bit single precision complex numbers class.
/// </summary>
@ -698,7 +695,7 @@ namespace MathNet.Numerics
/// <summary>Division operator. Divides a float value by a complex number.</summary>
/// <remarks>Algorithm based on Smith's algorithm</remarks>
/// <see cref="InternalDiv(float, float, float, float, bool)"/>
/// <see cref="InternalDiv(float, float, float, float, bool)"/>
/// <returns>The result of the division.</returns>
/// <param name="dividend">The dividend.</param>
/// <param name="divisor">The divisor.</param>
@ -1030,7 +1027,7 @@ namespace MathNet.Numerics
}
}
#if PORTABLE || NETSTANDARD
#if NETSTANDARD1_3
var value = GlobalizationHelper.ParseSingle(ref token);
#else
var value = GlobalizationHelper.ParseSingle(ref token, format.GetCultureInfo());
@ -1187,7 +1184,6 @@ namespace MathNet.Numerics
return new Complex32(value, 0.0f);
}
#if !NOSYSNUMERICS
/// <summary>
/// Implicit conversion of a BigInteger int to a <c>Complex32</c>.
/// </summary>
@ -1197,7 +1193,6 @@ namespace MathNet.Numerics
{
return new Complex32((long)value, 0.0f);
}
#endif
/// <summary>
/// Implicit conversion of a real long to a <c>Complex32</c>.

1275
src/Numerics/Complex64.cs

File diff suppressed because it is too large

19
src/Numerics/ComplexExtensions.cs

@ -27,19 +27,16 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
namespace MathNet.Numerics
{
using System;
using System.Collections.Generic;
#if !PORTABLE && !NETSTANDARD
using System.Runtime;
#endif
using System;
using System.Collections.Generic;
using System.Numerics;
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
#if !NETSTANDARD1_3
using System.Runtime;
#endif
namespace MathNet.Numerics
{
/// <summary>
/// Extension methods for the Complex type provided by System.Numerics
/// </summary>
@ -607,7 +604,7 @@ namespace MathNet.Numerics
}
}
#if PORTABLE || NETSTANDARD
#if NETSTANDARD1_3
var value = GlobalizationHelper.ParseDouble(ref token);
#else
var value = GlobalizationHelper.ParseDouble(ref token, format.GetCultureInfo());

8
src/Numerics/Differentiation/FiniteDifferenceCoefficients.cs

@ -129,12 +129,12 @@ namespace MathNet.Numerics.Differentiation
// "Polish" results by rounding.
var fac = SpecialFunctions.Factorial(points);
for (int j = 0; j < points; j++)
{
for (int k = 0; k < points; k++)
#if PORTABLE
c[center][j, k] = (Math.Round(c[center][j, k] * fac)) / fac;
#else
{
c[center][j, k] = (Math.Round(c[center][j, k] * fac, MidpointRounding.AwayFromZero)) / fac;
#endif
}
}
}
_coefficients = c;

11
src/Numerics/Euclid.cs

@ -29,10 +29,7 @@
using System;
using System.Collections.Generic;
#if !NOSYSNUMERICS
using System.Numerics;
#endif
namespace MathNet.Numerics
{
@ -73,7 +70,6 @@ namespace MathNet.Numerics
return ((dividend%divisor) + divisor)%divisor;
}
#if !NOSYSNUMERICS
/// <summary>
/// Canonical Modulus. The result has the sign of the divisor.
/// </summary>
@ -81,7 +77,6 @@ namespace MathNet.Numerics
{
return ((dividend%divisor) + divisor)%divisor;
}
#endif
/// <summary>
/// Remainder (% operator). The result has the sign of the dividend.
@ -115,7 +110,6 @@ namespace MathNet.Numerics
return dividend%divisor;
}
#if !NOSYSNUMERICS
/// <summary>
/// Remainder (% operator). The result has the sign of the dividend.
/// </summary>
@ -123,7 +117,6 @@ namespace MathNet.Numerics
{
return dividend%divisor;
}
#endif
/// <summary>
/// Find out whether the provided 32 bit integer is an even number.
@ -430,7 +423,7 @@ namespace MathNet.Numerics
while (b != 0)
{
long rem;
#if PORTABLE || NETSTANDARD
#if NETSTANDARD1_3
rem = a % b;
var quot = a / b;
#else
@ -513,7 +506,6 @@ namespace MathNet.Numerics
return LeastCommonMultiple((IList<long>)integers);
}
#if !NOSYSNUMERICS
/// <summary>
/// Returns the greatest common divisor (<c>gcd</c>) of two big integers.
/// </summary>
@ -662,6 +654,5 @@ namespace MathNet.Numerics
{
return LeastCommonMultiple((IList<BigInteger>)integers);
}
#endif
}
}

2
src/Numerics/ExcelFunctions.cs

@ -31,7 +31,7 @@ using System;
using MathNet.Numerics.Distributions;
using MathNet.Numerics.Statistics;
#if !PORTABLE
#if !NETSTANDARD1_3
using System.Runtime;
#endif

12
src/Numerics/Exceptions.cs

@ -20,7 +20,7 @@ namespace MathNet.Numerics
public NonConvergenceException(string message, Exception innerException) : base(message, innerException)
{
}
#if !PORTABLE && !NETSTANDARD
#if !NETSTANDARD1_3
protected NonConvergenceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
: base(info, context)
{
@ -48,7 +48,7 @@ namespace MathNet.Numerics
: base(message, innerException)
{
}
#if !PORTABLE && !NETSTANDARD
#if !NETSTANDARD1_3
protected NumericalBreakdownException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
: base(info, context)
{
@ -75,7 +75,7 @@ namespace MathNet.Numerics
: base(message, innerException)
{
}
#if !PORTABLE && !NETSTANDARD
#if !NETSTANDARD1_3
protected NativeInterfaceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
: base(info, context)
{
@ -103,7 +103,7 @@ namespace MathNet.Numerics
: base(string.Format(Resources.InvalidParameterWithNumber, parameter), innerException)
{
}
#if !PORTABLE && !NETSTANDARD
#if !NETSTANDARD1_3
protected InvalidParameterException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
: base(info, context)
{
@ -126,7 +126,7 @@ namespace MathNet.Numerics
: base(Resources.MemoryAllocation, innerException)
{
}
#if !PORTABLE && !NETSTANDARD
#if !NETSTANDARD1_3
protected MemoryAllocationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
: base(info, context)
{
@ -154,7 +154,7 @@ namespace MathNet.Numerics
: base(string.Format(Resources.SingularUMatrixWithElement, element), innerException)
{
}
#if !PORTABLE && !NETSTANDARD
#if !NETSTANDARD1_3
protected SingularUMatrixException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
: base(info, context)
{

5
src/Numerics/FindRoots.cs

@ -28,13 +28,10 @@
// </copyright>
using System;
using System.Numerics;
using MathNet.Numerics.Properties;
using MathNet.Numerics.RootFinding;
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
#endif
namespace MathNet.Numerics
{
public static class FindRoots

9
src/Numerics/Generate.cs

@ -28,6 +28,7 @@
// </copyright>
using System;
using System.Numerics;
using System.Collections.Generic;
using System.Linq;
using MathNet.Numerics.Distributions;
@ -37,10 +38,6 @@ using MathNet.Numerics.Threading;
namespace MathNet.Numerics
{
#if !NOSYSNUMERICS
using System.Numerics;
#endif
public static class Generate
{
/// <summary>
@ -797,8 +794,6 @@ namespace MathNet.Numerics
}
}
#if !NOSYSNUMERICS
/// <summary>
/// Generate a Fibonacci sequence, including zero as first value.
/// </summary>
@ -846,8 +841,6 @@ namespace MathNet.Numerics
}
}
#endif
/// <summary>
/// Create random samples, uniform between 0 and 1.
/// Faster than other methods but with reduced guarantees on randomness.

2
src/Numerics/GlobalizationHelper.cs

@ -131,7 +131,7 @@ namespace MathNet.Numerics
}
}
#if PORTABLE || NETSTANDARD
#if NETSTANDARD1_3
/// <summary>
/// Globalized Parsing: Parse a double number
/// </summary>

5
src/Numerics/IntegralTransforms/Fourier.Bluestein.cs

@ -28,14 +28,11 @@
// </copyright>
using System;
using System.Numerics;
using MathNet.Numerics.Threading;
namespace MathNet.Numerics.IntegralTransforms
{
#if !NOSYSNUMERICS
using System.Numerics;
#endif
/// <summary>
/// Complex Fast (FFT) Implementation of the Discrete Fourier Transform (DFT).
/// </summary>

5
src/Numerics/IntegralTransforms/Fourier.Naive.cs

@ -28,14 +28,11 @@
// </copyright>
using System;
using System.Numerics;
using MathNet.Numerics.Threading;
namespace MathNet.Numerics.IntegralTransforms
{
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// Complex Fast (FFT) Implementation of the Discrete Fourier Transform (DFT).
/// </summary>

5
src/Numerics/IntegralTransforms/Fourier.RadixN.cs

@ -28,15 +28,12 @@
// </copyright>
using System;
using System.Numerics;
using MathNet.Numerics.Properties;
using MathNet.Numerics.Threading;
namespace MathNet.Numerics.IntegralTransforms
{
#if !NOSYSNUMERICS
using System.Numerics;
#endif
/// <summary>
/// Complex Fast (FFT) Implementation of the Discrete Fourier Transform (DFT).
/// </summary>

17
src/Numerics/IntegralTransforms/Fourier.cs

@ -28,6 +28,7 @@
// </copyright>
using System;
using System.Numerics;
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.LinearAlgebra.Storage;
using MathNet.Numerics.Properties;
@ -35,10 +36,6 @@ using MathNet.Numerics.Providers.FourierTransform;
namespace MathNet.Numerics.IntegralTransforms
{
#if !NOSYSNUMERICS
using System.Numerics;
#endif
/// <summary>
/// Complex Fast (FFT) Implementation of the Discrete Fourier Transform (DFT).
/// </summary>
@ -61,7 +58,7 @@ namespace MathNet.Numerics.IntegralTransforms
{
Control.FourierTransformProvider.Forward(samples, FourierTransformScaling.SymmetricScaling);
}
/// <summary>
/// Applies the forward Fast Fourier Transform (FFT) to arbitrary-length sample vectors.
/// </summary>
@ -113,7 +110,7 @@ namespace MathNet.Numerics.IntegralTransforms
break;
}
}
/// <summary>
/// Applies the forward Fast Fourier Transform (FFT) to arbitrary-length sample vectors.
/// </summary>
@ -175,7 +172,7 @@ namespace MathNet.Numerics.IntegralTransforms
imaginary[i] = data[i].Imaginary;
}
}
/// <summary>
/// Packed Real-Complex forward Fast Fourier Transform (FFT) to arbitrary-length sample vectors.
/// Since for real-valued time samples the complex spectrum is conjugate-even (symmetry),
@ -303,7 +300,7 @@ namespace MathNet.Numerics.IntegralTransforms
break;
}
}
/// <summary>
/// Applies the forward Fast Fourier Transform (FFT) to two dimensional sample data.
/// </summary>
@ -329,7 +326,7 @@ namespace MathNet.Numerics.IntegralTransforms
{
ForwardMultiDim(samplesRowWise, new[] { rows, columns }, options);
}
/// <summary>
/// Applies the forward Fast Fourier Transform (FFT) to a two dimensional data in form of a matrix.
/// </summary>
@ -494,7 +491,7 @@ namespace MathNet.Numerics.IntegralTransforms
imaginary[i] = data[i].Imaginary;
}
}
/// <summary>
/// Applies the inverse Fast Fourier Transform (iFFT) to arbitrary-length sample vectors.
/// </summary>

18
src/Numerics/LinearAlgebra/Builder.cs

@ -187,11 +187,7 @@ namespace MathNet.Numerics.LinearAlgebra.Single
namespace MathNet.Numerics.LinearAlgebra.Complex
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
internal class MatrixBuilder : MatrixBuilder<Complex>
{
@ -343,14 +339,6 @@ namespace MathNet.Numerics.LinearAlgebra.Complex32
namespace MathNet.Numerics.LinearAlgebra
{
#if NOSYSNUMERICS
using Complex64 = Numerics.Complex;
#else
using Complex64 = System.Numerics.Complex;
#endif
/// <summary>
/// Generic linear algebra type builder, for situations where a matrix or vector
/// must be created in a generic way. Usage of generic builders should not be
@ -1587,11 +1575,11 @@ namespace MathNet.Numerics.LinearAlgebra
static Tuple<MatrixBuilder<T>, VectorBuilder<T>> Create()
{
if (typeof (T) == typeof (Complex64))
if (typeof (T) == typeof (System.Numerics.Complex))
{
return new Tuple<MatrixBuilder<T>, VectorBuilder<T>>(
(MatrixBuilder<T>)(object)new Complex.MatrixBuilder(),
(VectorBuilder<T>)(object)new Complex.VectorBuilder());
(MatrixBuilder<T>)(object)new LinearAlgebra.Complex.MatrixBuilder(),
(VectorBuilder<T>)(object)new LinearAlgebra.Complex.VectorBuilder());
}
if (typeof (T) == typeof (Numerics.Complex32))

5
src/Numerics/LinearAlgebra/Complex/DenseMatrix.cs

@ -41,12 +41,7 @@ using MathNet.Numerics.Threading;
namespace MathNet.Numerics.LinearAlgebra.Complex
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// A Matrix class with dense storage. The underlying storage is a one dimensional array in column-major order (column by column).

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

@ -37,12 +37,7 @@ using System.Linq;
namespace MathNet.Numerics.LinearAlgebra.Complex
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// A vector using dense storage.

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

@ -38,12 +38,7 @@ using MathNet.Numerics.Threading;
namespace MathNet.Numerics.LinearAlgebra.Complex
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// A matrix type for diagonal matrices.

5
src/Numerics/LinearAlgebra/Complex/Factorization/Cholesky.cs

@ -31,12 +31,7 @@ using MathNet.Numerics.LinearAlgebra.Factorization;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// <para>A class which encapsulates the functionality of a Cholesky factorization.</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/DenseCholesky.cs

@ -32,12 +32,7 @@ using System;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of a Cholesky factorization for dense matrices.</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/DenseEvd.cs

@ -32,12 +32,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// Eigenvalues and eigenvectors of a complex matrix.

7
src/Numerics/LinearAlgebra/Complex/Factorization/DenseGramSchmidt.cs

@ -33,12 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of the QR decomposition Modified Gram-Schmidt Orthogonalization.</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/DenseLU.cs

@ -32,12 +32,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of an LU factorization.</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/DenseQR.cs

@ -33,12 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of the QR decomposition.</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/DenseSvd.cs

@ -32,12 +32,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of the singular value decomposition (SVD) for <see cref="DenseMatrix"/>.</para>

5
src/Numerics/LinearAlgebra/Complex/Factorization/Evd.cs

@ -31,12 +31,7 @@ using MathNet.Numerics.LinearAlgebra.Factorization;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// Eigenvalues and eigenvectors of a real matrix.

5
src/Numerics/LinearAlgebra/Complex/Factorization/GramSchmidt.cs

@ -33,12 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// <para>A class which encapsulates the functionality of the QR decomposition Modified Gram-Schmidt Orthogonalization.</para>

5
src/Numerics/LinearAlgebra/Complex/Factorization/LU.cs

@ -31,12 +31,7 @@ using MathNet.Numerics.LinearAlgebra.Factorization;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// <para>A class which encapsulates the functionality of an LU factorization.</para>

5
src/Numerics/LinearAlgebra/Complex/Factorization/QR.cs

@ -33,12 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// <para>A class which encapsulates the functionality of the QR decomposition.</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/Svd.cs

@ -34,12 +34,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of the singular value decomposition (SVD).</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/UserCholesky.cs

@ -33,12 +33,7 @@ using System;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of a Cholesky factorization for user matrices.</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/UserEvd.cs

@ -32,12 +32,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// Eigenvalues and eigenvectors of a complex matrix.

7
src/Numerics/LinearAlgebra/Complex/Factorization/UserGramSchmidt.cs

@ -32,12 +32,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of the QR decomposition Modified Gram-Schmidt Orthogonalization.</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/UserLU.cs

@ -32,12 +32,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of an LU factorization.</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/UserQR.cs

@ -35,12 +35,7 @@ using MathNet.Numerics.Threading;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of the QR decomposition.</para>

7
src/Numerics/LinearAlgebra/Complex/Factorization/UserSvd.cs

@ -32,12 +32,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// <para>A class which encapsulates the functionality of the singular value decomposition (SVD) for <see cref="Matrix{T}"/>.</para>

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

@ -35,12 +35,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// <c>Complex</c> version of the <see cref="Matrix{T}"/> class.

5
src/Numerics/LinearAlgebra/Complex/Solvers/BiCgStab.cs

@ -33,12 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// A Bi-Conjugate Gradient stabilized iterative matrix solver.

7
src/Numerics/LinearAlgebra/Complex/Solvers/CompositeSolver.cs

@ -35,12 +35,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// A composite matrix solver. The actual solver is made by a sequence of
@ -51,7 +46,7 @@ namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
/// Solver based on:<br />
/// Faster PDE-based simulations using robust composite linear solvers<br />
/// S. Bhowmicka, P. Raghavan a,*, L. McInnes b, B. Norris<br />
/// Future Generation Computer Systems, Vol 20, 2004, pp 373–387<br />
/// Future Generation Computer Systems, Vol 20, 2004, pp 373�387<br />
/// </para>
/// <para>
/// Note that if an iterator is passed to this solver it will be used for all the sub-solvers.

5
src/Numerics/LinearAlgebra/Complex/Solvers/DiagonalPreconditioner.cs

@ -33,12 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// A diagonal preconditioner. The preconditioner uses the inverse

5
src/Numerics/LinearAlgebra/Complex/Solvers/GpBiCg.cs

@ -33,12 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// A Generalized Product Bi-Conjugate Gradient iterative matrix solver.

5
src/Numerics/LinearAlgebra/Complex/Solvers/ILU0Preconditioner.cs

@ -33,12 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// An incomplete, level 0, LU factorization preconditioner.

5
src/Numerics/LinearAlgebra/Complex/Solvers/ILUTPPreconditioner.cs

@ -34,12 +34,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// This class performs an Incomplete LU factorization with drop tolerance

5
src/Numerics/LinearAlgebra/Complex/Solvers/MILU0Preconditioner.cs

@ -34,12 +34,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// A simple milu(0) preconditioner.

5
src/Numerics/LinearAlgebra/Complex/Solvers/MlkBiCgStab.cs

@ -37,12 +37,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// A Multiple-Lanczos Bi-Conjugate Gradient stabilized iterative matrix solver.

6
src/Numerics/LinearAlgebra/Complex/Solvers/TFQMR.cs

@ -33,14 +33,8 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex.Solvers
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// A Transpose Free Quasi-Minimal Residual (TFQMR) iterative matrix solver.
/// </summary>

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

@ -35,12 +35,7 @@ using MathNet.Numerics.LinearAlgebra.Storage;
namespace MathNet.Numerics.LinearAlgebra.Complex
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// A Matrix with sparse storage, intended for very large matrices where most of the cells are zero.

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

@ -35,12 +35,7 @@ using System.Diagnostics;
namespace MathNet.Numerics.LinearAlgebra.Complex
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// A vector with sparse storage, intended for very large vectors where most of the cells are zero.

5
src/Numerics/LinearAlgebra/Complex/Vector.cs

@ -33,12 +33,7 @@ using System;
namespace MathNet.Numerics.LinearAlgebra.Complex
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// <c>Complex</c> version of the <see cref="Vector{T}"/> class.

5
src/Numerics/LinearAlgebra/Complex32/Factorization/DenseEvd.cs

@ -33,12 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
{
using Numerics;
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// Eigenvalues and eigenvectors of a complex matrix.

5
src/Numerics/LinearAlgebra/Complex32/Factorization/Evd.cs

@ -33,12 +33,7 @@ using MathNet.Numerics.LinearAlgebra.Factorization;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
{
using Numerics;
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// Eigenvalues and eigenvectors of a real matrix.

5
src/Numerics/LinearAlgebra/Complex32/Factorization/UserEvd.cs

@ -33,10 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Complex32.Factorization
{
using Numerics;
#if !NOSYSNUMERICS
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// Eigenvalues and eigenvectors of a complex matrix.

7
src/Numerics/LinearAlgebra/Double/Factorization/DenseEvd.cs

@ -32,12 +32,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// Eigenvalues and eigenvectors of a real matrix.

5
src/Numerics/LinearAlgebra/Double/Factorization/Evd.cs

@ -31,12 +31,7 @@ using MathNet.Numerics.LinearAlgebra.Factorization;
namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// Eigenvalues and eigenvectors of a real matrix.

7
src/Numerics/LinearAlgebra/Double/Factorization/UserEvd.cs

@ -32,12 +32,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Double.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// Eigenvalues and eigenvectors of a real matrix.

5
src/Numerics/LinearAlgebra/Factorization/Evd.cs

@ -32,10 +32,7 @@ using System;
namespace MathNet.Numerics.LinearAlgebra.Factorization
{
using Numerics;
#if !NOSYSNUMERICS
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// Eigenvalues and eigenvectors of a real matrix.

4
src/Numerics/LinearAlgebra/Matrix.BCL.cs

@ -77,14 +77,14 @@ namespace MathNet.Numerics.LinearAlgebra
return Storage.GetHashCode();
}
#if !PORTABLE && !NETSTANDARD
#if !NETSTANDARD1_3
/// <summary>
/// Creates a new object that is a copy of the current instance.
/// </summary>
/// <returns>
/// A new object that is a copy of this instance.
/// </returns>
/// </returns>
object ICloneable.Clone()
{
return Clone();

2
src/Numerics/LinearAlgebra/Matrix.cs

@ -44,7 +44,7 @@ namespace MathNet.Numerics.LinearAlgebra
[Serializable]
public abstract partial class Matrix<T> :
IFormattable, IEquatable<Matrix<T>>
#if !PORTABLE && !NETSTANDARD
#if !NETSTANDARD1_3
, ICloneable
#endif
where T : struct, IEquatable<T>, IFormattable

4
src/Numerics/LinearAlgebra/MatrixExtensions.cs

@ -29,11 +29,7 @@
namespace MathNet.Numerics.LinearAlgebra
{
#if NOSYSNUMERICS
using Complex64 = Numerics.Complex;
#else
using Complex64 = System.Numerics.Complex;
#endif
public static class MatrixExtensions
{

7
src/Numerics/LinearAlgebra/Single/Factorization/DenseEvd.cs

@ -32,12 +32,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Single.Factorization
{
#if NOSYSNUMERICS
using Numerics;
#else
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// Eigenvalues and eigenvectors of a real matrix.

7
src/Numerics/LinearAlgebra/Single/Factorization/Evd.cs

@ -27,17 +27,12 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
using System;
using MathNet.Numerics.LinearAlgebra.Factorization;
namespace MathNet.Numerics.LinearAlgebra.Single.Factorization
{
using System;
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
#else
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// Eigenvalues and eigenvectors of a real matrix.

5
src/Numerics/LinearAlgebra/Single/Factorization/UserEvd.cs

@ -33,10 +33,7 @@ using MathNet.Numerics.Properties;
namespace MathNet.Numerics.LinearAlgebra.Single.Factorization
{
using Numerics;
#if !NOSYSNUMERICS
using System.Numerics;
#endif
using Complex = System.Numerics.Complex;
/// <summary>
/// Eigenvalues and eigenvectors of a real matrix.

8
src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs

@ -44,7 +44,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
/// <param name="typesToExclude">The <see cref="IIterativeSolver{T}"/> types that should not be loaded.</param>
public static IEnumerable<IIterativeSolverSetup<T>> LoadFromAssembly(Assembly assembly, bool ignoreFailed = true, params Type[] typesToExclude)
{
#if NET45REFLECTION || NETSTANDARD
#if NETSTANDARD1_3
TypeInfo setupInterfaceType = typeof(IIterativeSolverSetup<T>).GetTypeInfo();
IEnumerable<Type> candidates = assembly.DefinedTypes
.Where(typeInfo => !typeInfo.IsAbstract && !typeInfo.IsEnum && !typeInfo.IsInterface && typeInfo.IsVisible)
@ -73,7 +73,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
}
}
#if NET45REFLECTION || NETSTANDARD
#if NETSTANDARD1_3
var excludedTypes = new List<TypeInfo>(typesToExclude.Select(type => type.GetTypeInfo()));
return setups
.Where(s => !excludedTypes.Any(t => t.IsAssignableFrom(s.SolverType.GetTypeInfo()) || t.IsAssignableFrom(s.PreconditionerType.GetTypeInfo())))
@ -94,7 +94,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
/// <param name="typesToExclude">The <see cref="IIterativeSolver{T}"/> types that should not be loaded.</param>
public static IEnumerable<IIterativeSolverSetup<T>> LoadFromAssembly(Type typeInAssembly, bool ignoreFailed = true, params Type[] typesToExclude)
{
#if NET45REFLECTION || NETSTANDARD
#if NETSTANDARD1_3
return LoadFromAssembly(typeInAssembly.GetTypeInfo().Assembly, ignoreFailed, typesToExclude);
#else
return LoadFromAssembly(typeInAssembly.Assembly, ignoreFailed, typesToExclude);
@ -109,7 +109,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
/// <param name="typesToExclude">The <see cref="IIterativeSolver{T}"/> types that should not be loaded.</param>
public static IEnumerable<IIterativeSolverSetup<T>> LoadFromAssembly(AssemblyName assemblyName, bool ignoreFailed = true, params Type[] typesToExclude)
{
#if NET45REFLECTION || NETSTANDARD
#if NETSTANDARD1_3
return LoadFromAssembly(Assembly.Load(assemblyName), ignoreFailed, typesToExclude);
#else
return LoadFromAssembly(Assembly.Load(assemblyName.FullName), ignoreFailed, typesToExclude);

2
src/Numerics/LinearAlgebra/Storage/DenseColumnMajorMatrixStorage.cs

@ -115,7 +115,7 @@ namespace MathNet.Numerics.LinearAlgebra.Storage
/// </summary>
void RowColumnAtIndex(int index, out int row, out int column)
{
#if PORTABLE || NETSTANDARD
#if NETSTANDARD1_3
row = index % RowCount;
column = index / RowCount;
#else

2
src/Numerics/LinearAlgebra/Storage/MatrixStorage.cs

@ -190,7 +190,7 @@ namespace MathNet.Numerics.LinearAlgebra.Storage
{
for (var i = 0; i < hashNum; i++)
{
#if PORTABLE || NETSTANDARD
#if NETSTANDARD1_3
int col = i%ColumnCount;
int row = i/ColumnCount;
#else

2
src/Numerics/LinearAlgebra/Vector.BCL.cs

@ -77,7 +77,7 @@ namespace MathNet.Numerics.LinearAlgebra
return Storage.GetHashCode();
}
#if !PORTABLE && !NETSTANDARD
#if !NETSTANDARD1_3
/// <summary>
/// Creates a new object that is a copy of the current instance.

2
src/Numerics/LinearAlgebra/Vector.cs

@ -43,7 +43,7 @@ namespace MathNet.Numerics.LinearAlgebra
[Serializable]
public abstract partial class Vector<T> :
IFormattable, IEquatable<Vector<T>>, IList, IList<T>
#if !PORTABLE && !NETSTANDARD
#if !NETSTANDARD1_3
, ICloneable
#endif
where T : struct, IEquatable<T>, IFormattable

4
src/Numerics/LinearAlgebra/VectorExtensions.cs

@ -29,11 +29,7 @@
namespace MathNet.Numerics.LinearAlgebra
{
#if NOSYSNUMERICS
using Complex64 = Numerics.Complex;
#else
using Complex64 = System.Numerics.Complex;
#endif
public static class VectorExtensions
{

104
src/Numerics/Numerics.csproj

@ -1,59 +1,53 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFrameworks>net40;netstandard1.3;netstandard2.0</TargetFrameworks>
<NetStandardImplicitPackageVersion>2.0.1</NetStandardImplicitPackageVersion>
<AssemblyName>MathNet.Numerics</AssemblyName>
<RootNamespace>MathNet.Numerics</RootNamespace>
<IsPackable>true</IsPackable>
<PackageId>MathNet.Numerics</PackageId>
<VersionPrefix>4.0.0</VersionPrefix>
<VersionSuffix>beta05</VersionSuffix>
<PackageVersion>4.0.0-beta05</PackageVersion>
<Version>4.0.0-beta05</Version>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<FileVersion>4.0.0.0</FileVersion>
<Title>Math.NET Numerics</Title>
<Authors>Christoph Ruegg, Marcus Cuda, Jurgen Van Gael</Authors>
<Company>Math.NET Project</Company>
<Product>Math.NET Numerics</Product>
<Description>Math.NET Numerics is the numerical foundation of the Math.NET project, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use. Supports .Net Framework 4.0 or higher and .Net Standard 1.3 or higher, on Windows, Linux and Mac.</Description>
<Copyright>Copyright Math.NET Project</Copyright>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageLicenseUrl>https://numerics.mathdotnet.com/License.html</PackageLicenseUrl>
<PackageProjectUrl>https://numerics.mathdotnet.com/</PackageProjectUrl>
<PackageIconUrl>https://www.mathdotnet.com/images/MathNet128.png</PackageIconUrl>
<PackageReleaseNotes>BUG: Distributions: BetaScaled no longer ignores optional random source parameter
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFrameworks>net40;netstandard1.3;netstandard2.0</TargetFrameworks>
<NetStandardImplicitPackageVersion>2.0.1</NetStandardImplicitPackageVersion>
<AssemblyName>MathNet.Numerics</AssemblyName>
<RootNamespace>MathNet.Numerics</RootNamespace>
<IsPackable>true</IsPackable>
<PackageId>MathNet.Numerics</PackageId>
<VersionPrefix>4.0.0</VersionPrefix>
<VersionSuffix>beta05</VersionSuffix>
<PackageVersion>4.0.0-beta05</PackageVersion>
<Version>4.0.0-beta05</Version>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<FileVersion>4.0.0.0</FileVersion>
<Title>Math.NET Numerics</Title>
<Authors>Christoph Ruegg, Marcus Cuda, Jurgen Van Gael</Authors>
<Company>Math.NET Project</Company>
<Product>Math.NET Numerics</Product>
<Description>Math.NET Numerics is the numerical foundation of the Math.NET project, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use. Supports .Net Framework 4.0 or higher and .Net Standard 1.3 or higher, on Windows, Linux and Mac.</Description>
<Copyright>Copyright Math.NET Project</Copyright>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageLicenseUrl>https://numerics.mathdotnet.com/License.html</PackageLicenseUrl>
<PackageProjectUrl>https://numerics.mathdotnet.com/</PackageProjectUrl>
<PackageIconUrl>https://www.mathdotnet.com/images/MathNet128.png</PackageIconUrl>
<PackageReleaseNotes>BUG: Distributions: BetaScaled no longer ignores optional random source parameter
BUG: Trigonometry: Complex trigonometric functions behave on large imput ~diluculo
All: code quality fixes ~Jonas Nyrup</PackageReleaseNotes>
<PackageTags>math numeric statistics probability integration interpolation regression solve fit linear algebra matrix fft</PackageTags>
<IsTool>false</IsTool>
<RepositoryUrl>https://github.com/mathnet/mathnet-numerics</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<NeutralLanguage>en</NeutralLanguage>
<NoPackageAnalysis>false</NoPackageAnalysis>
<IncludeBuildOutput>true</IncludeBuildOutput>
<IncludeContentInPack>false</IncludeContentInPack>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<EnableDefaultCompileItems>true</EnableDefaultCompileItems>
<NoWarn>1701;1702;1705;1591;1573</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='netstandard1.3'">
<DefineConstants>NETSTANDARD</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='netstandard2.0'">
<DefineConstants>NETSTANDARD;NATIVE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='net40'">
<DefineConstants>NATIVE</DefineConstants>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net40'">
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Numerics" />
<Reference Include="System.Runtime.Serialization" />
</ItemGroup>
<Import Project="..\..\.paket\Paket.Restore.targets" />
<PackageTags>math numeric statistics probability integration interpolation regression solve fit linear algebra matrix fft</PackageTags>
<IsTool>false</IsTool>
<RepositoryUrl>https://github.com/mathnet/mathnet-numerics</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<NeutralLanguage>en</NeutralLanguage>
<NoPackageAnalysis>false</NoPackageAnalysis>
<IncludeBuildOutput>true</IncludeBuildOutput>
<IncludeContentInPack>false</IncludeContentInPack>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<EnableDefaultCompileItems>true</EnableDefaultCompileItems>
<NoWarn>1701;1702;1705;1591;1573</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'!='netstandard1.3'">
<DefineConstants>NATIVE</DefineConstants>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net40'">
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Numerics" />
<Reference Include="System.Runtime.Serialization" />
</ItemGroup>
<Import Project="..\..\.paket\Paket.Restore.targets" />
</Project>

14
src/Numerics/Permutation.cs

@ -148,19 +148,7 @@ namespace MathNet.Numerics
{
if (idx[i] != i)
{
#if !PORTABLE
int q = Array.FindIndex(idx, i + 1, x => x == i);
#else
int q = -1;
for(int j = i+1; j < Dimension; j++)
{
if(idx[j] == i)
{
q = j;
break;
}
}
#endif
var t = idx[i];
idx[i] = q;
idx[q] = t;
@ -201,4 +189,4 @@ namespace MathNet.Numerics
return true;
}
}
}
}

52
src/Numerics/Precision.Equality.cs

@ -28,16 +28,12 @@
// </copyright>
using System;
using System.Numerics;
using System.Collections.Generic;
using MathNet.Numerics.LinearAlgebra;
namespace MathNet.Numerics
{
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
#endif
// TODO PERF: Cache/Precompute 10^x terms
public static partial class Precision
@ -324,13 +320,13 @@ namespace MathNet.Numerics
}
/// <summary>
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// number of decimal places as an absolute measure.
/// </summary>
/// <remarks>
/// <para>
/// The values are equal if the difference between the two numbers is smaller than 0.5e-decimalPlaces. We divide by
/// two so that we have half the range on each side of the numbers, e.g. if <paramref name="decimalPlaces"/> == 2, then 0.01 will equal between
/// The values are equal if the difference between the two numbers is smaller than 0.5e-decimalPlaces. We divide by
/// two so that we have half the range on each side of the numbers, e.g. if <paramref name="decimalPlaces"/> == 2, then 0.01 will equal between
/// 0.005 and 0.015, but not 0.02 and not 0.00
/// </para>
/// </remarks>
@ -357,19 +353,19 @@ namespace MathNet.Numerics
// The values are equal if the difference between the two numbers is smaller than
// 10^(-numberOfDecimalPlaces). We divide by two so that we have half the range
// on each side of the numbers, e.g. if decimalPlaces == 2,
// on each side of the numbers, e.g. if decimalPlaces == 2,
// then 0.01 will equal between 0.005 and 0.015, but not 0.02 and not 0.00
return Math.Abs(diff) < Math.Pow(10, -decimalPlaces) / 2d;
}
/// <summary>
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// number of decimal places as an absolute measure.
/// </summary>
/// <remarks>
/// <para>
/// The values are equal if the difference between the two numbers is smaller than 0.5e-decimalPlaces. We divide by
/// two so that we have half the range on each side of the numbers, e.g. if <paramref name="decimalPlaces"/> == 2, then 0.01 will equal between
/// The values are equal if the difference between the two numbers is smaller than 0.5e-decimalPlaces. We divide by
/// two so that we have half the range on each side of the numbers, e.g. if <paramref name="decimalPlaces"/> == 2, then 0.01 will equal between
/// 0.005 and 0.015, but not 0.02 and not 0.00
/// </para>
/// </remarks>
@ -388,8 +384,8 @@ namespace MathNet.Numerics
/// </summary>
/// <remarks>
/// <para>
/// The values are equal if the difference between the two numbers is smaller than 10^(-numberOfDecimalPlaces). We divide by
/// two so that we have half the range on each side of the numbers, e.g. if <paramref name="decimalPlaces"/> == 2, then 0.01 will equal between
/// The values are equal if the difference between the two numbers is smaller than 10^(-numberOfDecimalPlaces). We divide by
/// two so that we have half the range on each side of the numbers, e.g. if <paramref name="decimalPlaces"/> == 2, then 0.01 will equal between
/// 0.005 and 0.015, but not 0.02 and not 0.00
/// </para>
/// </remarks>
@ -433,7 +429,7 @@ namespace MathNet.Numerics
{
// The values are equal if the difference between the two numbers is smaller than
// 10^(-numberOfDecimalPlaces). We divide by two so that we have half the range
// on each side of the numbers, e.g. if decimalPlaces == 2,
// on each side of the numbers, e.g. if decimalPlaces == 2,
// then 0.01 will equal between 0.005 and 0.015, but not 0.02 and not 0.00
return Math.Abs(diff) < Math.Pow(10, -decimalPlaces) / 2d;
}
@ -449,7 +445,7 @@ namespace MathNet.Numerics
// The values are equal if the difference between the two numbers is smaller than
// 10^(-numberOfDecimalPlaces). We divide by two so that we have half the range
// on each side of the numbers, e.g. if decimalPlaces == 2,
// on each side of the numbers, e.g. if decimalPlaces == 2,
// then 0.01 will equal between 0.00995 and 0.01005, but not 0.0015 and not 0.0095
return Math.Abs(diff) < Math.Pow(10, magnitudeOfMax - decimalPlaces) / 2d;
}
@ -460,8 +456,8 @@ namespace MathNet.Numerics
/// </summary>
/// <remarks>
/// <para>
/// The values are equal if the difference between the two numbers is smaller than 10^(-numberOfDecimalPlaces). We divide by
/// two so that we have half the range on each side of the numbers, e.g. if <paramref name="decimalPlaces"/> == 2, then 0.01 will equal between
/// The values are equal if the difference between the two numbers is smaller than 10^(-numberOfDecimalPlaces). We divide by
/// two so that we have half the range on each side of the numbers, e.g. if <paramref name="decimalPlaces"/> == 2, then 0.01 will equal between
/// 0.005 and 0.015, but not 0.02 and not 0.00
/// </para>
/// </remarks>
@ -475,7 +471,7 @@ namespace MathNet.Numerics
}
/// <summary>
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// number of decimal places as an absolute measure.
/// </summary>
/// <param name="a">The first value.</param>
@ -487,7 +483,7 @@ namespace MathNet.Numerics
}
/// <summary>
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// number of decimal places as an absolute measure.
/// </summary>
/// <param name="a">The first value.</param>
@ -499,7 +495,7 @@ namespace MathNet.Numerics
}
/// <summary>
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// number of decimal places as an absolute measure.
/// </summary>
/// <param name="a">The first value.</param>
@ -511,7 +507,7 @@ namespace MathNet.Numerics
}
/// <summary>
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// Compares two doubles and determines if they are equal to within the specified number of decimal places or not, using the
/// number of decimal places as an absolute measure.
/// </summary>
/// <param name="a">The first value.</param>
@ -575,14 +571,14 @@ namespace MathNet.Numerics
/// </summary>
/// <remarks>
/// <para>
/// Determines the 'number' of floating point numbers between two values (i.e. the number of discrete steps
/// between the two numbers) and then checks if that is within the specified tolerance. So if a tolerance
/// of 1 is passed then the result will be true only if the two numbers have the same binary representation
/// Determines the 'number' of floating point numbers between two values (i.e. the number of discrete steps
/// between the two numbers) and then checks if that is within the specified tolerance. So if a tolerance
/// of 1 is passed then the result will be true only if the two numbers have the same binary representation
/// OR if they are two adjacent numbers that only differ by one step.
/// </para>
/// <para>
/// The comparison method used is explained in http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm . The article
/// at http://www.extremeoptimization.com/resources/Articles/FPDotNetConceptsAndFormats.aspx explains how to transform the C code to
/// at http://www.extremeoptimization.com/resources/Articles/FPDotNetConceptsAndFormats.aspx explains how to transform the C code to
/// .NET enabled code without using pointers and unsafe code.
/// </para>
/// </remarks>
@ -620,7 +616,7 @@ namespace MathNet.Numerics
// Get the second double and convert it to an integer value (by using the binary representation)
long secondUlong = AsDirectionalInt64(b);
// Now compare the values.
// Now compare the values.
// Note that this comparison can overflow so we'll approach this differently
// Do note that we could overflow this way too. We should probably check that we don't.
return (a > b) ? (secondUlong + maxNumbersBetween >= firstUlong) : (firstUlong + maxNumbersBetween >= secondUlong);
@ -663,7 +659,7 @@ namespace MathNet.Numerics
// Get the second float and convert it to an integer value (by using the binary representation)
int secondUlong = AsDirectionalInt32(b);
// Now compare the values.
// Now compare the values.
// Note that this comparison can overflow so we'll approach this differently
// Do note that we could overflow this way too. We should probably check that we don't.
return (a > b) ? (secondUlong + maxNumbersBetween >= firstUlong) : (firstUlong + maxNumbersBetween >= secondUlong);

4
src/Numerics/Precision.cs

@ -762,11 +762,7 @@ namespace MathNet.Numerics
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
static double Truncate(double value)
{
#if PORTABLE
return value >= 0.0 ? Math.Floor(value) : Math.Ceiling(value);
#else
return Math.Truncate(value);
#endif
}
static int SingleToInt32Bits(float value)

30
src/Numerics/Properties/AssemblyInfo.cs

@ -27,33 +27,11 @@
// </copyright>
using System;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
#if !PORTABLE
using System.Runtime.InteropServices;
#endif
[assembly: CLSCompliant(true)]
#if PORTABLE || NETSTANDARD
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests7")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests47")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests78")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests259")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests328")]
#elif NET35
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTestsNet35")]
#else
[assembly: ComVisible(false)]
[assembly: Guid("7b66646f-f0ee-425d-9065-910d1937a2df")]
@ -61,10 +39,8 @@ using System.Runtime.InteropServices;
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100ed2314a577643d859571b8b9307c6ff2670525c4598fbb307e57ea65ebf5d4417284cb3da9181636480b623f4db8cc3c1947244ba069df0df86e2431621f51a488f9929519a1c5d0ae595f6e2d0e4094685f0c1229ff658360acbb9f63f1a0258e984dda00dc7ad4fd16dbb550ec1ef8a11df138402b7c1998ee224e652c839b")]
#else
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTestsMKL")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTestsCUDA")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTestsOpenBLAS")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests.MKL")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests.CUDA")]
[assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests.OpenBLAS")]
[assembly: InternalsVisibleTo("Benchmark")]
#endif
#endif

236
src/Numerics/Properties/Resources.Designer.cs

@ -12,8 +12,8 @@ using System.Reflection;
namespace MathNet.Numerics.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
@ -25,22 +25,22 @@ namespace MathNet.Numerics.Properties {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager {
get {
#if NET45REFLECTION || NETSTANDARD
#if NETSTANDARD1_3
if (object.ReferenceEquals(resourceMan, null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MathNet.Numerics.Properties.Resources", typeof(Resources).GetTypeInfo().Assembly);
@ -56,7 +56,7 @@ namespace MathNet.Numerics.Properties {
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
@ -70,7 +70,7 @@ namespace MathNet.Numerics.Properties {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to The accuracy couldn&apos;t be reached with the specified number of iterations..
/// </summary>
@ -79,7 +79,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("AccuracyNotReached", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The array arguments must have the same length..
/// </summary>
@ -88,7 +88,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentArraysSameLength", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The given array has the wrong length. Should be {0}..
/// </summary>
@ -97,7 +97,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentArrayWrongLength", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The argument must be between 0 and 1..
/// </summary>
@ -106,7 +106,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentBetween0And1", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value cannot be in the range -1 &lt; x &lt; 1..
/// </summary>
@ -115,7 +115,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentCannotBeBetweenOneAndNegativeOne", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value must be even..
/// </summary>
@ -124,7 +124,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentEven", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The histogram does not contain the value..
/// </summary>
@ -133,7 +133,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentHistogramContainsNot", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value is expected to be between {0} and {1} (including {0} and {1})..
/// </summary>
@ -142,7 +142,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentInIntervalXYInclusive", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to At least one item of {0} is a null reference (Nothing in Visual Basic)..
/// </summary>
@ -151,7 +151,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentItemNull", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value must be greater than or equal to one..
/// </summary>
@ -160,7 +160,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentLessThanOne", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix dimensions must agree..
/// </summary>
@ -169,7 +169,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixDimensions", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix dimensions must agree: {0}..
/// </summary>
@ -178,7 +178,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixDimensions1", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix dimensions must agree: op1 is {0}, op2 is {1}..
/// </summary>
@ -187,7 +187,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixDimensions2", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix dimensions must agree: op1 is {0}, op2 is {1}, op3 is {2}..
/// </summary>
@ -196,7 +196,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixDimensions3", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The requested matrix does not exist..
/// </summary>
@ -205,7 +205,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixDoesNotExist", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The matrix indices must not be out of range of the given matrix..
/// </summary>
@ -214,7 +214,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixIndexOutOfRange", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix must not be rank deficient..
/// </summary>
@ -223,7 +223,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixNotRankDeficient", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix must not be singular..
/// </summary>
@ -232,7 +232,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixNotSingular", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix must be positive definite..
/// </summary>
@ -241,7 +241,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixPositiveDefinite", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix column dimensions must agree..
/// </summary>
@ -250,7 +250,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixSameColumnDimension", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix row dimensions must agree..
/// </summary>
@ -259,7 +259,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixSameRowDimension", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix must have exactly one column..
/// </summary>
@ -268,7 +268,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixSingleColumn", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix must have exactly one column and row, thus have only one cell..
/// </summary>
@ -277,7 +277,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixSingleColumnRow", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix must have exactly one row..
/// </summary>
@ -286,7 +286,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixSingleRow", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix must be square..
/// </summary>
@ -295,7 +295,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixSquare", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix must be symmetric..
/// </summary>
@ -304,7 +304,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixSymmetric", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix must be symmetric positive definite..
/// </summary>
@ -313,7 +313,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMatrixSymmetricPositiveDefinite", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to In the specified range, the exclusive maximum must be greater than the inclusive minimum..
/// </summary>
@ -322,7 +322,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMaxExclusiveMustBeLargerThanMinInclusive", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to In the specified range, the minimum is greater than maximum..
/// </summary>
@ -331,7 +331,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMinValueGreaterThanMaxValue", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value must be positive..
/// </summary>
@ -340,7 +340,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentMustBePositive", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value must neither be infinite nor NaN..
/// </summary>
@ -349,7 +349,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentNotInfinityNaN", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value must not be negative (zero is ok)..
/// </summary>
@ -358,7 +358,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentNotNegative", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0} is a null reference (Nothing in Visual Basic)..
/// </summary>
@ -367,7 +367,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentNull", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value must be odd..
/// </summary>
@ -376,7 +376,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentOdd", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0} must be greater than {1}..
/// </summary>
@ -385,7 +385,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentOutOfRangeGreater", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0} must be greater than or equal to {1}..
/// </summary>
@ -394,7 +394,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentOutOfRangeGreaterEqual", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0} must be smaller than {1}..
/// </summary>
@ -403,7 +403,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentOutOfRangeSmaller", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0} must be smaller than or equal to {1}..
/// </summary>
@ -412,7 +412,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentOutOfRangeSmallerEqual", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The chosen parameter set is invalid (probably some value is out of range)..
/// </summary>
@ -421,7 +421,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentParameterSetInvalid", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The given expression does not represent a complex number..
/// </summary>
@ -430,7 +430,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentParseComplexNumber", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value must be positive (and not zero)..
/// </summary>
@ -439,7 +439,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentPositive", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Size must be a Power of Two..
/// </summary>
@ -448,7 +448,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentPowerOfTwo", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Size must be a Power of Two in every dimension..
/// </summary>
@ -457,7 +457,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentPowerOfTwoEveryDimension", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The range between {0} and {1} must be less than or equal to {2}..
/// </summary>
@ -466,7 +466,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentRangeLessEqual", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Arguments must be different objects..
/// </summary>
@ -475,7 +475,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentReferenceDifferent", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Array must have exactly one dimension (and not be null)..
/// </summary>
@ -484,7 +484,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentSingleDimensionArray", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value is too large..
/// </summary>
@ -493,7 +493,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentTooLarge", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Value is too large for the current iteration limit..
/// </summary>
@ -502,7 +502,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentTooLargeForIterationLimit", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Type mismatch..
/// </summary>
@ -511,7 +511,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentTypeMismatch", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The upper bound must be strictly larger than the lower bound..
/// </summary>
@ -520,7 +520,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentUpperBoundMustBeLargerThanLowerBound", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The upper bound must be at least as large as the lower bound..
/// </summary>
@ -529,7 +529,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentUpperBoundMustBeLargerThanOrEqualToLowerBound", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Array length must be a multiple of {0}..
/// </summary>
@ -538,7 +538,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentVectorLengthsMultipleOf", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to All vectors must have the same dimensionality..
/// </summary>
@ -547,7 +547,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentVectorsSameLength", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The vector must have 3 dimensions..
/// </summary>
@ -556,7 +556,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArgumentVectorThreeDimensional", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The given array is too small. It must be at least {0} long..
/// </summary>
@ -565,7 +565,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ArrayTooSmall", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Big endian files are not supported..
/// </summary>
@ -574,7 +574,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("BigEndianNotSupported", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The supplied collection is empty..
/// </summary>
@ -583,7 +583,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("CollectionEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Complex matrices are not supported..
/// </summary>
@ -592,7 +592,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ComplexMatricesNotSupported", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to An algorithm failed to converge..
/// </summary>
@ -601,7 +601,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ConvergenceFailed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The sample size must be larger than the given degrees of freedom..
/// </summary>
@ -610,7 +610,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("DegreesOfFreedomMustBeLessThanSampleSize", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to This feature is not implemented yet (but is planned)..
/// </summary>
@ -619,7 +619,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("FeaturePlannedButNotImplementedYet", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The given file doesn&apos;t exist..
/// </summary>
@ -628,7 +628,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("FileDoesNotExist", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Sample points should be sorted in strictly ascending order.
/// </summary>
@ -637,7 +637,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("Interpolation_Initialize_SamplePointsNotStrictlyAscendingOrder", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to All sample points should be unique..
/// </summary>
@ -646,7 +646,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("Interpolation_Initialize_SamplePointsNotUnique", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Invalid parameterization for the distribution..
/// </summary>
@ -655,7 +655,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("InvalidDistributionParameters", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Invalid Left Boundary Condition..
/// </summary>
@ -664,7 +664,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("InvalidLeftBoundaryCondition", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The operation could not be performed because the accumulator is empty..
/// </summary>
@ -673,7 +673,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("InvalidOperationAccumulatorEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The operation could not be performed because the histogram is empty..
/// </summary>
@ -682,7 +682,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("InvalidOperationHistogramEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Not enough points in the distribution..
/// </summary>
@ -691,7 +691,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("InvalidOperationHistogramNotEnoughPoints", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to No Samples Provided. Preparation Required..
/// </summary>
@ -700,7 +700,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("InvalidOperationNoSamplesProvided", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to An invalid parameter was passed to a native method..
/// </summary>
@ -709,7 +709,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("InvalidParameter", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to An invalid parameter was passed to a native method, parameter number : {0}.
/// </summary>
@ -718,7 +718,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("InvalidParameterWithNumber", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Invalid Right Boundary Condition..
/// </summary>
@ -727,7 +727,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("InvalidRightBoundaryCondition", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Lag must be positive.
/// </summary>
@ -736,7 +736,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("LagMustBePositive", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Lag must be smaller than the sample size.
/// </summary>
@ -745,7 +745,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("LagMustBeSmallerThanTheSampleSize", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ddd MMM dd HH:mm:ss yyyy.
/// </summary>
@ -754,7 +754,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("MatlabDateHeaderFormat", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrices can not be empty and must have at least one row and column..
/// </summary>
@ -763,7 +763,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("MatrixCanNotBeEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The number of columns of a matrix must be positive..
/// </summary>
@ -772,7 +772,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("MatrixColumnsMustBePositive", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Matrix must be in sparse storage format.
/// </summary>
@ -781,7 +781,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("MatrixMustBeSparse", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The number of rows of a matrix must be positive..
/// </summary>
@ -790,7 +790,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("MatrixRowsMustBePositive", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The number of rows or columns of a matrix must be positive..
/// </summary>
@ -799,7 +799,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("MatrixRowsOrColumnsMustBePositive", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Unable to allocate native memory..
/// </summary>
@ -808,7 +808,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("MemoryAllocation", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Only 1 and 2 dimensional arrays are supported..
/// </summary>
@ -817,7 +817,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("MoreThan2D", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Data must contain at least {0} values..
/// </summary>
@ -826,7 +826,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("MustContainAtLeast", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Name cannot contain a space. name: {0}.
/// </summary>
@ -835,7 +835,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("NameCannotContainASpace", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0} is not a supported type..
/// </summary>
@ -844,7 +844,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("NotSupportedType", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Algorithm experience a numerical break down
///.
@ -854,7 +854,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("NumericalBreakdown", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The two arguments can&apos;t be compared (maybe they are part of a partial ordering?).
/// </summary>
@ -863,7 +863,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("PartialOrderException", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The integer array does not represent a valid permutation..
/// </summary>
@ -872,7 +872,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("PermutationAsIntArrayInvalid", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The sampler&apos;s proposal distribution is not upper bounding the target density..
/// </summary>
@ -881,7 +881,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("ProposalDistributionNoUpperBound", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to A regression of the requested order requires at least {0} samples. Only {1} samples have been provided. .
/// </summary>
@ -890,7 +890,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("RegressionNotEnoughSamples", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The algorithm has failed, exceeded the number of iterations allowed or there is no root within the provided bounds..
/// </summary>
@ -899,7 +899,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("RootFindingFailed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The algorithm has failed, exceeded the number of iterations allowed or there is no root within the provided bounds. Consider to use RobustNewtonRaphson instead..
/// </summary>
@ -908,7 +908,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("RootFindingFailedRecommendRobustNewtonRaphson", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The lower and upper bounds must bracket a single root..
/// </summary>
@ -917,7 +917,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("RootMustBeBracketedByBounds", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The algorithm ended without root in the range..
/// </summary>
@ -926,7 +926,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("RootNotFound", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The number of rows must greater than or equal to the number of columns..
/// </summary>
@ -935,7 +935,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("RowsLessThanColumns", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to All sample vectors must have the same length. However, vectors with disagreeing length {0} and {1} have been provided. A sample with index i is given by the value at index i of each provided vector..
/// </summary>
@ -944,7 +944,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("SampleVectorsSameLength", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to U is singular, and the inversion could not be completed..
/// </summary>
@ -953,7 +953,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("SingularUMatrix", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to U is singular, and the inversion could not be completed. The {0}-th diagonal element of the factor U is zero..
/// </summary>
@ -962,7 +962,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("SingularUMatrixWithElement", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The singular vectors were not computed..
/// </summary>
@ -971,7 +971,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("SingularVectorsNotComputed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to This special case is not supported yet (but is planned)..
/// </summary>
@ -980,7 +980,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("SpecialCasePlannedButNotImplementedYet", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The given stop criterion already exist in the collection..
/// </summary>
@ -989,7 +989,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("StopCriterionDuplicate", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to There is no stop criterion in the collection..
/// </summary>
@ -998,7 +998,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("StopCriterionMissing", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to String parameter cannot be empty or null..
/// </summary>
@ -1007,7 +1007,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("StringNullOrEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to We only support sparse matrix with less than int.MaxValue elements..
/// </summary>
@ -1016,7 +1016,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("TooManyElements", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The moment of the distribution is undefined..
/// </summary>
@ -1025,7 +1025,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("UndefinedMoment", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to A user defined provider has not been specified..
/// </summary>
@ -1034,7 +1034,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("UserDefinedProviderNotSpecified", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to User work buffers are not supported by this provider..
/// </summary>
@ -1043,7 +1043,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("UserWorkBufferNotSupported", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Vectors can not be empty and must have at least one element..
/// </summary>
@ -1052,7 +1052,7 @@ namespace MathNet.Numerics.Properties {
return ResourceManager.GetString("VectorCanNotBeEmpty", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The given work array is too small. Check work[0] for the corret size..
/// </summary>

5
src/Numerics/Providers/Common/Cuda/SafeNativeMethods.cs

@ -29,16 +29,13 @@
#if NATIVE
using System;
using System.Numerics;
using System.Runtime.InteropServices;
using System.Security;
using MathNet.Numerics.Providers.LinearAlgebra;
namespace MathNet.Numerics.Providers.Common.Cuda
{
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// P/Invoke methods to the native math libraries.
/// </summary>

5
src/Numerics/Providers/Common/Mkl/SafeNativeMethods.cs

@ -29,16 +29,13 @@
#if NATIVE
using System;
using System.Numerics;
using System.Runtime.InteropServices;
using System.Security;
using MathNet.Numerics.Providers.LinearAlgebra;
namespace MathNet.Numerics.Providers.Common.Mkl
{
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// P/Invoke methods to the native math libraries.
/// </summary>

5
src/Numerics/Providers/Common/NativeProviderLoader.cs

@ -79,9 +79,7 @@ namespace MathNet.Numerics.Providers.Common
static string EvaluateArchitectureKey()
{
#if NET35
return (IntPtr.Size == 8) ? X64 : X86;
#else
//return (IntPtr.Size == 8) ? X64 : X86;
if (IsUnix)
{
@ -115,7 +113,6 @@ namespace MathNet.Numerics.Providers.Common
// Fallback if unknown
return architecture;
#endif
}
/// <summary>

5
src/Numerics/Providers/Common/OpenBlas/SafeNativeMethods.cs

@ -28,6 +28,7 @@
#if NATIVE
using System.Numerics;
using System.Runtime.InteropServices;
using System.Security;
using MathNet.Numerics.Providers.LinearAlgebra;
@ -35,10 +36,6 @@ using MathNet.Numerics.Providers.LinearAlgebra.OpenBlas;
namespace MathNet.Numerics.Providers.Common.OpenBlas
{
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
#endif
/// <summary>
/// P/Invoke methods to the native math libraries.
/// </summary>

11
src/Numerics/Providers/FourierTransform/IFourierTransformProvider.cs

@ -27,13 +27,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
using System.Numerics;
namespace MathNet.Numerics.Providers.FourierTransform
{
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
#endif
public enum FourierTransformScaling : int
{
NoScaling = 0,
@ -59,12 +56,12 @@ namespace MathNet.Numerics.Providers.FourierTransform
void Forward(Complex[] samples, FourierTransformScaling scaling);
void Backward(Complex32[] spectrum, FourierTransformScaling scaling);
void Backward(Complex[] spectrum, FourierTransformScaling scaling);
void ForwardReal(float[] samples, int n, FourierTransformScaling scaling);
void ForwardReal(double[] samples, int n, FourierTransformScaling scaling);
void BackwardReal(float[] spectrum, int n, FourierTransformScaling scaling);
void BackwardReal(double[] spectrum, int n, FourierTransformScaling scaling);
void ForwardMultidim(Complex32[] samples, int[] dimensions, FourierTransformScaling scaling);
void ForwardMultidim(Complex[] samples, int[] dimensions, FourierTransformScaling scaling);
void BackwardMultidim(Complex32[] spectrum, int[] dimensions, FourierTransformScaling scaling);

5
src/Numerics/Providers/FourierTransform/ManagedFourierTransformProvider.cs

@ -27,14 +27,11 @@
// </copyright>
using System;
using System.Numerics;
using MathNet.Numerics.IntegralTransforms;
namespace MathNet.Numerics.Providers.FourierTransform
{
#if !NOSYSNUMERICS
using Complex = System.Numerics.Complex;
#endif
public class ManagedFourierTransformProvider : IFourierTransformProvider
{
/// <summary>

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save