diff --git a/src/Benchmark/LinearAlgebra/DenseVector.cs b/src/Benchmark/LinearAlgebra/DenseVector.cs index 282659f6..ece76ac7 100644 --- a/src/Benchmark/LinearAlgebra/DenseVector.cs +++ b/src/Benchmark/LinearAlgebra/DenseVector.cs @@ -43,10 +43,10 @@ namespace Benchmark.LinearAlgebra NativeMKL, } - [Params(4, 32, 128, 4096, 524288)] + [Params(4, 32, 128, 4096, 16384, 524288)] public int N { get; set; } - [Params(ProviderId.Managed, ProviderId.ManagedReference, ProviderId.NativeMKL)] + [Params(ProviderId.Managed, ProviderId.ManagedReference)] //, ProviderId.NativeMKL)] public ProviderId Provider { get; set; } double[] _a; @@ -92,7 +92,7 @@ namespace Benchmark.LinearAlgebra //return r; } - [Benchmark(OperationsPerInvoke = 1)] + //[Benchmark(OperationsPerInvoke = 1)] public double[] ProviderScaleArrays() { double[] r = new double[_a.Length]; @@ -100,6 +100,34 @@ namespace Benchmark.LinearAlgebra return r; } + [Benchmark(OperationsPerInvoke = 1)] + public double[] ProviderPointMultiply() + { + double[] r = new double[_a.Length]; + LinearAlgebraControl.Provider.PointWiseMultiplyArrays(_a, _b, r); + return r; + + //Complex[] r = new Complex[_a.Length]; + //LinearAlgebraControl.Provider.PointWiseMultiplyArrays(_ac, _bc, r); + //return r; + } + + //[Benchmark(OperationsPerInvoke = 1)] + public double[] ProviderPointDivide() + { + double[] r = new double[_a.Length]; + LinearAlgebraControl.Provider.PointWiseDivideArrays(_a, _b, r); + return r; + } + + //[Benchmark(OperationsPerInvoke = 1)] + public double[] ProviderPointPower() + { + double[] r = new double[_a.Length]; + LinearAlgebraControl.Provider.PointWisePowerArrays(_a, _b, r); + return r; + } + //[Benchmark(OperationsPerInvoke = 1)] //public Vector VectorAddOp() //{ diff --git a/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Complex.cs b/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Complex.cs index 9d52b696..f6312449 100644 --- a/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Complex.cs +++ b/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Complex.cs @@ -276,13 +276,10 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Managed throw new ArgumentException(Resources.ArgumentVectorsSameLength); } - CommonParallel.For(0, y.Length, 4096, (a, b) => + for (int i = 0; i < result.Length; i++) { - for (int i = a; i < b; i++) - { - result[i] = x[i] * y[i]; - } - }); + result[i] = x[i] * y[i]; + } } /// diff --git a/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Complex32.cs b/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Complex32.cs index c3dc12da..fe9b4bd5 100644 --- a/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Complex32.cs +++ b/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Complex32.cs @@ -278,13 +278,10 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Managed throw new ArgumentException(Resources.ArgumentVectorsSameLength); } - CommonParallel.For(0, y.Length, 4096, (a, b) => + for (int i = 0; i < result.Length; i++) { - for (int i = a; i < b; i++) - { - result[i] = x[i] * y[i]; - } - }); + result[i] = x[i] * y[i]; + } } /// diff --git a/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Double.cs b/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Double.cs index 844957f4..3da2f99b 100644 --- a/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Double.cs +++ b/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Double.cs @@ -275,13 +275,10 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Managed throw new ArgumentException(Resources.ArgumentVectorsSameLength); } - CommonParallel.For(0, y.Length, 4096, (a, b) => + for (int i = 0; i < result.Length; i++) { - for (int i = a; i < b; i++) - { - result[i] = x[i] * y[i]; - } - }); + result[i] = x[i] * y[i]; + } } /// diff --git a/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Single.cs b/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Single.cs index 8a5ff012..4d675cc8 100644 --- a/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Single.cs +++ b/src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Single.cs @@ -275,13 +275,10 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Managed throw new ArgumentException(Resources.ArgumentVectorsSameLength); } - CommonParallel.For(0, y.Length, 4096, (a, b) => + for (int i = 0; i < result.Length; i++) { - for (int i = a; i < b; i++) - { - result[i] = x[i] * y[i]; - } - }); + result[i] = x[i] * y[i]; + } } ///