![](/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.