public void ViennaHostProvider_Set() { var provider = new VclHostTensorMath(); var y = new ArraySlice <double>(10); provider.Set(10.0d, y); var yInt = new ArraySlice <double>(10); provider.Set(10, yInt); Assert.All(y, yy => MathHelpers.Equality(yy, 10.0d)); Assert.All(yInt, yyInt => MathHelpers.Equality(yyInt, 10.0d)); }
public void ViennaHostProvider_Substract() { var provider = new VclHostTensorMath(); var x = new ArraySlice <double>(10); provider.Set(10.0d, x); var y = new ArraySlice <double>(10); provider.Set(5.0d, y); provider.Substract(x, y); Assert.All(y, yy => MathHelpers.Equality(yy, 5.0d)); }
public void ViennaHostProvider_Gemm_SquareWithAdd() { var provider = new VclHostTensorMath(); int size = 4; var x = new ArraySlice <double>(size * size); var y = new ArraySlice <double>(size * size); for (int i = 0; i < x.Length; i++) { int ii = i % size; int jj = i / size; x[i] = i; if (ii == jj) { y[i] = 1; } } var r = new ArraySlice <double>(size * size); provider.Set(2, r); provider.Gemm(BlasTranspose.None, BlasTranspose.None, size, size, size, 1.0d, x, y, 1.0d, r); for (int i = 0; i < x.Length; i++) { Assert.True(MathHelpers.Equality(x[i] + 2, r[i])); } }
public void ViennaHostProvider_Add() { var provider = new VclHostTensorMath(); var x = new ArraySlice <double>(10); provider.Set(10.0d, x); provider.Add(10.0d, x); Assert.All(x, xx => MathHelpers.Equality(xx, 20.0d)); }
public void ViennaHostProvider_Axpby() { var provider = new VclHostTensorMath(); var x = new ArraySlice <double>(10); provider.Set(10.0d, x); var y = new ArraySlice <double>(10); provider.Set(5.0d, y); provider.Axpby(1, x, 2, y); var z = new ArraySlice <double>(10); provider.Set(10.0d, z); provider.Axpy(2, x, z); Assert.All(y, yy => MathHelpers.Equality(yy, 20.0d)); Assert.All(z, zz => MathHelpers.Equality(zz, 30.0d)); }