Почему двухместный не плавать - PullRequest
0 голосов
/ 26 апреля 2018

Почему предполагаемый тип является Double, а не Float?

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

Или, иначе говоря, в чем разница между Primitive32Array.FACTORY и Primitive64Array.FACTORY?

1 Ответ

0 голосов
/ 27 апреля 2018

Это по историческим причинам. Первоначально плавающие массивы / матрицы не поддерживались в ojAlgo, и <Double>, естественно, всегда ссылался на лежащий в основе double [].

Теперь ojAlgo имеет частичную поддержку float [], но только в качестве экономящих место "примитивных" массивов. Все, что внутри Primitive32Array (в качестве примера), является float и float [], но его API по-прежнему <Double>.

В ojAlgo <Double> по существу означает «примитив».

Предполагается полная поддержка float (для матриц и линейной алгебры). Когда / если это произойдет, <Double> может быть заменено на <Number> для обозначения чего-либо «примитивного».

...