2017-02-25 25 views
-1

我正在尋找一個庫,但我不確定搜索什麼,因爲我不知道該怎麼稱呼我想要做的任務(在這樣可以搜索)。的功能'方程評估,緩存,智能更新'的搜索名稱lib

我有一個數矩陣方程涉及的單個操作(乘法),在他們的一些共同的元件,例如:

result_1 = a * b * c * e 
result_2 = b * c 
result_3 = c * e * f 

這裏沒有未知數;我們只是計算result_n項目。

這些乘法運算很昂貴,所以我想要一個庫讓我設置公式和a,b等的值,然後檢索result項。

最關鍵的是,我還需要能夠說出「我正在更新數值(例如)af」,並讓圖書館不做任何不必要的計算;它不會打擾重新計算result_2(因爲答案不會改變),並且它不會打擾重新計算子條款b * c * e(在result_1)或c * e(在result_3),因爲這些部分也不會有差異。

這種設施有沒有好的名字?理想情況下,它也能夠處理不同的操作員(例如,二進制*和一元transpose),並且可以指定操作員的屬性,例如, 「*不通勤,但是關聯」。瞭解這些屬性可以讓lib有時做更高效的工作。

+0

如果你正在尋找一個詞來搜索,「電子表格」如何。 –

+0

您的問題已在meta上討論過:[Off-topic requests for assistance](https://meta.stackoverflow.com/questions/345592/off-topic-requests-for-assistance) – user000001

回答

1

除非你使用真正的大數字,否則我會建議你堅持使用標準庫。除了使用匯編代碼之外,C++中的數字乘以數字可能是最低限度的,儘管我懷疑你會看到顯着的改進。

我個人認爲你很好,如果你使用的是Python,那麼我肯定會建議你使用Python的數學庫,但是因爲這是C++,你真的不需要擔心它。

爲什麼你需要優化它,如果我可能會問?你有沒有嘗試用優化標記你的編譯器?你與之合作的數字大嗎?

+1

感謝您的回答!你說得對,在C++中它在很多情況下可能都不值得。但是,我對「這是否有適當的名稱?」感興趣?和「有沒有這種類似的東西?」 - 它可以通過我的不同語言使用 – occulus

+0

@occulus在重讀你的迴應後'這些乘法運算很昂貴,所以我想要一個庫讓我設置方程和a,b等的值,然後檢索結果項目.'這實際上聽起來像操作重載與迴歸矢量。雖然設置起來會有點棘手! –