在設計特定於領域的數值計算庫時尋找適當的數據類型(例如IndexedSeq[Double]
)。對於這個問題,我將範圍限制爲使用1維數組Double
。該庫將定義通常應用於1D陣列中每個元素的數字函數。向量化數值計算的最佳Scala集合類型
注意事項:
- 不想一成不變的數據類型,如
Vector
或IndexedSeq
- 要儘量減少數據轉換
- 在空間和時間上合理有效
- 友好使用其他人圖書館
- 高雅清潔的API
我應該使用更高一些的收集層次結構,如Seq
?
或者只是定義單元素函數並將映射/迭代保留給最終用戶會更好嗎?
這似乎效率較低(因爲某些計算可能會在每組調用中完成一次),但同時還有一個更靈活的API,因爲它可以處理任何類型的集合。
有什麼建議嗎?
如果你會有值拳擊問題,你可以看看[debox](https://github.com/non/debox) –