diff --git a/MathNet.Numerics.Portable.sln b/MathNet.Numerics.Portable.sln index 7a4ad61d..258bde7a 100644 --- a/MathNet.Numerics.Portable.sln +++ b/MathNet.Numerics.Portable.sln @@ -48,6 +48,8 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharpUnitTests-Portable47" EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharpUnitTests-Portable136", "src\FSharpUnitTests\FSharpUnitTests-Portable136.fsproj", "{1A8315AC-BCDA-4294-B994-FDC4FED45BEE}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Numerics-Net35", "src\Numerics\Numerics-Net35.csproj", "{E54E712D-EB6B-4FBF-B29A-6BB95E719BAC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -129,6 +131,12 @@ Global {1A8315AC-BCDA-4294-B994-FDC4FED45BEE}.Release|Any CPU.ActiveCfg = Release|Any CPU {1A8315AC-BCDA-4294-B994-FDC4FED45BEE}.Release|Any CPU.Build.0 = Release|Any CPU {1A8315AC-BCDA-4294-B994-FDC4FED45BEE}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {E54E712D-EB6B-4FBF-B29A-6BB95E719BAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E54E712D-EB6B-4FBF-B29A-6BB95E719BAC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E54E712D-EB6B-4FBF-B29A-6BB95E719BAC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E54E712D-EB6B-4FBF-B29A-6BB95E719BAC}.Release|Any CPU.Build.0 = Release|Any CPU + {E54E712D-EB6B-4FBF-B29A-6BB95E719BAC}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU + {E54E712D-EB6B-4FBF-B29A-6BB95E719BAC}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/packages/.gitattributes b/packages/.gitattributes index 374c9471..06a58639 100644 --- a/packages/.gitattributes +++ b/packages/.gitattributes @@ -1,3 +1,2 @@ repositories.config text * -text - diff --git a/packages/TaskParallelLibrary.1.0.2856.0/TaskParallelLibrary.1.0.2856.0.nupkg b/packages/TaskParallelLibrary.1.0.2856.0/TaskParallelLibrary.1.0.2856.0.nupkg new file mode 100644 index 00000000..bacb7313 Binary files /dev/null and b/packages/TaskParallelLibrary.1.0.2856.0/TaskParallelLibrary.1.0.2856.0.nupkg differ diff --git a/packages/TaskParallelLibrary.1.0.2856.0/TaskParallelLibrary.1.0.2856.0.nuspec b/packages/TaskParallelLibrary.1.0.2856.0/TaskParallelLibrary.1.0.2856.0.nuspec new file mode 100644 index 00000000..38f0b905 --- /dev/null +++ b/packages/TaskParallelLibrary.1.0.2856.0/TaskParallelLibrary.1.0.2856.0.nuspec @@ -0,0 +1,24 @@ + + + + TaskParallelLibrary + 1.0.2856.0 + Task Parallel Library for .NET 3.5 + Microsoft Corporation + Microsoft Corporation + http://go.microsoft.com/fwlink/?LinkID=186234 + http://msdn.microsoft.com/en-us/library/dd460717.aspx + http://i.msdn.microsoft.com/ee402630.NET_lg.png + true + The package includes: +* Task<T> for executing asynchronous operations. +* Concurrent Collections such as ConcurrentStack, ConcurentQueue ad ConcurrentDictionary. +* PLINQ for writing parallel queries. +* additional Threading operations such as Barrier,SpinLock and SpinWait. + A complete and official Microsoft backport of the Task Parallel Library (TPL) for .NET 3.5. + This backport was shipped with the Reactive Extensions (Rx) library up until v1.0.2856.0. It can be downloaded from http://www.microsoft.com/download/en/details.aspx?id=24940 . + + + tpl plinq pfx task parallel extensions .net35 backport + + \ No newline at end of file diff --git a/packages/TaskParallelLibrary.1.0.2856.0/lib/Net35/System.Threading.chm b/packages/TaskParallelLibrary.1.0.2856.0/lib/Net35/System.Threading.chm new file mode 100644 index 00000000..bdfbdef5 Binary files /dev/null and b/packages/TaskParallelLibrary.1.0.2856.0/lib/Net35/System.Threading.chm differ diff --git a/packages/TaskParallelLibrary.1.0.2856.0/lib/Net35/System.Threading.dll b/packages/TaskParallelLibrary.1.0.2856.0/lib/Net35/System.Threading.dll new file mode 100644 index 00000000..0230d71d Binary files /dev/null and b/packages/TaskParallelLibrary.1.0.2856.0/lib/Net35/System.Threading.dll differ diff --git a/packages/TaskParallelLibrary.1.0.2856.0/lib/Net35/redist.txt b/packages/TaskParallelLibrary.1.0.2856.0/lib/Net35/redist.txt new file mode 100644 index 00000000..c7972d81 --- /dev/null +++ b/packages/TaskParallelLibrary.1.0.2856.0/lib/Net35/redist.txt @@ -0,0 +1,11 @@ +The files below can be distributed as described in the MICROSOFT REACTIVE EXTENSTIONS FOR JAVASCRIPT AND .NET LIBRARIES License. + +System.Observable.dll +System.CoreEx.dll +System.Reactive.dll +System.Interactive.dll +System.Threading.dll +System.Linq.Async.dll +System.Reactive.Testing.dll +System.Reactive.ClientProfile.dll +System.Reactive.ExtendedProfile.dll diff --git a/packages/repositories.config b/packages/repositories.config index f7c3c813..0328adea 100644 --- a/packages/repositories.config +++ b/packages/repositories.config @@ -1,6 +1,7 @@ - - - - - + + + + + + \ No newline at end of file diff --git a/src/Numerics/Compatibility.cs b/src/Numerics/Compatibility.cs new file mode 100644 index 00000000..5f2cd8da --- /dev/null +++ b/src/Numerics/Compatibility.cs @@ -0,0 +1,91 @@ +#if PORTABLE +namespace MathNet.Numerics +{ + using System; + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] + public class SerializableAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)] + public class SpecialNameAttribute : Attribute + { + } +} +#endif + +#if (PORTABLE || NET35) +namespace MathNet.Numerics +{ + using System; + + [AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method, AllowMultiple = false, Inherited = false)] + public class TargetedPatchingOptOutAttribute : Attribute + { + public string Reason { get; private set; } + + public TargetedPatchingOptOutAttribute(string reason) + { + Reason = reason; + } + } +} +#endif + +#if NET35 +namespace MathNet.Numerics +{ + using System; + using System.Collections.Generic; + + public class Tuple + { + public T1 Item1 { get; set; } + public T2 Item2 { get; set; } + + public Tuple(T1 Item1, T2 Item2) + { + this.Item1 = Item1; + this.Item2 = Item2; + } + } + + public class Tuple + { + public T1 Item1 { get; set; } + public T2 Item2 { get; set; } + public T3 Item3 { get; set; } + + public Tuple(T1 Item1, T2 Item2, T3 Item3) + { + this.Item1 = Item1; + this.Item2 = Item2; + this.Item3 = Item3; + } + } + + public static class EnumerableExtensions + { + public static IEnumerable Zip(this IEnumerable seqA, IEnumerable seqB, Func func) + { + if (seqA == null) throw new ArgumentNullException("seqA"); + if (seqB == null) throw new ArgumentNullException("seqB"); + + return Zip35Deferred(seqA, seqB, func); + } + + private static IEnumerable Zip35Deferred(IEnumerable seqA, IEnumerable seqB, Func func) + { + using (var iteratorA = seqA.GetEnumerator()) + using (var iteratorB = seqB.GetEnumerator()) + { + while (iteratorA.MoveNext() && iteratorB.MoveNext()) + { + yield return func(iteratorA.Current, iteratorB.Current); + } + } + } + } +} +#endif diff --git a/src/Numerics/Complex64.cs b/src/Numerics/Complex64.cs index 49f7f391..d6ac877c 100644 --- a/src/Numerics/Complex64.cs +++ b/src/Numerics/Complex64.cs @@ -698,7 +698,11 @@ namespace MathNet.Numerics } } - var value = GlobalizationHelper.ParseSingle(ref token); +#if PORTABLE + var value = GlobalizationHelper.ParseDouble(ref token); +#else + var value = GlobalizationHelper.ParseDouble(ref token, format.GetCultureInfo()); +#endif // handle suffix imaginary symbol if (token != null && (String.Compare(token.Value, "i", StringComparison.OrdinalIgnoreCase) == 0 diff --git a/src/Numerics/Numerics-Net35.csproj b/src/Numerics/Numerics-Net35.csproj new file mode 100644 index 00000000..d0d4b77d --- /dev/null +++ b/src/Numerics/Numerics-Net35.csproj @@ -0,0 +1,111 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {E54E712D-EB6B-4FBF-B29A-6BB95E719BAC} + Library + Properties + MathNet.Numerics + MathNet.Numerics + v3.5 + 512 + + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + ..\MathNet.Numerics.snk + false + + + ..\..\out\lib\Net35\ + ..\..\obj\lib\Net35\ + ..\..\obj\lib\Net35\ + ..\..\out\lib\Net35\MathNet.Numerics.xml + + false + pdbonly + true + TRACE;NET35;NOSYSNUMERICS + prompt + 4 + AllRules.ruleset + 1591 + + + ..\..\out\lib-debug\Net35\ + ..\..\obj\lib-debug\Net35\ + ..\..\obj\lib-debug\Net35\ + + false + true + full + false + TRACE;DEBUG;NET35;NOSYSNUMERICS + prompt + 4 + + AllRules.ruleset + + + ..\..\out\lib-signed\Net35\ + ..\..\obj\lib-signed\Net35\ + ..\..\obj\lib-signed\Net35\ + ..\..\out\lib-signed\Net35\MathNet.Numerics.xml + + true + pdbonly + AnyCPU + true + TRACE;NET35;NOSYSNUMERICS;STRONGNAME + prompt + 4 + AllRules.ruleset + 1591 + + + + + + + ..\..\packages\TaskParallelLibrary.1.0.2856.0\lib\Net35\System.Threading.dll + + + + + + PublicResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + + + True + True + Resources.resx + + + + + + + \ No newline at end of file diff --git a/src/Numerics/Numerics.csproj b/src/Numerics/Numerics.csproj index 001ec730..de97f5d9 100644 --- a/src/Numerics/Numerics.csproj +++ b/src/Numerics/Numerics.csproj @@ -406,7 +406,7 @@ - + diff --git a/src/Numerics/PortableAttributes.cs b/src/Numerics/PortableAttributes.cs deleted file mode 100644 index 14c0e5ca..00000000 --- a/src/Numerics/PortableAttributes.cs +++ /dev/null @@ -1,28 +0,0 @@ -#if PORTABLE - -using System; - -namespace MathNet.Numerics -{ - [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] - public class SerializableAttribute : Attribute - { - } - - [AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method, AllowMultiple = false, Inherited = false)] - public class TargetedPatchingOptOutAttribute : Attribute - { - public string Reason { get; private set; } - public TargetedPatchingOptOutAttribute(string reason) - { - Reason = reason; - } - } - - [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)] - public class SpecialNameAttribute : Attribute - { - } -} - -#endif diff --git a/src/Numerics/Properties/Resources.Designer.cs b/src/Numerics/Properties/Resources.Designer.cs index 663ed3fb..d0d0314d 100644 --- a/src/Numerics/Properties/Resources.Designer.cs +++ b/src/Numerics/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.18051 +// Runtime Version:4.0.30319.34003 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. diff --git a/src/Numerics/Random/SystemCrypto.cs b/src/Numerics/Random/SystemCrypto.cs index b9adca1f..4f29462d 100644 --- a/src/Numerics/Random/SystemCrypto.cs +++ b/src/Numerics/Random/SystemCrypto.cs @@ -101,7 +101,9 @@ namespace MathNet.Numerics.Random public void Dispose() { +#if !NET35 _random.Dispose(); +#endif } } } diff --git a/src/Numerics/Threading/CommonParallel.cs b/src/Numerics/Threading/CommonParallel.cs index 184b7b17..fabb548b 100644 --- a/src/Numerics/Threading/CommonParallel.cs +++ b/src/Numerics/Threading/CommonParallel.cs @@ -33,12 +33,12 @@ namespace MathNet.Numerics.Threading using System; using System.Threading.Tasks; -#if !PORTABLE - using System.Collections.Concurrent; - using System.Collections.Generic; -#else +#if (PORTABLE || NET35) using System.Linq; using Properties; +#else + using System.Collections.Concurrent; + using System.Collections.Generic; #endif /// @@ -88,7 +88,7 @@ namespace MathNet.Numerics.Threading return; } -#if PORTABLE +#if (PORTABLE || NET35) var tasks = new Task[Math.Min(maxDegreeOfParallelism, length/rangeSize)]; rangeSize = (toExclusive - fromInclusive)/tasks.Length; @@ -146,7 +146,7 @@ namespace MathNet.Numerics.Threading } // Common case -#if PORTABLE +#if (PORTABLE || NET35) var tasks = new Task[actions.Length]; for (var i = 0; i < tasks.Length; i++) { @@ -211,7 +211,7 @@ namespace MathNet.Numerics.Threading return reduce(mapped); } -#if PORTABLE +#if (PORTABLE || NET35) var tasks = new Task[Control.NumberOfParallelWorkerThreads]; var size = (toExclusive - fromInclusive) / tasks.Length; @@ -317,7 +317,7 @@ namespace MathNet.Numerics.Threading return reduce(mapped); } -#if PORTABLE +#if (PORTABLE || NET35) var tasks = new Task[Control.NumberOfParallelWorkerThreads]; var size = array.Length / tasks.Length; diff --git a/src/Numerics/packages.config b/src/Numerics/packages.config new file mode 100644 index 00000000..30320827 --- /dev/null +++ b/src/Numerics/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file