簡體   English   中英

用於矢量數學的開源C ++庫

[英]Open source C++ library for vector mathematics

我需要在應用程序中使用一些基本的矢量數學結構。 點產品,交叉產品。 尋找線的交叉點,那種東西。

我可以自己做(事實上,已經有),但是沒有“標准”使用這樣的錯誤和可能的優化不會在我身上?

Boost沒有它。 就我所見,他們的數學部分是關於統計函數的。

附錄:

提升1.37確實似乎有這個 他們還優雅地在現場引入了許多其他解決方案,以及為什么他們仍然去做自己的。 我喜歡。

我沒有測試它,但是C ++ 特征庫現在變得越來越流行。 據他們說,他們與那里最快的庫相當,他們的API看起來非常整潔。

重新檢查C ++程序員的ol'good朋友叫Boost 它有一個線性代數包 ,可能很適合您的需要。

犰狳

犰狳采用延遲評估方法將多個操作合二為一,減少(或消除)對臨時工的需求。 適用時,優化操作順序。 通過遞歸模板和模板元編程實現延遲評估和優化。

雖然加法,減法和乘法(矩陣和元素)等鏈式操作是加速機會的主要目標,但其他操作(如子矩陣的操縱)也可以進行優化。 注意保持“小”和“大”矩陣的效率。

除了學習概念之外,我不會使用NRC代碼。

我認為你要找的是Blitz ++

查看由Oak Ridge國家實驗室和田納西大學維護的www.netlib.org 您可以在那里搜索數字包。 還有C ++中的Numerical Recipes ,其代碼與之相關,但本書的C ++版本有些昂貴,而且我聽說這些代碼被描述為“可怕”。 C和FORTRAN版本是免費的,相關的代碼非常好。

預言SDK中有一個很好的3D圖形矢量庫:

查看http://www.twilight3d.com/downloads.html

對於線性代數:嘗試JAMA / TNT 這將涵蓋點產品。 (+矩陣保理和其他東西)就矢量交叉產品而言(實際上只對3D有效,否則我認為你進入張量),我不確定。

對於非常輕量級(單個.h文件)庫,請查看CImg 它適用於圖像處理,但處理矢量沒有問題。

暫無
暫無

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

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