Browse Source

Bench: switch from a * b.Transpose to a.TransposeAndMultiply(b)

pull/445/head
Christoph Ruegg 10 years ago
parent
commit
e7cb8d87f3
  1. 6
      src/Benchmark/LinearAlgebra/DenseMatrixProduct.cs

6
src/Benchmark/LinearAlgebra/DenseMatrixProduct.cs

@ -81,21 +81,21 @@ namespace Benchmark.LinearAlgebra
public Matrix<double> MathNet() public Matrix<double> MathNet()
{ {
Control.LinearAlgebraProvider = _mkl; Control.LinearAlgebraProvider = _mkl;
return _data[Key(M, N)] *_data[Key(M, N)].Transpose(); return _data[Key(M, N)].TransposeAndMultiply(_data[Key(M, N)]);
} }
[Benchmark(OperationsPerInvoke = 1)] [Benchmark(OperationsPerInvoke = 1)]
public Matrix<double> MathNetManaged() public Matrix<double> MathNetManaged()
{ {
Control.LinearAlgebraProvider = _managed; Control.LinearAlgebraProvider = _managed;
return _data[Key(M, N)] *_data[Key(M, N)].Transpose(); return _data[Key(M, N)].TransposeAndMultiply(_data[Key(M, N)]);
} }
[Benchmark(OperationsPerInvoke = 1)] [Benchmark(OperationsPerInvoke = 1)]
public Matrix<double> MathNetExperimental() public Matrix<double> MathNetExperimental()
{ {
Control.LinearAlgebraProvider = _experimental; Control.LinearAlgebraProvider = _experimental;
return _data[Key(M, N)] *_data[Key(M, N)].Transpose(); return _data[Key(M, N)].TransposeAndMultiply(_data[Key(M, N)]);
} }
public class SafeProvider : ManagedLinearAlgebraProvider public class SafeProvider : ManagedLinearAlgebraProvider

Loading…
Cancel
Save