-1

我正在寻找一个图书馆,但我不确定要搜索什么,因为我不知道如何调用我想要执行的任务(以可搜索的方式)。

功能示例

我有许多涉及单个运算(乘法)的矩阵方程,其中包含一些常见元素,例如:

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

这里没有未知数;我们只是在计算result_n项目。

这些乘法执行起来很昂贵,所以我想要一个库,让我可以设置方程和 , 等的值ab然后检索result项目。

最关键的是,我还需要能够说“我正在更新值(例如)af”,并且让库不做任何不必要的计算;它不会费心重新计算result_2(因为答案不会改变),也不会费心重新计算子项b * c * e(in result_1) 或c * e(in result_3),因为这些部分也不会有所不同。

这种设施有好听的名字吗?

理想情况下,它还能够处理不同的运算符(例如二元*和一元transpose),并且您可以指定运算符的属性,例如“*不通勤,但具有关联性”。了解这些属性将使 lib 有时可以更有效地完成工作。

4

1 回答 1

1

除非您使用的数字非常大,否则我建议您坚持使用标准库。除了使用汇编代码之外,在 C++ 中乘以数字可能是最低限度的,即使这样我也怀疑你会看到显着的改进。

我个人说你很好,如果你使用的是 Python,那么是的,我肯定会建议你使用 Python 的数学库,但由于这是 C++,你真的不需要担心它。

如果我可以问,你为什么需要优化它?您是否尝试过使用优化标记您的编译器?您正在处理的数字很大吗?

于 2017-02-25T08:53:44.090 回答