C# ilmath.min中的Bug(a,b)?

C# ilmath.min中的Bug(a,b)?,c#,min,ilnumerics,C#,Min,Ilnumerics,如果我对两个1x1双精度(其他数据类型未选中)矩阵使用ilmath.min()函数,它将返回最大值而不是最小值。若矩阵的大小大于1x1,则一切正常。请确认以下代码返回aspected为1.0而不是0.0。对我来说,这看起来像一个Bug还是一个特性 Console.WriteLine(ILMath.min(0.0,1.0)); Console.ReadKey(); 提前谢谢。我投票赞成一个bug。有一个Bug跟踪器在你可以考虑在那里提交一个问题。 这行,4295的函数\BuuTiN\M.C.,只

如果我对两个1x1双精度(其他数据类型未选中)矩阵使用ilmath.min()函数,它将返回最大值而不是最小值。若矩阵的大小大于1x1,则一切正常。请确认以下代码返回aspected为1.0而不是0.0。对我来说,这看起来像一个Bug还是一个特性

Console.WriteLine(ILMath.min(0.0,1.0));
Console.ReadKey();

提前谢谢。

我投票赞成一个bug。有一个Bug跟踪器在你可以考虑在那里提交一个问题。

这行,4295的<代码>函数\BuuTiN\M.C.<代码>,只用于标量值(即1元素的输入大小):

返回数组(
新双[1]
{
(A.GetValue(0)>B.GetValue(0))?A.GetValue(0):B.GetValue(0)
}
);

这似乎返回了最大值,而不是最小值。将
更改为
我在bugtracker中添加了错误:。它将在下一版本中修复。上述建议的解决方法在发布之前可以一直使用。请参阅下面的codecaster答案。它确认这是一个bug以及如何修复/解决它。或者,如果只处理系统标量值,可以简单地使用Math.Min(0.0,1.0)。
return array<double>(
    new double[1] 
    {
        (A.GetValue(0) > B.GetValue(0)) ? A.GetValue(0) : B.GetValue(0) 
    }
);