簡體   English   中英

Java高性能線性代數庫,功能類似於Scala的Breeze

[英]Java high performance linear algebra library with features similar to Scala's Breeze

我正在尋找一個可以有效處理小型矩陣加法的庫(具有最小的內存占用)。 有很多選擇,例如JBLAS或ND4j(雖然我認為不是單線程的),但是它們缺少下面描述的重要功能。

假設我有一個較大的矩陣,而一個較小的矩陣,則需要將較小的矩陣添加到較大的矩陣中,而無需創建中間數組或將較小的矩陣增大為具有很多零的較大矩陣的大小。 換句話說,我想從Scala的Breeze庫中獲得功能-您在矩陣上創建一個視圖,然后該視圖可用於執行任何操作,例如添加子矩陣。

在EJML中打開了一個問題

好吧,似乎最好的選擇是ojAlgo 根據這項綜合測試,它具有出色的性能。 重要的是它允許非常靈活的轉換,這些轉換可以就地懶惰地執行(一次執行)。 例如

PrimitiveDenseStore m1 = PrimitiveDenseStore.FACTORY.makeZero(10, 10);
PrimitiveDenseStore m2 = PrimitiveDenseStore.FACTORY.makeZero(3, 3);

m2.add(0, 0, 5D);
m2.add(1, 1, 2D);
m2.add(1, 2, 3D);
m2.add(2, 1, -10D);

m1
    .regionByColumns(4, 5, 6)
    .regionByRows(4, 5, 6)
    .modifyMatching(PrimitiveMath.ADD, m2);

assertThat(m1.aggregateAll(MINIMUM)).isEqualTo(5);

這里有更多示例。 真正美麗的API和功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM