2017-02-25 32 views
-1

我正在寻找一个库,但我不确定搜索什么,因为我不知道该怎么称呼我想要做的任务(在这样可以搜索)。的功能'方程评估,缓存,智能更新'的搜索名称lib

我有一个数矩阵方程涉及的单个操作(乘法),在他们的一些共同的元件,例如:

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

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

这些乘法运算很昂贵,所以我想要一个库让我设置公式和a,b等的值,然后检索result项。

最关键的是,我还需要能够说出“我正在更新数值(例如)af”,并让图书馆不做任何不必要的计算;它不会打扰重新计算result_2(因为答案不会改变),并且它不会打扰重新计算子条款b * c * e(在result_1)或c * e(在result_3),因为这些部分也不会有差异。

这种设施有没有好的名字?理想情况下,它也能够处理不同的操作员(例如,二进制*和一元transpose),并且可以指定操作员的属性,例如, “*不通勤,但是关联”。了解这些属性可以让lib有时做更高效的工作。

+0

如果你正在寻找一个词来搜索,“电子表格”如何。 –

+0

您的问题已在meta上讨论过:[Off-topic requests for assistance](https://meta.stackoverflow.com/questions/345592/off-topic-requests-for-assistance) – user000001

回答

1

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

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

为什么你需要优化它,如果我可能会问?你有没有尝试用优化标记你的编译器?你与之合作的数字大吗?

+1

感谢您的回答!你说得对,在C++中它在很多情况下可能都不值得。但是,我对“这是否有适当的名称?”感兴趣?和“有没有这种类似的东西?” - 它可以通过我的不同语言使用 – occulus

+0

@occulus在重读你的回应后'这些乘法运算很昂贵,所以我想要一个库让我设置方程和a,b等的值,然后检索结果项目.'这实际上听起来像操作重载与回归矢量。虽然设置起来会有点棘手! –