繁体   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