'equation evaluating, caching, smart updating' 库的可搜索名称

Searchable name for 'equation evaluating, caching, smart updating' lib

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

功能示例

我有很多矩阵方程涉及一个单一的操作(乘法),其中有一些共同的元素,例如:

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

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

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

最关键的是,我还需要能够说 "I am updating values (for example) a and f",并且让图书馆不做任何不必要的计算;它不会重新计算 result_2(因为答案不会改变),也不会重新计算子项 b * c * e(在 result_1 中)或 c * e (在 result_3 中)因为这些部分也不会有什么不同。

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

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

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

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

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