0

为什么推断类型是 Double 而不是 Float?

final Array1D<Double> doubles = Array1D.factory(Primitive32Array.FACTORY).makeFilled(10, new Uniform());

Primitive32Array.FACTORY或者换一种说法,和有什么区别Primitive64Array.FACTORY

4

1 回答 1

2

那是出于历史原因。ojAlgo 最初不支持浮点数组/矩阵,<Double>自然总是引用底层的 double[]。

现在 ojAlgo 部分支持 float[],但仅作为节省空间的“原始”数组。Primitive32Array(例如)内部的一切都是 float 和 float[],但它的 API 仍然是<Double>.

在 ojAlgo 中,<Double>本质上意味着“原始”。

考虑完全支持浮点数(用于矩阵和线性代数)。何时/如果发生这种情况<Double>可能会被替换<Number>为表示任何“原始”。

于 2018-04-27T07:47:47.313 回答