![](/img/trans.png)
[英]What is a good open source C/C++ math library that supports vector math and complex numbers?
[英]Open source C++ library for vector mathematics
我需要在應用程序中使用一些基本的矢量數學結構。 點產品,交叉產品。 尋找線的交叉點,那種東西。
我可以自己做(事實上,已經有),但是沒有“標准”使用這樣的錯誤和可能的優化不會在我身上?
Boost沒有它。 就我所見,他們的數學部分是關於統計函數的。
附錄:
提升1.37確實似乎有這個 。 他們還優雅地在現場引入了許多其他解決方案,以及為什么他們仍然去做自己的。 我喜歡。
我沒有測試它,但是C ++ 特征庫現在變得越來越流行。 據他們說,他們與那里最快的庫相當,他們的API看起來非常整潔。
犰狳采用延遲評估方法將多個操作合二為一,減少(或消除)對臨時工的需求。 適用時,優化操作順序。 通過遞歸模板和模板元編程實現延遲評估和優化。
雖然加法,減法和乘法(矩陣和元素)等鏈式操作是加速機會的主要目標,但其他操作(如子矩陣的操縱)也可以進行優化。 注意保持“小”和“大”矩陣的效率。
除了學習概念之外,我不會使用NRC代碼。
我認為你要找的是Blitz ++
查看由Oak Ridge國家實驗室和田納西大學維護的www.netlib.org 。 您可以在那里搜索數字包。 還有C ++中的Numerical Recipes ,其代碼與之相關,但本書的C ++版本有些昂貴,而且我聽說這些代碼被描述為“可怕”。 C和FORTRAN版本是免費的,相關的代碼非常好。
預言SDK中有一個很好的3D圖形矢量庫:
對於線性代數:嘗試JAMA / TNT 。 這將涵蓋點產品。 (+矩陣保理和其他東西)就矢量交叉產品而言(實際上只對3D有效,否則我認為你進入張量),我不確定。
對於非常輕量級(單個.h文件)庫,請查看CImg 。 它適用於圖像處理,但處理矢量沒有問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.