|
|
@ -31,14 +31,18 @@ |
|
|
namespace MathNet.Numerics.Threading |
|
|
namespace MathNet.Numerics.Threading |
|
|
{ |
|
|
{ |
|
|
using System; |
|
|
using System; |
|
|
|
|
|
using System.Collections.Generic; |
|
|
using System.Threading.Tasks; |
|
|
using System.Threading.Tasks; |
|
|
|
|
|
|
|
|
#if (PORTABLE || NET35)
|
|
|
#if NET35
|
|
|
|
|
|
using Partitioner = MathNet.Numerics.Partitioner; |
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#if PORTABLE
|
|
|
using System.Linq; |
|
|
using System.Linq; |
|
|
using Properties; |
|
|
using Properties; |
|
|
#else
|
|
|
#else
|
|
|
using System.Collections.Concurrent; |
|
|
using System.Collections.Concurrent; |
|
|
using System.Collections.Generic; |
|
|
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
@ -88,7 +92,7 @@ namespace MathNet.Numerics.Threading |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#if (PORTABLE || NET35)
|
|
|
#if PORTABLE
|
|
|
var tasks = new Task[Math.Min(maxDegreeOfParallelism, length/rangeSize)]; |
|
|
var tasks = new Task[Math.Min(maxDegreeOfParallelism, length/rangeSize)]; |
|
|
rangeSize = (toExclusive - fromInclusive)/tasks.Length; |
|
|
rangeSize = (toExclusive - fromInclusive)/tasks.Length; |
|
|
|
|
|
|
|
|
@ -146,7 +150,7 @@ namespace MathNet.Numerics.Threading |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// Common case
|
|
|
// Common case
|
|
|
#if (PORTABLE || NET35)
|
|
|
#if PORTABLE
|
|
|
var tasks = new Task[actions.Length]; |
|
|
var tasks = new Task[actions.Length]; |
|
|
for (var i = 0; i < tasks.Length; i++) |
|
|
for (var i = 0; i < tasks.Length; i++) |
|
|
{ |
|
|
{ |
|
|
@ -211,7 +215,7 @@ namespace MathNet.Numerics.Threading |
|
|
return reduce(mapped); |
|
|
return reduce(mapped); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#if (PORTABLE || NET35)
|
|
|
#if PORTABLE
|
|
|
var tasks = new Task<T>[Control.NumberOfParallelWorkerThreads]; |
|
|
var tasks = new Task<T>[Control.NumberOfParallelWorkerThreads]; |
|
|
var size = (toExclusive - fromInclusive) / tasks.Length; |
|
|
var size = (toExclusive - fromInclusive) / tasks.Length; |
|
|
|
|
|
|
|
|
@ -317,7 +321,7 @@ namespace MathNet.Numerics.Threading |
|
|
return reduce(mapped); |
|
|
return reduce(mapped); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#if (PORTABLE || NET35)
|
|
|
#if PORTABLE
|
|
|
var tasks = new Task<TOut>[Control.NumberOfParallelWorkerThreads]; |
|
|
var tasks = new Task<TOut>[Control.NumberOfParallelWorkerThreads]; |
|
|
var size = array.Length / tasks.Length; |
|
|
var size = array.Length / tasks.Length; |
|
|
|
|
|
|
|
|
|