public MatrixValue Function(MatrixValue Z, MatrixValue W)
{
if (Z.DimensionX != W.DimensionX || Z.DimensionY != W.DimensionY)
throw new YAMPDifferentDimensionsException(Z.DimensionY, Z.DimensionX, W.DimensionY, W.DimensionX);
var M = new MatrixValue(Z.DimensionY, Z.DimensionX);
for (var i = 1; i <= Z.DimensionX; i++)
{
for (var j = 1; j <= Z.DimensionY; j++)
{
M[j, i] = Function(Z[j, i], W[j, i]);
}
}
return M;
}