public void SumAsEinsteinSumMatchesSum() { var x = NN.Random.Uniform(-1f, 1f, 10); var y = NN.Ones(1); AssertArray.AreEqual(x.Sum(axis: 0), NN.EinsteinSum(x, y, "i,->")); }
public void DotAsEinsteinSumMatchesDot() { var x = NN.Random.Uniform(-1f, 1f, 10, 20); var y = NN.Random.Uniform(-1f, 1f, 20, 13); AssertArray.AreAlmostEqual(x.Dot(y), NN.EinsteinSum(x, y, "ij,jk->ik")); }
public void OuterAsEinsteinSumMatchesOuter() { var x = NN.Random.Uniform(-1f, 1f, 10); var y = NN.Random.Uniform(-1f, 1f, 15); AssertArray.AreEqual(x.Outer(y), NN.EinsteinSum(x, y, "i,j->ij")); }
public static Array <float> EinsteinSum(Array <float> x, Array <float> y, string einstein) => NN.EinsteinSum(x, y, einstein);