为什么推断类型是Double而不是Float?
final Array1D<Double> doubles = Array1D.factory(Primitive32Array.FACTORY).makeFilled(10, new Uniform());
或者换句话说,Primitive32Array.FACTORY
和Primitive64Array.FACTORY
之间有什么区别?
答案 0 :(得分:1)
由于历史原因。 ojAlgo不支持最初的浮点数组/矩阵,而<Double>
自然总是指一个底层的double []。
现在ojAlgo对float []有部分支持,但只能节省空间&#34;原始&#34;阵列。 Primitive32Array
内部的所有内容(作为示例)都是float和float [],但其API仍为<Double>
。
在ojAlgo中<Double>
本质上意味着&#34;原始&#34;。
预期完全支持float(对于矩阵和线性代数)。当/如果发生这种情况<Double>
可能会被<Number>
替换为表示任何内容&#34;原语&#34;。